class AuthenticationModule(SystemModule): def __init__(self, *args, **kwargs): super(AuthenticationModule, self).__init__(*args, **kwargs) self.login_manager = LoginManager() self.login_manager.login_message_category = "warning" self.login_manager.user_loader(self.load_user) self.logged_in_menu = DropdownMenu() self.login_text = mydomain.lazy_gettext('Login...') self.logged_in_user_text = mydomain.lazy_gettext('User: '******'.' + view.__name__ return view def register(self, app, *args, **kwargs): super(AuthenticationModule, self).register(app, *args, **kwargs) self.login_manager.init_app(app) def login_url(self): return login_url(self.login_manager.login_view, request.url) def logged_in_text(self): return self.logged_in_user_text + ' ' + self.get_current_user_name() def get_current_user_name(self): return current_user.get_name() def user_menu(self, text, group='', values={}): def wrap(view): name = self.name + '.' + view.__name__ entry = self.menu_entry_for_view(view, text, values=values) self.logged_in_menu.add_entry(name, entry, group) return view return wrap def get_anonymous_system_menu(self): return MenuItem(text=self.login_text, url=self.login_url()) def get_system_menu_item(self): if current_user.is_anonymous(): return self.get_anonymous_system_menu() else: return MenuItem(text=self.logged_in_text(), items=self.logged_in_menu.build_real_menu()) def handle_forbidden_endpoint(self): if current_user.is_anonymous(): return self.login_manager.unauthorized() else: return self.forbidden() def forbidden(self): return abort(403)
def __init__(self, *args, **kwargs): super(AuthenticationModule, self).__init__(*args, **kwargs) self.login_manager = LoginManager() self.login_manager.login_message_category = "warning" self.login_manager.user_loader(self.load_user) self.logged_in_menu = DropdownMenu() self.login_text = mydomain.lazy_gettext('Login...') self.logged_in_user_text = mydomain.lazy_gettext('User: ')