Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #run.py
- from overwatch import app
- app.run()
- #__init__.py
- from flask import Flask, session, g, render_template, request, redirect, url_for, Response
- import websiteconfig as config
- from flaskext.principal import Identity, Principal, RoleNeed, UserNeed, \
- Permission, identity_changed, identity_loaded
- app = Flask(__name__)
- app.debug = config.DEBUG
- app.secret_key = config.SECRET_KEY
- principals = Principal(app)
- principals._init_app(app)
- #error handling
- @app.errorhandler(404)
- def not_found(error):
- return render_template('404.html'), 404
- @app.errorhandler(403)
- def page_not_found(e):
- session['redirected_from'] = request.url
- return redirect(url_for('crud.login'))
- # handle login failed
- @app.errorhandler(401)
- def page_not_found(e):
- return Response('<p>Login failed</p>')
- from overwatch.views import general
- from overwatch.views import crud
- app.register_blueprint(general.mod)
- app.register_blueprint(crud.mod)
- #general.py
- from flask import Blueprint, render_template, session, redirect, url_for, \
- request, flash, g, Response, jsonify
- from flaskext.principal import Identity, Principal, RoleNeed, UserNeed, \
- Permission, identity_changed, identity_loaded
- from .. import principals
- mod = Blueprint('general', __name__)
- normal_role = RoleNeed('normal')
- normal_permission = Permission(normal_role)
- @mod.route('/')
- @normal_permission.require(http_exception=403)
- def index():
- return "YOU'RE IN"
- #crud.py
- from flask import Blueprint, render_template, session, redirect, url_for, \
- request, flash, g, Response, jsonify, abort, Response
- from mongokit import Connection, Document
- from db import user_exists, email_exists, return_attribute, check_credentials
- from forms import RegistrationForm, LoginForm
- from .. import app
- from flaskext.principal import Identity, Principal, RoleNeed, UserNeed, \
- Permission, identity_changed, identity_loaded
- from general import normal_role, normal_permission
- mod = Blueprint('crud', __name__)
- @mod.route('/login/', methods=['GET', 'POST'])
- def login():
- form = LoginForm(request.form)
- error = None
- if request.method == 'POST' and form.validate():
- if check_credentials(form.username.data,form.password.data):
- identity = Identity(form.username.data)
- identity_changed.send(app, identity=identity)
- return redirect(session['redirected_from'])
- else:
- return abort(401)
- return render_template('login.html', form=form, error=error)
- @app.route("/logout/")
- def logout():
- for key in ['identity.name', 'identity.auth_type', 'redirected_from']:
- try:
- del session[key]
- except:
- pass
- return Response('<p>Logged out</p>')
- @identity_loaded.connect_via(app)
- def on_identity_loaded(sender, identity):
- identity.provides.add(normal_role)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement