from datetime import datetime from sqlalchemy import func from sqlalchemy.orm import Session from Models.AuthModel import AuthRule, DefaultAuthRuleConfig from Models.UserModel import User from Models.DepartmentModel import Department from Schemas.AuthSchemas import DefaultAuthConfigTypeEnum def marge_auth_data(auth_data_list): auth_data = [] for auth_data in auth_data_list: auth_data += auth_data.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, user_id): user = db.query(User).filter_by(openid=user_id).first() user_auth_data_str = user.auth_data if not user.auth_data: department_id_list = [int(d_id) for d_id in user.department.split(',')] department_auth_data_list = [ db.query(Department).filter(Department.id.in_(department_id_list))] 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