Beispiel #1
0
def new_admin():
    if not request.is_json:
        log.warn("参数错误...")
        return fail(HTTP_OK, u"need application/json!!")

    # 判断当前管理员是否为超级管理员,只有超级管理员才有修改管理员信息的权限
    if current_user.role.name != Role.SUPER_ADMIN:
        return fail(HTTP_OK, u"没有操作权限,只有超级管理员才能够编辑管理员信息...!")

    name = request.json.get('name', None)
    username = request.json.get('username', None)
    role_id = request.json.get("role_id", None)
    password = request.json.get("password", None)

    if name is None or username is None or role_id is None or password is None:
        return fail(HTTP_OK, u"添加管理员参数不正确...!")

    # 查找当前用户名是否已经被占用了
    if Admin.get_by_username(username) is not None:
        return fail(HTTP_OK, u"该用户名已被使用...!")

    # 创建并添加管理员
    admin, is_success = Admin.create(username, password, name, role_id)
    if admin is None:
        log.warn("管理员信息添加失败")
        return fail(HTTP_OK, u"管理员信息添加失败!")

    log.info("管理员信息添加成功: {}".format(admin.to_dict()))
    return success(admin.to_dict())
Beispiel #2
0
def gen_admin():
    for _ in xrange(30):
        username = '******'.format(_)
        password = '******'.format(_)
        name = 'lzzyoufeng{}'.format(_)

        Admin.create(username, password, name, 1)

    log.info("创建管理员数据完成...")
Beispiel #3
0
def login():
    if g.admin is not None and g.admin.is_authenticated:
        return success(u"账户已经登录!")

    if not request.is_json:
        log.warn("参数错误...")
        return fail(HTTP_OK, u"need application/json!!")

    username = request.json.get('username', None)
    password = request.json.get('password', None)
    if username is None or password is None:
        log.warn("用户账号密码没有传过来...username = {} password = {}".format(
            username, password))
        return fail(HTTP_OK, u"没有用户密码信息!")

    # 获取是否需要记住密码
    is_remember = request.json.get('remember', False)

    admin = Admin.query.authenticate(username, password)
    if admin is not None:
        # 判断账户是否被停用
        if not admin.is_active():
            return fail(HTTP_OK, u'账户已被暂停使用,请联系管理员')

        if is_remember:
            login_user(admin, remember=True)
        else:
            login_user(admin, remember=False)
        log.info("用户登录成功: {} {}".format(username, password))
        return success(u'登录成功')

    admin = Admin.get_by_username(username)
    if admin is None:
        return fail(HTTP_OK, u'用户不存在')
    return fail(HTTP_OK, u'用户名或密码错误,请重新登陆!')
Beispiel #4
0
def delete_admin():
    # 只支持修改 名称 与 启用状态
    if not request.is_json:
        log.warn("参数错误...")
        return fail(HTTP_OK, u"need application/json!!")

    # 判断当前管理员是否为超级管理员,只有超级管理员才有修改管理员信息的权限
    if current_user.role.name != Role.SUPER_ADMIN:
        return fail(HTTP_OK, u"没有操作权限,只有超级管理员才能够编辑管理员信息...!")

    a_id = request.json.get('id', None)
    if a_id is None:
        log.warn("没有传入管理员id信息")
        return fail(HTTP_OK, u"没有传入管理员id信息!")

    if g.admin.id == a_id:
        return fail(HTTP_OK, u"不能删除自身账户信息")

    admin = Admin.get(a_id)
    if admin is None:
        log.warn("当前ID信息不存在: id = {}".format(a_id))
        return fail(HTTP_OK, u"当前ID信息不存在!")

    # 判断存储是否正确
    if not admin.delete():
        log.warn("管理员信息删除失败!!!")
        return fail(HTTP_OK, u"管理员信息删除失败!")

    log.info("管理员信息删除成功: {}".format(admin.to_dict()))
    return success(admin.to_dict())
