예제 #1
0
def users():
    form1 = AddUserForm(prefix="form1")
    form2 = EditUserForm(prefix="form2")
    # 添加用户
    if request.method == 'POST' and request.path == '/users':
        # 验证
        if not form1.validate_on_submit():
            flash({'error': form1.errors})
            return redirect(request.url)
        username = form1.username.data  # 账号名
        select = form1.select.data  # 所选权限
        user = User(name=username, authority=select)
        # 设置密码
        user.password = form1.password2.data
        # 尝试添加到数据库
        try:
            db.session.add(user)
            db.session.commit()
            # ‘success’、‘info’、‘warning’、‘error’
            flash({'success': u'添加成功!'})
            record_operation_log(operation=u'添加用户:' + str(user.id),
                                 module=u'用户',
                                 result=u'成功',
                                 user_id=current_user.id)
        except Exception as e:
            flash({'error': u'添加用户失败'})
            db.session.rollback()
            record_operation_log(operation=u'添加用户:' + username,
                                 module=u'用户',
                                 result=u'失败',
                                 user_id=current_user.id)
    # 修改用户
    if request.method == 'POST' and request.path == '/users/edit':
        # 验证
        if not form2.validate_on_submit():
            flash({'error': form2.errors})
            return redirect('/users')
        user_id = form2.user_id.data  # u_id
        user = User.query.filter_by(id=user_id).first()
        try:
            user.name = form2.username.data  # 账号名
            user.authority = form2.select.data  # 所选权限
            db.session.flush()
            flash({'success': u'修改成功!'})
            record_operation_log(operation=u'修改用户:' + str(user_id),
                                 module=u'用户',
                                 result=u'成功',
                                 user_id=current_user.id)
        except Exception as e:
            db.session.rollback()
            flash({'error': u'操作数据库失败,请检查用户名!'})
            record_operation_log(operation=u'修改用户:' + str(user_id),
                                 module=u'用户',
                                 result=u'失败',
                                 user_id=current_user.id)
    # 删除用户
    if request.method == 'DELETE':
        id_list = request.get_json().get('data')
        print(id_list)
        if len(id_list) == 0:
            print('-------------------')
            return jsonify({'warning': u'未选择!'})
        try:
            for id_ in id_list:
                db.session.delete(User.query.filter_by(id=id_).first())
                db.session.commit()
                record_operation_log(operation=u'删除用户:' + id_,
                                     module=u'用户',
                                     result=u'成功',
                                     user_id=current_user.id)
            return jsonify({'success': u'删除成功!'})
        except Exception as e:
            db.session.rollback()
            record_operation_log(operation=u'删除用户:' + str(id_list),
                                 module=u'用户',
                                 result=u'失败',
                                 user_id=current_user.id)
            return jsonify({'error': u'删除失败!'})

    return render_template('users/users.html', form1=form1, form2=form2)