def extensions(app):
"""
Register 0 or more extensions (mutates the app passed in).
:param app: Flask application instance
:return: None
"""
debug_toolbar.init_app(app)
db.init_app(app)
app.session_interface = mongoInterface
# init login
init_login(app)
# Setup Flask-Security
user_datastore = MongoEngineUserDatastore(db, User, Role)
security = Security(app, user_datastore)
# add admin view
admin.init_app(app, index_view=HomeView())
# admin.index_view =
admin.add_view(CourseView(Course))
admin.add_view(RequirementView(Requirement))
admin.add_view(MajorView(Major))
admin.add_view(QuarterView(Quarter))
admin.add_view(UserView(User))
admin.add_view(RoleView(Role))
admin.add_view(FileUploadView(name='util', endpoint='util'))
# define a context processor for merging flask-admin's template context into the
# flask-security views.
@security.context_processor
def security_context_processor():
return dict(
admin_base_template=admin.base_template,
admin_view=admin.index_view,
h=admin_helpers,
get_url=url_for
)
# Create a user to test with
@app.before_first_request
def create_user():
user_datastore.find_or_create_role(name='superuser', description='Administrator')
user_datastore.find_or_create_role(name='user', description='User')
if not user_datastore.get_user('admin'):
user_datastore.create_user(email='admin', password='admin')
user_datastore.add_role_to_user('admin', 'superuser')
return None
评论列表
文章目录