def update(id, updator, org_id=None, role_id=None, username=None, real_name=None, email=None, tel=None, profile_photo=None, login_error_num=None, description=None, password=None, enable=None, last_login_time=None): user = get(id) if user: old_data = user.to_json() user.org_id = org_id if org_id is not None else user.org_id user.role_id = role_id if role_id is not None else user.role_id user.username = username if username is not None else user.username user.real_name = real_name if real_name is not None else user.real_name user.email = email if email is not None else user.email user.tel = tel if tel is not None else user.tel user.profile_photo = profile_photo if profile_photo is not None else user.profile_photo user.login_error_num = login_error_num if login_error_num is not None else user.login_error_num user.description = description if description is not None else user.description user.password = password if password is not None else user.password user.enable = enable if enable is not None else user.enable user.last_login_time = last_login_time if last_login_time is not None else user.last_login_time user.updator = updator user.update_time = datetime.now() opr_data(oid=updator, od=old_data, nd=user.to_json()) db.session.add(user)
def role_set_auth(role_id, auths_id, oid=0): od = nd = [] role_find = Role.query.filter(Role.id == role_id).one_or_none() if role_find: for auth_id in auths_id: auth = Auth.query.filter(Auth.id == auth_id).one_or_none() if auth: # 三种可能 权限已存在 新增权限 删除(未传) role_auth_check = RoleAuth.query.filter( RoleAuth.role_id == role_id, RoleAuth.auth_id == auth_id).one_or_none() if role_auth_check is None: role_auth = RoleAuth(role_id=role_id, auth_id=auth_id) db.session.add(role_auth) od.append({}) nd.append(role_auth.to_json()) # 删除没勾选的该角色的权限 role_auth_del = RoleAuth.query.filter( RoleAuth.role_id == role_id, RoleAuth.auth_id.notin_(auths_id)).all() for item in role_auth_del: db.session.delete(item) od.append(item.to_json()) nd.append({}) db.session.delete(item) db.session.commit() opr_data(oid=oid, od={}, nd={'nd': nd}) return msg.SYS_SUCCESS else: db.session.commit() return msg.SYS_RECORD_NOT_FOUND
def add(org_id, role_id, username, password, real_name, email, tel, enable, description, creator, updator, profile_photo=web['static_avatar'], id=None): user = User( id=id, org_id=org_id, role_id=role_id, username=username, password=password, real_name=real_name, email=email, tel=tel, profile_photo=profile_photo if profile_photo else web['static_avatar'], login_error_num=0, enable=enable, description=description, creator=creator, create_time=datetime.now(), updator=updator if updator else creator, update_time=datetime.now()) opr_data(oid=creator, od={}, nd=user.to_json()) db.session.add(user)
def role_delete(roles_id, oid=0): for role_id in roles_id: role_find = Role.query.filter(Role.id == role_id).one_or_none() if role_find: od = role_find.to_json() db.session.delete(role_find) opr_data(oid=oid, od=od, nd={}) db.session.commit() return msg.SYS_SUCCESS
def delete_media(ids: list, oid: int): """ 删除媒体库 :param ids: type(int) :return: """ for media_id in ids: sql_result = Media.query.filter(Media.id == media_id).one_or_none() if sql_result: db.session.delete(sql_result) opr_data(oid=oid, nd={}, od=sql_result.to_json())
def role_add(name, description, creator, enable): role_check = Role.query.filter(Role.name == name).one_or_none() if role_check: return msg.SYS_NAME_REPEATED_ERR role = Role(name=name, description=description, creator=creator, enable=enable) db.session.add(role) db.session.commit() opr_data(oid=creator, od={}, nd=role.to_json()) return msg.SYS_SUCCESS
def auth_audit(need_auditing, auths_id, updator): od = nd = [] for auth_id in auths_id: auth_find = Auth.query.filter(Auth.id == auth_id).one_or_none() if auth_find: od.append(auth_find.to_json()) auth_find.need_auditing = need_auditing auth_find.updator = updator auth_find.update_time = datetime.datetime.now() nd.append(auth_find.to_json()) opr_data(oid=updator, od={'od': od}, nd={'nd': nd}) return msg.SYS_SUCCESS
def outbox_message_del(ids, oid=0): for each in ids: is_exist = Message.query.filter(Message.id == int(each)).one_or_none() if not is_exist: return False, msg.MESSAGE_UN_RECORD # 伪删除 is_exist.is_del = 1 od = { 'ids': ids, } nd = {} opr_data(oid=oid, nd=nd, od=od) return True, msg.SYS_SUCCESS
def role_disable(roles_id, updator): od = nd = [] for role_id in roles_id: role_find = Role.query.filter(Role.id == role_id).one_or_none() if role_find: od.append(role_find.to_json()) role_find.enable = False role_find.updator = updator role_find.update_time = datetime.datetime.now() nd.append(role_find.to_json()) opr_data(oid=updator, od={'od': od}, nd={'nd': nd}) db.session.commit() return msg.SYS_SUCCESS
def user_outbox_message_del(ids, oid=0): on_user = get_g().user uid = on_user.id for each in ids: is_exist = Message.query.filter(Message.id == int(each), Message.sender == uid).one_or_none() if not is_exist: return False, msg.MESSAGE_UN_RECORD # 伪删除 is_exist.is_del = 1 od = {'ids': ids} nd = {} opr_data(oid=oid, nd=nd, od=od) return True, msg.SYS_SUCCESS
def modify_media(data: dict, updator: int): """ 编辑媒体 :param data:{ "id":789 "name":"name", "describe":"describe" } :return: """ sql_result = Media.queyr.filter(Media.id == data["id"]).one() old = sql_result.to_json() sql_result.name = data["name"] sql_result.describe = data["describe"] opr_data(oid=updator, nd=sql_result.to_json(), od=old)
def login_setting(lut: int, ct: bool, oid: int): system = Metadata.query.get(1) if not system: new_system = Metadata(lut=lut, ct=ct) db.session.add(new_system) od = {} else: od = system.to_json() system.lock_user_threshold = lut system.captcha_threshold = ct db.session.commit() new_data = Metadata.query.get(1) nd = new_data.to_json() opr_data(oid=oid, od=od, nd=nd) return True, msg.SYS_SUCCESS
def role_update(id, name, description, updator): role_check = Role.query.filter(Role.name == name, Role.id != id).one_or_none() if role_check: return msg.SYS_NAME_REPEATED_ERR role_find = Role.query.filter(Role.id == id).one_or_none() if role_find: od = role_find.to_json() role_find.name = name role_find.description = description role_find.updator = updator role_find.update_time = datetime.datetime.now() opr_data(oid=updator, od=od, nd=role_find.to_json()) return msg.SYS_SUCCESS else: return msg.SYS_NOT_FOUND
def modify_media_type(data: dict, updator: int): """ 修改媒体类型 :param data:{ "type_name":"image", "limit_size":789, "format":"jpg,png" } :return: """ sql_result = MediaConf.query.filter(MediaConf.type_name == data["type_name"]).one() old = sql_result.to_json() sql_result.update_time = datetime.datetime.now() sql_result.limit_size = data["limit_size"] sql_result.format = data["format"] opr_data(oid=updator, nd=sql_result.to_json(), od=old)
def system_setting(name: str, company: str, version: str, logo: str, favicon: str, oid: int): system = Metadata.query.filter(Metadata.id == 1).one_or_none() if not system: new_system = Metadata(name=name, version=version, company=company, favicon=favicon, logo=logo) db.session.add(new_system) od = {} else: od = system.to_json() system.name = name system.company = company system.version = version system.logo = logo system.favicon = favicon db.session.commit() new_data = Metadata.query.filter(Metadata.id == 1).one_or_none() nd = new_data.to_json() opr_data(oid=oid, od=od, nd=nd) return True, msg.SYS_SUCCESS
def add_media(data: dict, creator: int): """ 添加媒体 :param data:{ "name":"name", "type":"type", "size":"size", "url":"url", "uploader":"uploader", "resolution":"resolution", "time_length":"time_length" } :return: """ model = Media() for key, value in data.items(): setattr(model, key, value) db.session.add(model) opr_data(oid=creator, nd=model.to_json(), od={})
def message_entry(title, context, receiver, is_read=1, m_type=1, creator=0): on_user = get_g().user sender = on_user.id if not receiver: return False, msg.MESSAGE_UN_RECORD messages = [] new_message = Message(title=title, context=context, m_type=m_type, receiver_num=len(receiver), sender=sender) db.session.add(new_message) db.session.flush() msg_id = new_message.id for r in receiver: is_exist = User.query.filter(User.id == r).one_or_none() if not is_exist: return False, msg.MESSAGE_UN_RECORD new_user_message = UserPkMessage(msg_id=msg_id, receiver=r, sender=sender) new_message.title = title messages.append(new_user_message) db.session.add(messages) db.session.commit() od = {} nd = { 'title': title, 'context': context, 'sender': sender, 'receiver': receiver, 'isread': is_read, 'm_type': m_type } opr_data(oid=creator, nd=nd, od=od) return True, msg.SYS_SUCCESS
def delete(ids: List[int], oid: int): for id in ids: user = get(id) opr_data(oid=oid, od=user.to_json(), nd={}) db.session.delete(user)