Exemplo n.º 1
0
Arquivo: admin.py Projeto: ihyf/blog
async def _user(request: Request, user_id: Optional[Any] = None):
    user = None
    form = UserForm(request)

    if user_id is not None:
        user = await User.get_or_404(user_id)

    if request.method in ('POST', 'PUT') and form.validate():
        name = form.name.data
        email = form.email.data
        password = form.password.data
        active = form.active.data
        avatar = form.avatar.data
        if (user := await User.filter(name=name).first()):
            user.email = email
            if password:
                user.password = generate_password(password)
            user.avatar = avatar
            user.active = active
            await user.save()
        else:
            password = generate_password(password)
            user = await User.create(name=name, email=email, avatar=avatar,
                                     password=password, active=active)
        ok = True
Exemplo n.º 2
0
async def _user(request, user_id=None):
    user = None
    form = UserForm(request)

    if user_id is not None:
        user = await User.get_or_404(user_id)

    if request.method in ('POST', 'PUT') and form.validate():
        name = form.name.data
        email = form.email.data
        password = form.password.data
        active = form.active.data
        avatar = form.avatar.data
        user = await User.filter(name=name).first()
        if user:
            user.email = email
            if password:
                user.password = generate_password(password)
            user.avatar = avatar
            user.active = active
            await user.save()
        else:
            password = generate_password(password)
            user = await User.create(name=name,
                                     email=email,
                                     avatar=avatar,
                                     password=password,
                                     active=active)
        ok = True
    else:
        ok = False

    return response.json({'user': await user.to_sync_dict(), 'ok': ok})
Exemplo n.º 3
0
async def _user(request, user_id=None):
    """
    用户创建 or 更新
    :param request:
    :param user_id:
    :return:
    """
    form = UserForm(request)  # 创建用户form 对象
    msg = ''  # 用户前端页面显示创建成功后显示的内容

    if user_id is not None:
        user = await User.get_or_404(user_id)  # base models

    if request.method == 'POST' and form.validate():
        name = form.name.data
        email = form.email.data
        password = form.password.data
        active = form.active.data
        user = await User.filter(name=name).first()  # search user
        if user:
            user.email = email
            if password:
                user.password = generate_password(password)
            user.active = active
            await user.save()
            msg = 'User was successfully updated.'
        else:
            user = await User.create(name=name,
                                     email=email,
                                     password=password,
                                     active=active)
            msg = 'User was successfully created.'
        users = await User.all()
        total = await User.filter().count()
        context = {'users': users, 'total': total, 'msg': msg}
        # 获取全部的用户并跳转到用户列表
        return await render_template('admin/list_users.html', request, context)
    elif user_id is not None:  # GET 的编辑页面
        form = UserForm(request, obj=user)
        form.password.data = ''
        form.active.data = user.active
        form.submit.label.text = 'Update'
    return await render_template('admin/user.html', request, {
        'form': form,
        'msg': msg,
        'user_id': user_id
    })
Exemplo n.º 4
0
async def _user(request, user_id=None):
    form = UserForm(request)
    msg = ''

    if user_id is not None:
        user = await User.get_or_404(user_id)

    if request.method == 'POST' and form.validate():
        name = form.name.data
        email = form.email.data
        password = form.password.data
        active = form.active.data
        user = await User.filter(name=name).first()
        if user:
            user.email = email
            if password:
                user.password = generate_password(password)
            user.active = active
            await user.save()
            msg = 'User was successfully updated.'
        else:
            user = await User.create(name=name, email=email,
                                     password=password, active=active)
            msg = 'User was successfully created.'
        users = await User.all()
        total = await User.filter().count()
        context = {'users': users, 'total': total, 'msg': msg}
        return await render_template('admin/list_users.html', request, context)
    elif user_id is not None:
        form = UserForm(request, obj=user)
        form.password.data = ''
        form.active.data = user.active
        form.submit.label.text = 'Update'
    return await render_template('admin/user.html', request,
                                 {'form': form, 'msg': msg,
                                  'user_id': user_id})