def create_app(config_name): app = Flask(__name__) bootstrap.init_app(app) db.init_app(app) admin = Admin(app) admin.add_view(SecureView(User, db.session)) admin.add_view(SecureView(Question, db.session)) admin.add_view(SecureView(TestCase, db.session)) admin.add_view(SecureView(Submission, db.session)) app.config.from_object(config[config_name]) from app.auth import auth as auth_blueprint app.register_blueprint(auth_blueprint, url_prefix='/auth') from app.questions import questions as questions_blueprint app.register_blueprint(questions_blueprint, url_prefix="") login_manager.init_app(app) return app
from flask import Flask from flask.ext.admin.base import Admin # from flask.ext.api import FlaskAPI from flask.ext.mongoengine import MongoEngine # import config # Flask app = Flask(__name__) app.config.from_object('config') # MongoDB db = MongoEngine(app) # Flask-Admin admin = Admin(app, name='Lariatsoft', template_mode='bootstrap3') import views, api
return redirect(url_for('admin.index')) login_manager = login.LoginManager() login_manager.init_app(app) # Create user loader function @login_manager.user_loader def load_user(user_id): return User(user_id) if __name__ == '__main__': # Create admin interface admin = Admin(name='Example: Menu') admin.add_view(MyAdminView(name='Authenticated')) # Add home link by url admin.add_link(MenuLink(name='Back Home', url='/')) # Add login link by endpoint admin.add_link( NotAuthenticatedMenuLink(name='Login', endpoint='login_view')) # Add links with categories admin.add_link( MenuLink(name='Google', category='Links', url='http://www.google.com/')) admin.add_link( MenuLink(name='Mozilla', category='Links', url='http://mozilla.org/'))
return redirect(url_for('admin.index')) login_manager = login.LoginManager() login_manager.init_app(app) # Create user loader function @login_manager.user_loader def load_user(user_id): return User(user_id) if __name__ == '__main__': # Create admin interface admin = Admin() admin.add_view(MyAdminView(name='Authenticated')) # Add home link by url admin.add_link(MenuLink(name='Back Home', url='/')) # Add login link by endpoint admin.add_link( NotAuthenticatedMenuLink(name='Login', endpoint='login_view')) # Add logout link by endpoint admin.add_link(AuthenticatedMenuLink(name='Logout', endpoint='logout_view')) admin.init_app(app)
@app.route('/login', methods=['POST']) def login(): username = request.args['username'] password = request.args['password'] registered_user = User.query.filter_by(username=username, password=password).first() if registered_user is None: resp = jsonify(success=False) return resp login_user(registered_user, remember=True) resp = jsonify(success=True) return resp @app.route('/logout', methods=['POST', 'GET']) def logout(): #logout_user() resp = jsonify(success=True) return resp if __name__ == '__main__': admin = Admin(app, 'OneDir') admin.add_view(sqla.ModelView(User, db.session)) admin.add_view(sqla.ModelView(SavedFile, db.session)) # app.debug = True app.run() # app.run(host='0.0.0.0')
# the existing password in the database will be retained. model._password = utils.encrypt_password(model.password2) # Customized Role model for SQL-Admin class RoleAdmin(sqla.ModelView): # Automatically display human-readable names for the current and available Roles when creating or editing a User column_auto_select_related = True # Prevent administration of Roles unless the currently logged-in user has the "admin" role def is_accessible(self): return current_user.has_role('admin') # Initialize Flask-Admin admin = Admin(app, name='OOI User Admin') # Add Flask-Admin views for Users and Roles admin.add_view(UserAdmin(User, db.session)) admin.add_view(RoleAdmin(Role, db.session)) # Create menu links classes with reloaded accessible class AuthenticatedMenuLink(MenuLink): def is_accessible(self): return current_user.is_authenticated class NotAuthenticatedMenuLink(MenuLink): def is_accessible(self): return not current_user.is_authenticated
from admin.index import GeneralView from admin.settings import SettingsView from admin.auth import * def rel(*x): return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x) login_manager.setup_app(app) UPLOAD_FOLDER = os.path.join(rel('static'), 'uploads') ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif']) SETTINGS_PATH = rel('settings.cfg') admin = Admin(index_view=GeneralView()) admin.init_app(app) from admin.file_upload import * from frontend.controllers import index @app.context_processor def teardown_request(exception=None): general_meta_k = '' general_meta_d = '' menu = Menu.select() try: general_meta_k = GeneralMeta.get(id=1).meta_k general_meta_d = GeneralMeta.get(id=1).meta_d