from alexandria import app, mongo
from decorators import *
from flask import render_template, request, jsonify, g, send_from_directory, redirect, url_for, session, flash
import os
import shutil
import requests
from pymongo import MongoClient
from functools import wraps
import bcrypt
from bson.objectid import ObjectId

@app.route('/', methods=['GET'])
@authenticated
def index():

    return render_template('app.html')


@app.route('/portal')
def portal():

    if not session.get('username'):

        return render_template('portal.html')

    else:

        return render_template('index.html')


@app.route('/logout')
def logout():

    session.pop('username', None)
    session.pop('role', None)
    session.pop('realname', None)

    return redirect(url_for('index'))

@app.route('/download/<id>/<format>')
@authenticated
def download(id, format):

    book = mongo.Books.find({'id':id})[0]

    response = send_from_directory(app.config['LIB_DIR'], id+'.'+format)
    response.headers.add('Content-Disposition', 'attachment; filename="' + book['title'] + '.' + format + '"')

    return response


@app.route('/upload')
@authenticated
@administrator
def upload():

    return render_template('upload.html')

if __name__ == "__main__":

	  app.run()

from alexandria import app, mongo
from decorators import *
from flask import render_template, request, jsonify, g, send_from_directory, redirect, url_for, session, flash
import os
import shutil
import requests
from pymongo import MongoClient
from functools import wraps
import bcrypt
from bson.objectid import ObjectId

@app.route('/', methods=['GET'])
@authenticated
def index():

    return render_template('app.html')


@app.route('/portal')
def portal():

    if not session.get('username'):

        return render_template('portal.html')

    else:

        return redirect(url_for('index'))


@app.route('/logout')
def logout():

    session.pop('username', None)
    session.pop('role', None)
    session.pop('realname', None)

    return redirect(url_for('index'))

@app.route('/download/<id>/<format>')
@authenticated
def download(id, format):

    book = mongo.Books.find({'id':id})[0]

    response = send_from_directory(app.config['LIB_DIR'], id+'.'+format)
    response.headers.add('Content-Disposition', 'attachment; filename="' + book['title'] + '.' + format + '"')

    return response


@app.route('/upload')
@authenticated
@administrator
def upload():

    return render_template('upload.html')

if __name__ == "__main__":

	  app.run()

Fix return on active user accessing the portal
Fix return on active user accessing the portal

  from alexandria import app, mongo
  from decorators import *
  from flask import render_template, request, jsonify, g, send_from_directory, redirect, url_for, session, flash
  import os
  import shutil
  import requests
  from pymongo import MongoClient
  from functools import wraps
  import bcrypt
  from bson.objectid import ObjectId
  
  @app.route('/', methods=['GET'])
  @authenticated
  def index():
  
      return render_template('app.html')
  
  
  @app.route('/portal')
  def portal():
  
      if not session.get('username'):
  
          return render_template('portal.html')
  
      else:
  
-         return render_template('index.html')
+         return redirect(url_for('index'))
  
  
  @app.route('/logout')
  def logout():
  
      session.pop('username', None)
      session.pop('role', None)
      session.pop('realname', None)
  
      return redirect(url_for('index'))
  
  @app.route('/download/<id>/<format>')
  @authenticated
  def download(id, format):
  
      book = mongo.Books.find({'id':id})[0]
  
      response = send_from_directory(app.config['LIB_DIR'], id+'.'+format)
      response.headers.add('Content-Disposition', 'attachment; filename="' + book['title'] + '.' + format + '"')
  
      return response
  
  
  @app.route('/upload')
  @authenticated
  @administrator
  def upload():
  
      return render_template('upload.html')
  
  if __name__ == "__main__":
  
  	  app.run()
  
Fix return on active user accessing the portal
## Code Before:
from alexandria import app, mongo
from decorators import *
from flask import render_template, request, jsonify, g, send_from_directory, redirect, url_for, session, flash
import os
import shutil
import requests
from pymongo import MongoClient
from functools import wraps
import bcrypt
from bson.objectid import ObjectId

@app.route('/', methods=['GET'])
@authenticated
def index():

    return render_template('app.html')


@app.route('/portal')
def portal():

    if not session.get('username'):

        return render_template('portal.html')

    else:

        return render_template('index.html')


@app.route('/logout')
def logout():

    session.pop('username', None)
    session.pop('role', None)
    session.pop('realname', None)

    return redirect(url_for('index'))

@app.route('/download/<id>/<format>')
@authenticated
def download(id, format):

    book = mongo.Books.find({'id':id})[0]

    response = send_from_directory(app.config['LIB_DIR'], id+'.'+format)
    response.headers.add('Content-Disposition', 'attachment; filename="' + book['title'] + '.' + format + '"')

    return response


@app.route('/upload')
@authenticated
@administrator
def upload():

    return render_template('upload.html')

if __name__ == "__main__":

	  app.run()

## Instruction:
Fix return on active user accessing the portal
## Code After:
from alexandria import app, mongo
from decorators import *
from flask import render_template, request, jsonify, g, send_from_directory, redirect, url_for, session, flash
import os
import shutil
import requests
from pymongo import MongoClient
from functools import wraps
import bcrypt
from bson.objectid import ObjectId

@app.route('/', methods=['GET'])
@authenticated
def index():

    return render_template('app.html')


@app.route('/portal')
def portal():

    if not session.get('username'):

        return render_template('portal.html')

    else:

        return redirect(url_for('index'))


@app.route('/logout')
def logout():

    session.pop('username', None)
    session.pop('role', None)
    session.pop('realname', None)

    return redirect(url_for('index'))

@app.route('/download/<id>/<format>')
@authenticated
def download(id, format):

    book = mongo.Books.find({'id':id})[0]

    response = send_from_directory(app.config['LIB_DIR'], id+'.'+format)
    response.headers.add('Content-Disposition', 'attachment; filename="' + book['title'] + '.' + format + '"')

    return response


@app.route('/upload')
@authenticated
@administrator
def upload():

    return render_template('upload.html')

if __name__ == "__main__":

	  app.run()
