def login(): logging.info('login') login_form = LoginForm(request.form) if login_form.validate_on_submit(): login_user(login_form.user) session['user_id'] = login_form.user.id session['user_name'] = login_form.user.username session['menu'] = permission_view.get_user_menu(login_form.user.id) # session['user_permission_list'] = permission_view.get_user_permission_all_url_list(login_form.user.id) user = SysUser.query.filter_by(id=session['user_id']).first() session['last_login'] = user.last_login SysUser.update( user, last_login=get_current_time() ) if user.avatar == None: session['avatar'] = 'default.png' else: session['avatar'] = user.avatar org = SysOrg.query.filter_by(org_id=user.org_id).first() session['org_code'] = org.org_code session['province'] = org.org_area[:2] + '0000' if org.org_area else '110000' return redirect(url_for('index.home')) else: flash_errors(login_form) return render_template(session.get('loggin_content', 'login.html'), **locals())
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 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 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 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 validate(self): """Validate the form.""" initial_validation = super(PasswordForm, self).validate() if not initial_validation: return False user_id = session.get('user_id', 0) user = SysUser.query.filter_by(id=user_id).first() if not SysUser.check_password(user, self.password.data): self.password.errors.append('旧密码不正确') return False return True
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 load_user(user_id): """Load user by ID.""" logging.info('load_user') return SysUser.get_by_id(int(user_id))
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