Beispiel #5
0
    def verify_authentication(username, password):
        admin = Admin.get_by_username(username)
        if admin is None:
            return False, u"用户名不存在!"

        if not admin.verify_password(password):
            return False, u'密码错误'

        return True, u'登录成功'
Beispiel #6
0
def syncdb():
    # with application.test_request_context():
    _import_models()

    db.create_all()
    db.session.commit()

    # 判断角色是否存在,不存在则创建
    if Role.get_by_name(Role.SUPER_ADMIN) is None:
        Role.create(Role.SUPER_ADMIN)
        print "超级管理员权限创建完成..."

    if Admin.get_by_username(SUPER_USER) is None:
        Admin.create(SUPER_USER, SUPER_PASS, SUPER_NAME,
                     Role.get_by_name(Role.SUPER_ADMIN).id)
        print "超级管理员角色创建完成..."

    # 判断是否生成数据
    if settings.MOCK:
        print '当前为测试状态,需要生成测试数据...'
        # 创建地址数据
        gen_address()

        # 创建管理员数据
        gen_admin()

        # 创建部署数据
        gen_deploy_test(application)

        # 生成角色数据
        gen_role()

        # 创建用户数据
        gen_user()

        # 创建用户使用记录
        gen_use_record()

        # 生成充值数据
        gen_recharge()

        print '数据库创建完成...'
Beispiel #7
0
def update():
    # 只支持修改 名称 与 启用状态
    if not request.is_json:
        log.warn("参数错误...")
        return fail(HTTP_OK, u"need application/json!!")

    # 判断当前管理员是否为超级管理员,只有超级管理员才有修改管理员信息的权限
    if current_user.role.name != Role.SUPER_ADMIN:
        return fail(HTTP_OK, u"没有操作权限,只有超级管理员才能够编辑管理员信息...!")

    a_id = request.json.get('id', None)
    if a_id is None:
        log.warn("没有传入管理员id信息")
        return fail(HTTP_OK, u"没有传入管理员id信息!")

    admin = Admin.get(a_id)
    if admin is None:
        log.warn("当前ID信息不存在: id = {}".format(a_id))
        return fail(HTTP_OK, u"当前ID信息不存在!")

    name = request.json.get('name', None)
    if isinstance(name, basestring) and name.strip() != '':
        admin.name = name
    elif name is not None:
        log.warn("name信息不正确,不是字符串或为空字符串! name = {}".format(name))
        return fail(HTTP_OK, u"name信息不正确,不是字符串或为空字符串!")

    state = request.json.get('state', None)
    if state is not None:

        if g.admin.id == a_id:
            return fail(HTTP_OK, u"不能修改自身状态信息")

        if state in Admin.STATUS_VALUES:
            admin.state = state
        else:
            log.warn("state 状态信息不正确! state = {}".format(state))
            return fail(HTTP_OK, u"state 状态信息不正确!")

    # 判断存储是否正确
    if not admin.save():
        log.warn("管理员信息存储失败!!!")
        return fail(HTTP_OK, u"管理员信息存储失败!")

    log.info("管理员信息修改成功: {}".format(admin.to_dict()))
    return success(admin.to_dict())
Beispiel #8
0
def get_admin_list():
    if not request.is_json:
        log.warn("参数错误...")
        return fail(HTTP_OK, u"need application/json!!")

    page = request.json.get('page')
    size = request.json.get('size')

    if not isinstance(page, int) or \
            not isinstance(size, int):
        log.warn("请求参数错误: page = {} size = {}".format(page, size))
        return fail(HTTP_OK, u"请求参数错误")

    # 请求参数必须为正数
    if page <= 0 or size <= 0:
        msg = "请求参数错误: page = {} size = {}".format(page, size)
        log.error(msg)
        return fail(HTTP_OK, msg)

    if size > 50:
        log.info("翻页最大数目只支持50个, 当前size超过50 size = {}!".format(size))
        size = 50

    return success(Admin.get_admin_list(page, size))