def role_add(): """ 角色新增 :return: """ logging.info('role_add') role_form = RoleForm() if role_form.validate_on_submit(): name = role_form.data["name"] desc = role_form.data["desc"] org_id = role_form.data["org_id"] id = session.get("user_id", 0) sysuser = SysUser.query.filter_by(id=id).first() Rolelist.create(name=name, org_id=org_id, description=desc, create_by=sysuser.username, create_time=datetime.now()) # 发送操作消息 message_view.add_option_message("新增角色 '" + name + "'", '新增角色') return redirect(url_for('sysrole.role')) # sys_add_role id = session.get("user_id", 0) org_id = SysUser.query.filter_by(id=id).first().org_id org_code = SysOrg.query.filter_by(org_id=org_id).first() return render_template('sysadmin/sysrole/sys_add_role.html', **locals())
def reset_password(id): """ 用户管理--重置密码 通过id查询到用户,获取用户姓名,用户邮箱,通过随机生成六位数密码,发送给用户邮箱 :return: """ logging.info('reset_password') try: new_password = generate_verification_code() sys_user = SysUser.query.filter_by(id=id).first() if sys_user: address = sys_user.email msg = Message('富融通密码重置', sender='*****@*****.**', recipients=[address]) msg.body = '邮件内容' msg.html = "<h1>密码重置成功!<h1> <div>" + sys_user.name + "您好:</div><div>我们收到了来自您的富融通用户密码重置的申请。请使用下面的密码进行登录,并尽快设置新的密码。以下是您的密码:</div><h2>" + new_password + "<h2><div>富融通</div>" with current_app.app_context(): mail.send(msg) new_password = SysUser.set_password(sys_user, new_password) SysUser.update(sys_user, password=new_password) # 发送操作消息 message_view.add_option_message("重置用户 '" + sys_user.username + "' 的密码") return json.dumps({'code': ResponseCode.SUCCESS}) except Exception as e: logging.debug(e) name_dict = {'code': ResponseCode.ERROR, 'msg': '重置密码失败'} return json.dumps(name_dict)
def delete_user(id): """ 用户管理--删除用户 :param id: :return: """ logging.info('delete_user') try: sys_user = SysUser.query.filter_by(id=id).first() sys_role = SysUserRole.query.filter_by(user_id=id).first() sys_user_history = SysUserHistory.query.filter_by(user_id=id).first() if sys_user: # 用户表用户信息删除 SysUser.delete(sys_user) # 用户角色信息删除 SysUserRole.delete(sys_role) # 用户历史表 SysUserHistory.update(sys_user_history, status='0', update_time=get_current_time(), end_time=get_current_time(), update_by=session.get('user_name')) # 发送操作消息 message_view.add_option_message("删除用户 '" + sys_user.username + "'") res = {'code': ResponseCode.SUCCESS, 'msg': '删除成功'} return json.dumps(res) except Exception as e: logging.debug(e) raise e
def role_delete(): ''' 删除角色 :return: ''' logging.info('role_delete') id = int(request.args.get("id")) obj = SysUserRole.query.filter_by(role_id=str(id)).first() if obj: name_dict = {'code': ResponseCode.ERROR, 'desc': '角色正在使用中不能删除!'} return json.dumps(name_dict) res = Rolelist.query.filter_by(id=id).first() # if res.name == 'flow_客服审核(系统默认)': # name_dict = {'code': ResponseCode.ERROR, 'desc': '系统默认角色不能删除!'} # return json.dumps(name_dict) # if res.name == 'flow_支付参数配置(系统默认)': # name_dict = {'code': ResponseCode.ERROR, 'desc': '系统默认角色不能删除!'} # return json.dumps(name_dict) Rolelist.delete(res) listinfo = SysRolePermissionlist.query.filter_by(role_id=id).all() for item in listinfo: SysRolePermissionlist.delete(item) # 发送操作消息 message_view.add_option_message("删除角色 '" + res.name + "'", '删除角色') name_dict = {'code': ResponseCode.SUCCESS, 'desc': '角色删除成功!'} return json.dumps(name_dict)
def role_permission(role_id, listpower): """ 角色授权 :param role_id: 角色ID :param listpower: 角色授权的权限列表 list 新的权限ID列表对象 :return: """ logging.info('role_permission') try: info = [] # 公共集合 oldpower = SysRolePermissionlist.query.filter_by(role_id=role_id).all() for item in oldpower: # 删差集权限 if str(item.permissionlist_id) in listpower: info.append(str(item.permissionlist_id)) else: permission_status = Permissionlist.query.filter_by( id=item.permissionlist_id).first() if permission_status: if permission_status.status == 0: # status SysRolePermissionlist.delete(item) # 2017.10.31 ping for i in list(set(listpower) ^ set(info)): # 增加新附加的权限 SysRolePermissionlist.create(role_id=role_id, permissionlist_id=i) the_role = Rolelist.query.filter_by(id=role_id).first() # 发送操作消息 message_view.add_option_message("更新角色 '" + the_role.name + "' 的信息", '更新角色') return {'code': ResponseCode.SUCCESS} except Exception as e: logging.debug(e) raise e
def add_dict(data): """ 新增字典 :param data: :return: """ logging.info('add_dict') try: user_id = session.get('user_id', 0) user = SysUser.query.filter_by(id=user_id).first() # dict = SysDict.create(dict_name=data['dict_name'], dict_type=data['dict_type'], description=data['description'], # remarks=data['remarks'], dict_id=data['dict_id'], create_by=user.username, # update_by=user.username, sort=data['sort'], del_flag=int(data['del_flag'])) db.session.add( SysDict(dict_name=data['dict_name'], dict_type=data['dict_type'], description=data['description'], remarks=data['remarks'], dict_id=data['dict_id'], create_by=user.username, update_by=user.username, sort=data['sort'], del_flag=int(data['del_flag']))) db.session.commit() if dict: message_view.add_option_message("新增字典 '" + data['dict_name'] + "'") except Exception as e: logging.debug(e) raise e
def update_dict(id, data): """ 更新字典 :param id: :param data: :return: """ logging.info('update_dict') try: user_id = session.get('user_id', 0) user = SysUser.query.filter_by(id=user_id).first() dict = get_the_dict_by_id(id) if dict is not None: dict = SysDict.update(dict, dict_name=data['dict_name'], dict_id=data['dict_id'], dict_type=data['dict_type'], sort=data['sort'], del_flag=int(data['del_flag']), description=data['description'], remarks=data['remarks'], update_by=user.username, update_time=time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) if dict: message_view.add_option_message("更新字典 '" + data['dict_name'] + "'") except Exception as e: logging.debug(e) raise e
def delete_the_dict(id): """ 更改字典的删除标志 :param id: :return: """ logging.info('delete_the_dict') try: user_id = session.get('user_id', 0) user = SysUser.query.filter_by(id=user_id).first() dict = get_the_dict_by_id(id) if dict is not None: dict = SysDict.update(dict, del_flag=1, update_by=user.username, update_time=time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) if dict: message_view.add_option_message("停用字典 '" + dict.dict_name + "'") except Exception as e: logging.debug(e) raise e
def add_user_info(data): """ 用户信息插入数据库 :param data: 表单数据 :return: """ logging.info('add_user_info') try: user_id = session.get('user_id', 0) sys_user = SysUser.query.filter_by(id=user_id).first() image_list = data.getlist('image') for temp in image_list: if 'data' in temp: image_url = save_image(temp) else: image_url = 'default.png' if sys_user: SysUser.create(username=data['username'], password=data['password'], email=data['email'], mobile=data['mobile'], name=data['name'], chat_code=data['chat_code'], avatar=image_url, desc=data['desc'], sex=data['sex'], is_active=data['is_active'], org_id=data['org'], create_time=get_current_time(), update_time=get_current_time(), create_by=sys_user.username) # 发送操作消息 message_view.add_option_message("新增用户 '" + data['username'] + "'") new = db.session.query(SysUser.id).filter( SysUser.username == data['username']).first() SysUserRole.create(user_id=new[0], username=data['username'], role_id=data['role'], org_id=data['org'], create_time=get_current_time(), create_by=sys_user.username) SysUserHistory.create(user_id=new[0], mobile=data['mobile'], email=data['email'], chat_code=data['chat_code'], org_id=data['org'], status=data['is_active'], create_time=get_current_time(), create_by=sys_user.username, start_time=get_current_time()) return True except Exception as e: logging.debug(e) raise e
def role_add(name, description): """ 新增角色 :param name: 名字 :param description: 描述 :return: """ logging.info('role_add') try: data = Rolelist.create(name=name, description=description) # 发送操作消息 message_view.add_option_message("新增角色 '" + name + "'", '新增角色') return {'code': ResponseCode.SUCCESS, 'data': data} except Exception as e: logging.debug(e) raise e
def update_del_flag(id): """ 标记是否删除 :param id: :return: """ logging.info('update_del_flag') try: dict = SysDict.query.filter_by(id=id).first() if dict is not None: dict = SysDict.update(dict, del_flag=0) if dict: message_view.add_option_message("恢复字典 '" + dict.dict_name + "'") except Exception as e: logging.debug(e) raise e
def db_permission_usable(id): """ 更新权限为可用状态 :param id: :return: """ logging.info('db_permission_usable') try: permission = Permissionlist.query.filter_by(id=id).first() if permission is not None: # 发送操作消息 message_view.add_option_message("更新权限 '" + permission.name + "' 的状态") return Permissionlist.update(permission, status=PermissionStatus.normal.value) except Exception as e: logging.debug(e) raise e
def open_user_by_user_id(user_id): """ 根据用户id修改数据库字段is_active为1 :param user_id: 用户id :return: """ logging.info('open_user_by_user_id') try: obj = SysUser.query.filter_by(id=user_id).first() # 发送操作消息 message_view.add_option_message("更改用户 '" + obj.username + "' 的状态为正常") return SysUser.update(obj, is_active=1, update_time=get_current_time(), update_by=session.get('user_name')) except Exception as e: logging.debug(e) raise e
def db_create_permission(name, url, permission_type, parent_id, status, icon, desc, sort): """ 数据库创建权限 :param name: 权限名称 :param url: 权限url :param permission_type: 权限类型 :param parent_id: 父id :param status: 权限状态 :param icon: 图标 :param desc: 权限描述 :param sort: 权限排序 :return: """ logging.info('db_create_permission') try: create_time = datetime.now() user_name = get_session_user_name() # 创建权限 db.session.add( Permissionlist(name=name, url=url, type=permission_type, parent_id=parent_id, status=status, create_time=create_time, update_time=create_time, create_by=user_name, update_by=user_name, desc=desc, icon=icon, del_flag=0, sort=sort)) # Permissionlist.create(name=name, url=url, type=permission_type, # parent_id=parent_id, status=status, create_time=create_time, # update_time=create_time, create_by=user_name, update_by=user_name, # desc=desc, icon=icon, del_flag=0, sort=sort) db.session.commit() # 发送操作消息 message_view.add_option_message("创建权限 '" + name + "'") except Exception as e: logging.debug(e) raise e
def to_reset_password(res_form): """ 重置密码 :param data: :return: """ logging.info('to_reset_password') try: new_password = res_form.data.get('newpassword') user_id = session.get('user_id', 0) user = SysUser.query.filter_by(id=user_id).first() new_password = SysUser.set_password(user, new_password) SysUser.update(user, password=new_password, update_time=get_current_time(), update_by=session.get('user_name')) # 发送操作消息 message_view.add_option_message("重置用户 '" + user.username + "' 的密码") except Exception as e: logging.debug(e) raise e
def delete_the_permission(permission): """ 删除权限 修改权限删除标识 :param permission: :return: """ logging.info('delete_the_permission') try: user_name = get_session_user_name() if permission is not None: # 发送操作消息 message_view.add_option_message("删除权限 '" + permission.name + "'") return Permissionlist.update(permission, del_flag=1, update_by=user_name, update_date=time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) except Exception as e: logging.debug(e) raise e
def dict_export(): """ 导出文件 :return: """ try: logging.info('dict_export') dict_data = get_dict_all() io = export_excel(dict_data) message_view.add_option_message("尝试导出字典文件") response = make_response(io) response.headers['Content-Type'] = 'application/vnd.ms-excel' response.headers[ "Content-Disposition"] = "attachment; filename=sys_dict.xls;" return response except Exception as e: logging.debug(e) return None
def db_update_permission(permission_id, name, url, permission_type, parent_id, status, icon, desc, sort): """ 数据库更新权限 :param permission_id: 权限id :param name: 权限名称 :param url: 权限url :param permission_type: 权限类型 :param parent_id: 父id :param status: 权限状态 :param icon: 图标 :param desc: 权限描述 :param sort: 权限排序 :return: """ logging.info('db_update_permission') try: create_time = datetime.now() user_name = get_session_user_name() # 更新权限 permission = Permissionlist.query.filter_by(id=permission_id).first() Permissionlist.update(permission, name=name, url=url, type=permission_type, parent_id=parent_id, status=status, create_time=create_time, update_time=create_time, create_by=user_name, update_by=user_name, icon=icon, desc=desc, sort=sort) # 发送操作消息 message_view.add_option_message("更新权限 '" + name + "' 的信息") except Exception as e: logging.debug(e) raise e
def disable_the_permission(id): """ 停用权限 :param id: :return: """ logging.info('disable_the_permission') try: user_name = get_session_user_name() permission = get_permission(id) if permission is not None: # 发送操作消息 message_view.add_option_message("停用权限 '" + permission.name + "'") return Permissionlist.update(permission, status=PermissionStatus.disable.value, update_by=user_name, update_date=time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) except Exception as e: logging.debug(e) raise e
def role_changestatus(): ''' 状态改变 :return: ''' logging.info('role_changestatus') id = int(request.args.get("id")) user_id = session.get('user_id') sys_user_role = SysUserRole.query.filter( SysUserRole.user_id == user_id, SysUserRole.role_id == id).first() if sys_user_role: return json.dumps({'code': ResponseCode.ERROR, 'desc': '用户自身不能被停用!'}) res = Rolelist.query.filter_by(id=id).first() if res.status == "正常": Rolelist.update(res, status="停用") else: Rolelist.update(res, status="正常") # 发送操作消息 message_view.add_option_message("更新角色 '" + res.name + "' 的状态", '更新角色') name_dict = {'code': "0", 'desc': '状态更新成功!'} return json.dumps(name_dict)
def role_update(id, name, description, status="正常"): """ 编辑角色 (包括更新状态 ) :param id: :param name: 名字 :param description: 描述 :param status: 状态 :return: """ logging.info('role_update') try: role = Rolelist.query.filter_by(id=id).first() data = Rolelist.update(role, description=description, status=status, name=name) # 发送操作消息 message_view.add_option_message("更新角色 '" + name + "' 的信息", '更新角色') return {'code': ResponseCode.SUCCESS, 'data': data} except Exception as e: logging.debug(e) raise e
def dict_import(): """ 导入文件 :return: """ try: logging.info('dict_import') name_dict = {} file = request.files['file'] file_path = import_excel(file) if file_path == '-1': name_dict = { 'code': ResponseCode.ERROR, 'desc': '文件格式不匹配!', 'data': [] } else: if read_excel(file_path) == -1: name_dict = { 'code': ResponseCode.ERROR, 'desc': '文件内容不匹配!', 'data': [] } else: message_view.add_option_message("导入字典文件") name_dict = { 'code': ResponseCode.SUCCESS, 'desc': '文件上传成功!', 'data': [] } return json.dumps(name_dict) except Exception as e: logging.debug(e) name_dict = {'code': ResponseCode.ERROR, 'desc': '文件上传失败!', 'data': []} return json.dumps(name_dict)
def update_user(obj, data): """ 更新用户信息 :param obj: :param data: :return: """ logging.info('update_user') try: user_id = session.get('user_id', 0) sys_user = SysUser.query.filter_by(id=user_id).first() sys_user_history = SysUserHistory.query.filter_by( user_id=obj.id).first() if obj.org_id != data['org']: SysUserHistory.update(sys_user_history, update_by=session.get('user_name'), update_time=get_current_time(), end_time=get_current_time()) SysUserHistory.create(user_id=obj.id, org_id=data['org'], status=data['is_active'], create_time=get_current_time(), create_by=session.get('user_name'), start_time=get_current_time()) image_list = data.getlist('image') for temp in image_list: if 'data' in temp: image_url = save_image(temp) else: image_url = obj.avatar if sys_user: SysUser.update(obj, username=data['username'], email=data['email'], mobile=data['mobile'], name=data['name'], chat_code=data['chat_code'], avatar=image_url, desc=data['desc'], sex=data['sex'], org_id=data['org'], is_active=data['is_active'], update_time=get_current_time(), update_by=sys_user.username) # 发送操作消息 message_view.add_option_message("更新用户 '" + obj.username + "' 的信息") role_obj = SysUserRole.query.filter_by(user_id=obj.id).first() if data['role'] == '': pass else: if role_obj: SysUserRole.update(role_obj, role_id=data['role'], org_id=data['org'], update_time=get_current_time(), update_by=sys_user.username) else: SysUserRole.create(user_id=obj.id, username=data['username'], role_id=data['role'], org_id=data['org'], create_time=get_current_time(), create_by=sys_user.username) if obj.id == session['user_id']: session['avatar'] = SysUser.query.filter_by( id=session['user_id']).first().avatar return True except Exception as e: logging.debug(e) raise e