Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
def load_user(user_id):
    """Load user by ID."""
    logging.info('load_user')
    return SysUser.get_by_id(int(user_id))
Ejemplo n.º 9
0
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