2023-03-01 16:04:43 +08:00
|
|
|
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 = []
|
2023-03-02 15:19:14 +08:00
|
|
|
for item in auth_data_list:
|
|
|
|
if item:
|
|
|
|
auth_data.extend(item.split(','))
|
2023-03-01 16:04:43 +08:00
|
|
|
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):
|
2023-03-02 15:19:14 +08:00
|
|
|
print(user_id)
|
2023-03-01 16:04:43 +08:00
|
|
|
user = db.query(User).filter_by(openid=user_id).first()
|
|
|
|
user_auth_data_str = user.auth_data
|
|
|
|
if not user.auth_data:
|
2023-03-02 15:19:14 +08:00
|
|
|
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))]
|
|
|
|
user_auth_data_str = marge_auth_data(department_auth_data_list)
|
2023-03-01 16:04:43 +08:00
|
|
|
# db.query(User).filter_by(openid=user_id).update({'auth_data': user_auth_data_str})
|
|
|
|
return user_auth_data_str
|