30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
|
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
|