def build_app(): app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app) app.secret_key = 'super secret key' admin = Admin(app, name='Fuzz', template_mode='bootstrap3') admin.add_view(ModelView(FuzzerIssue, db.session)) logging.basicConfig(level=logging.DEBUG) return app
def register_admin_views(app): """ Initialize admin views and register all the views which are required here. """ # create admin instance usign new Admin index view admin = Admin( app, index_view=AdminDashboardView(), template_mode="bootstrap4" ) # add views to the Admin admin.add_view(UserAdminView(User)) admin.add_view(QuestionsAdminView(Question)) admin.add_view(QuizTakenAdminView(QuizTaken)) # define link to the Website, to be able to return back to Quiz admin.add_link(MenuLink(name="Back to the Website", category="", url="/"))
def initialize_admin(admin: base.Admin, db: SQLAlchemy): admin.add_view(UsersModelView(Users, db.session)) admin.add_view(WhitelistDomainsModelView(WhitelistDomains, db.session)) admin.add_view(DockerContainersModelView(DockerContainers, db.session)) admin.add_view(ReportMessageModelView(ReportMessage, db.session))
login_manager = 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/'))
def register_admin(app): """ Register admin views """ admin = Admin(app, name='Admin', template_mode='bootstrap3') admin.add_view(ModelView(BaseCurrency, db.session)) admin.add_view(ModelView(CurrencyRate, db.session))
# defining User Admin View which we will use on the Admin site of the Flask app class UserAdminView(ModelView): column_filters = ["username", "email"] # defining QuestionAdminView which we will use class QuestionsAdminView(ModelView): column_filters = ["title"] class QuizTakenAdminView(ModelView): column_filter = ["user"] # connecting User and Question models with Admin admin.add_view(UserAdminView(User)) admin.add_view(QuestionsAdminView(Question)) admin.add_view(QuizTakenAdminView(QuizTaken)) # helper functions # create/set user questions def create_user_quiz(): # get all questions all_questions = Question.objects() # get only id's from the Questions and set them in the list all_questions_id_list = [str(x.id) for x in all_questions] # randomize list of id's from this all_questions_id_list_random = random.sample(all_questions_id_list, k=all_questions.count())
def install_admin_views(admin: Admin, session: Session) -> None: admin.add_view( offer_view.OfferView(models.Offer, session, name="Offres", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( support_view.BeneficiaryView(User, session, name="Bénéficiaires", endpoint="support_beneficiary", category=Category.SUPPORT)) admin.add_view( offer_view.OfferForVenueSubview( models.Offer, session, name="Offres pour un lieu", endpoint="offer_for_venue", )) admin.add_view( CriteriaView(models.Criterion, session, name="Tags des offres", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( OffererView(Offerer, session, name="Structures", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( VenueView(models.Venue, session, name="Lieux", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( UserOffererView(models.UserOfferer, session, name="Lien Utilisateurs/Structures", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( ProUserView( User, session, name="Comptes Pros", category=Category.USERS, endpoint="/pro_users", )) admin.add_view( VenueProviderView( VenueProvider, session, name="Imports automatiques", endpoint="venue_providers", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( AdminUserView( User, session, name="Comptes admin", category=Category.USERS, endpoint="/admin_users", )) admin.add_view( BeneficiaryUserView( User, session, name="Comptes Jeunes", category=Category.USERS, endpoint="/beneficiary_users", )) admin.add_view( PartnerUserView(User, session, name="Comptes Grand Public", category=Category.USERS, endpoint="/partner_users")) admin.add_view( FeatureView(models.Feature, session, name="Feature Flipping", category=None)) admin.add_view( BeneficiaryImportView(models.BeneficiaryImport, session, name="Imports DMS", category=Category.USERS)) admin.add_view( ApiKeyView(ApiKey, session, name="Clés API", category=Category.USERS)) admin.add_view( AllocinePivotView(models.AllocinePivot, session, name="Pivot Allocine", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( ManyOffersOperationsView( name="Opérations sur plusieurs offres", endpoint="/many_offers_operations", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( BookingView( name="Réservations", endpoint="/bookings", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( offer_view.ValidationView( models.Offer, session, name="Validation", endpoint="/validation", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( offer_view.ImportConfigValidationOfferView( OfferValidationConfig, session, name="Configuration des règles de fraude", endpoint="/fraud_rules_configuration", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( SuspendFraudulentUsersByEmailProvidersView( name="Suspension d'utilisateurs via noms de domaine", endpoint="/suspend_fraud_users_by_email_providers", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( SuspendFraudulentUsersByUserIdsView( name="Suspension d'utilisateurs via identifiants", endpoint="/suspend_fraud_users_by_user_ids", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( CategoryView( name="Catégories", endpoint="/categories", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( SubcategoryView( name="Sous-catégories", endpoint="/subcategories", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( inapp_messages.MessageView( subscription_models.SubscriptionMessage, session, name="Messages utilisateurs dans l'app", category=Category.CUSTOM_OPERATIONS, )) admin.add_view( CustomReimbursementRuleView( CustomReimbursementRule, session, name="Règles de remboursement personnalisées", category=Category.CUSTOM_OPERATIONS, ))
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/')) # Add logout link by endpoint admin.add_link(AuthenticatedMenuLink(name='Logout', endpoint='logout_view'))
from app.config import es_url, es_port, admin_username, admin_password, db_conn_str from flask_sqlalchemy import SQLAlchemy from flask_bcrypt import Bcrypt from flask_login import LoginManager from flask_admin.base import Admin app = Flask(__name__, static_folder='unicorn/static', static_url_path='/unicorn/static') app.secret_key = str(random.SystemRandom().random()) app.config['SQLALCHEMY_DATABASE_URI'] = db_conn_str db = SQLAlchemy(app) flask_bcrypt = Bcrypt(app) login_manager = LoginManager() login_manager.init_app(app) from app.models import * from app.admin_view import UserView, OrgView, AdminView admin = Admin(app, index_view=AdminView()) admin.add_view(UserView(db.session)) admin.add_view(OrgView(db.session)) es = Elasticsearch(es_url, port=es_port) from app import views from app.views import uni app.register_blueprint(uni)
def install_admin_views(admin: Admin, session: Session) -> None: admin.add_view( OfferView(Offer, session, name="Offres", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( OfferForVenueSubview( Offer, session, name="Offres pour un lieu", endpoint="offer_for_venue", )) admin.add_view( CriteriaView(Criterion, session, name="Tags des offres", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( OffererView(Offerer, session, name="Structures", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( VenueView(Venue, session, name="Lieux", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( UserOffererView(UserOfferer, session, name="Lien Utilisateurs/Structures", category=Category.OFFRES_STRUCTURES_LIEUX)) admin.add_view( ProUserView( User, session, name="Comptes Pros", category=Category.USERS, endpoint="/pro_users", )) admin.add_view( BeneficiaryUserView( User, session, name="Comptes Jeunes/Grand Public", category=Category.USERS, endpoint="/beneficiary_users", )) admin.add_view( PartnerUserView(User, session, name="Comptes Partenaires", category=Category.USERS, endpoint="/partner_users")) admin.add_view( FeatureView(Feature, session, name="Fonctionnalités", category=None)) admin.add_view( BeneficiaryImportView(BeneficiaryImport, session, name="Imports DMS", category=Category.USERS)) admin.add_view( AllocinePivotView(AllocinePivot, session, name="Pivot Allocine", category=Category.OFFRES_STRUCTURES_LIEUX))
# -*- coding: utf-8 -*- import os from os import path from flask_admin.base import Admin, MenuLink from .admin import MyAdminIndexView, MediaFileAdmin from ..users.admin import UserModelView, RoleModelView media_path = path.join(path.dirname(__file__), os.pardir, 'static', 'media') admin = Admin(name="{{cookiecutter.project_name}}", index_view=MyAdminIndexView(template='admin/index.jade')) admin.add_view(UserModelView()) admin.add_view(RoleModelView()) admin.add_view(MediaFileAdmin(media_path, '/media/', name="Media Files", endpoint="media")) logout_link = MenuLink(name="Logout", url='/users/logout') admin.add_link(logout_link)
def administration_setup(app): """ Hack to use the backend administration. """ administration = Admin(name="Victims Admin", index_view=SafeAdminIndexView()) administration.init_app(app) # Application administration administration.add_view(CacheAdminView(name='Cache', endpoint='cache')) # Database management administration.add_view( AccountView(Account, name='Accounts', endpoint='accounts', category='Database')) administration.add_view( HashView(Hash, name='Hashes', endpoint='hashes', category='Database')) administration.add_view( SubmissionView(Submission, name='Submissions', endpoint='submissions', category='Database')) # File Management administration.add_view( FileView(app.config['UPLOAD_FOLDER'], '/uploads/', endpoint='uploads', name='User Uploads', category='Files')) administration.add_view( FileView(app.config['DOWNLOAD_FOLDER'], '/downloads/', endpoint='downloads', name='Charon Downloads', category='Files')) # Add links administration.add_link(MenuLink(name='Front End', endpoint='ui.index')) administration.add_link( MenuLink(name='Logout', endpoint='auth.logout_user')) return administration
def administration_setup(app): """ Hack to use the backend administration. """ administration = Admin( name="Victims Admin", index_view=SafeAdminIndexView()) administration.init_app(app) # Application administration administration.add_view(CacheAdminView(name='Cache', endpoint='cache')) # Database management administration.add_view(AccountView( Account, name='Accounts', endpoint='accounts', category='Database') ) administration.add_view(HashView( Hash, name='Hashes', endpoint='hashes', category='Database') ) administration.add_view(SubmissionView( Submission, name='Submissions', endpoint='submissions', category='Database') ) # File Management administration.add_view(FileView( app.config['UPLOAD_FOLDER'], '/uploads/', endpoint='uploads', name='User Uploads', category='Files') ) administration.add_view(FileView( app.config['DOWNLOAD_FOLDER'], '/downloads/', endpoint='downloads', name='Charon Downloads', category='Files') ) # Add links administration.add_link(MenuLink(name='Front End', endpoint='ui.index')) administration.add_link(MenuLink( name='Logout', endpoint='auth.logout_user')) return administration
from app.security import User, Role, current_user_is_logged, current_user_is_superuser class BaseModelView(sqla.ModelView): # @roles_required("superuser") def is_accessible(self): if not current_user_is_logged(): return False if not current_user_is_superuser(): return False return True def _handle_view(self, name, **kwargs): """ Override builtin _handle_view in order to redirect users when a view is not accessible. """ if not self.is_accessible(): if current_user.is_authenticated(): # permission denied abort(403) else: # login return redirect(url_for('security.login', next=request.url)) admin = Admin(app, name=u"Админка") admin.add_view(BaseModelView(User, db.session)) admin.add_view(BaseModelView(Role, db.session))
def create_admin(app, db): admin = Admin(app, name='Admin', template_mode='bootstrap3', index_view=MyAdminView()) admin.add_view(AppModelView(UserModel, db.session, name='Users')) return admin
def __init__(self): super(RawTerminalView, self).__init__(name="Terminal (use caution!)", endpoint='raw-terminal', menu_icon_type='glyph', menu_icon_value='glyphicon-console') @expose('/') def index(self): return self.render('terminal.html') # Create flask app app = Flask(__name__) app.config.from_pyfile('config.py') # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' # Create admin interface admin = Admin(name="TMAdmin", template_mode='bootstrap3') admin.add_view(UsersView()) admin.add_view(TasksView()) admin.add_view(RawFileView()) admin.add_view(RawTerminalView()) admin.init_app(app)
def init_admin(app, db): login_manager = flask_login.LoginManager() login_manager.init_app(app) session = MODELS_GLOBAL_CONTEXT['session'] # ~ when defining this user_loader, we need an already initialized login_manager # ~ and an active db session @login_manager.user_loader def load_user(user_id): # pylint: disable=unused-variable return session.query(User).get(user_id) index_view_ = TrackerAdminResources(url='/') # pylint: disable=undefined-variable admin_ = Admin(app, name='FlaskTracker', template_mode='bootstrap3', index_view=index_view_) # ~ we need an already initialized app (to access the app.config), when defining the ModelView classes globals().update(define_view_classes(app)) admin_.add_view(TaskView(Task, db.session)) # pylint: disable=undefined-variable admin_.add_view(ProjectView(Project, db.session)) # pylint: disable=undefined-variable admin_.add_view(MilestoneView(Milestone, db.session)) # pylint: disable=undefined-variable admin_.add_view(OrderView(Order, db.session)) # pylint: disable=undefined-variable admin_.add_view(AttachmentView(Attachment, db.session)) # pylint: disable=undefined-variable admin_.add_view(ClaimView(Claim, db.session)) # pylint: disable=undefined-variable admin_.add_view(TrackerModelView(Customer, db.session, category="admin")) # pylint: disable=undefined-variable admin_.add_view(HistoryView(History, db.session, category="admin")) # pylint: disable=undefined-variable admin_.add_view(UserView(User, db.session, category="admin")) # pylint: disable=undefined-variable admin_.add_view(WorkTimeView(WorkTime, db.session, category="admin")) # pylint: disable=undefined-variable admin_.add_link(MenuLink(name='Wiki', url='/wiki/')) @app.route('/attachment/<path:filename>') def attachment(filename): # pylint: disable=unused-variable return send_from_directory(app.config['ATTACHMENT_PATH'], filename) return admin_
def formatdate(date_, fmt="%Y-%m-%d %H:%I:%S"): dt = comm.timestamp2datetime(date_) return dt.strftime(fmt) app.jinja_env.filters['formatdate'] = formatdate myAdminIndexView = MyAdminIndex(name=u"首页") admin = Admin(name=u"日志系统后台", template_mode="bootstrap3", index_view=myAdminIndexView) admin.add_view( UserInfoSearchView(name=u'信息查询', endpoint="userinfosearch", category=u"数据查询")) admin.add_view( UserCondSearchView(name=u'条件查询', endpoint="usercondsearch", category=u"数据查询")) admin.add_link(NotAuthenticatedMenuLink(name=u'登录', url="/admin/login")) path = os.path.realpath(os.path.join(os.path.dirname(__file__), "../../..")) admin.add_view(MyFileAdmin(path, '/filemgr/', name=u'文件管理')) admin.add_view( UserAdminView(name=u"用户管理", endpoint="useradmin", category=u"用户管理")) admin.add_view( UserModifyPasswordView(name=u"修改密码",