You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
627 B
24 lines
627 B
from flask import Flask
|
|
from flask_login import current_user
|
|
from flask_principal import AnonymousIdentity
|
|
from flask_principal import Identity
|
|
from flask_principal import Permission
|
|
from flask_principal import Principal
|
|
from flask_principal import RoleNeed
|
|
from monsun_backend import models
|
|
|
|
principals = Principal()
|
|
|
|
|
|
@principals.identity_loader
|
|
def read_identity_from_flask_login():
|
|
if current_user.is_authenticated:
|
|
return Identity(current_user.id)
|
|
return AnonymousIdentity()
|
|
|
|
|
|
def init_app(app: Flask):
|
|
principals.init_app(app=app)
|
|
|
|
|
|
admin_permission = Permission(RoleNeed(models.RoleType.admin.name))
|
|
|