daily/Crud/AuthCrud.py

30 lines
1.0 KiB
Python

from sqlalchemy.orm import Session
from Models.UserModel import User
from Models.DepartmentModel import Department
def marge_auth_data(auth_data_list):
auth_data = []
for item in auth_data_list:
if item:
auth_data.extend(item.split(','))
auth_data = list(set(auth_data))
auth_data.sort()
auth_data_str = ",".join(auth_data)
return auth_data_str
def get_user_auth(db: Session, email):
user = db.query(User).filter_by(email=email).first()
user_auth_data_str = user.auth_data
if user.department:
department_id_list = [int(d_id) for d_id in user.department.split(',')]
department_auth_data_list = [
item.auth_data
for item in db.query(Department).filter(Department.id.in_(department_id_list))]
if user.auth_data:
department_auth_data_list.append(user.auth_data)
user_auth_data_str = marge_auth_data(department_auth_data_list)
# db.query(User).filter_by(openid=user_id).update({'auth_data': user_auth_data_str})
return user_auth_data_str