mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
from flask_security import hash_password
|
|
|
|
from project import user_datastore
|
|
|
|
|
|
def create_user(email, password):
|
|
return user_datastore.create_user(email=email, password=hash_password(password))
|
|
|
|
|
|
def add_roles_to_user(email, roles):
|
|
user = find_user_by_email(email)
|
|
|
|
if user is None:
|
|
raise ValueError("User with given email does not exist.")
|
|
|
|
for role in roles:
|
|
user_datastore.add_role_to_user(user, role)
|
|
|
|
|
|
def add_admin_roles_to_user(email):
|
|
add_roles_to_user(email, ["admin", "event_verifier", "early_adopter"])
|
|
|
|
|
|
def remove_roles_from_user(email, roles):
|
|
user = find_user_by_email(email)
|
|
|
|
for role in roles:
|
|
user_datastore.remove_role_from_user(user, role)
|
|
|
|
|
|
def remove_all_roles_from_user(email):
|
|
user = find_user_by_email(email)
|
|
remove_roles_from_user(email, user.roles)
|
|
|
|
|
|
def set_roles_for_user(email, roles):
|
|
remove_all_roles_from_user(email)
|
|
add_roles_to_user(email, roles)
|
|
|
|
|
|
def upsert_user_role(role_name, role_title, permissions):
|
|
role = user_datastore.find_or_create_role(role_name)
|
|
role.title = role_title
|
|
role.remove_permissions(role.get_permissions())
|
|
role.add_permissions(permissions)
|
|
return role
|
|
|
|
|
|
def find_user_by_email(email):
|
|
return user_datastore.find_user(email=email, case_insensitive=True)
|
|
|
|
|
|
def get_user(id):
|
|
return user_datastore.find_user(id=id)
|