def post(self, request): form, error = JsonParser( Argument('id', type=int, required=False), Argument('username', help='请输入登录名'), Argument('password', help='请输入密码'), Argument('nickname', help='请输入姓名'), Argument('role_ids', type=list, default=[]), Argument('wx_token', required=False), ).parse(request.body) if error is None: user = User.objects.filter(username=form.username, deleted_by_id__isnull=True).first() if user and (not form.id or form.id != user.id): return json_response(error=f'已存在登录名为【{form.username}】的用户') role_ids, password = form.pop('role_ids'), form.pop('password') if form.id: user = User.objects.get(pk=form.id) user.update_by_dict(form) else: user = User.objects.create( password_hash=User.make_password(password), created_by=request.user, **form) user.roles.set(role_ids) user.set_perms_cache() return json_response(error=error)
def patch(self, request): form, error = JsonParser( Argument('old_password', required=False), Argument('new_password', required=False), Argument('nickname', required=False, help='请输入昵称'), Argument('wx_token', required=False), ).parse(request.body) if error is None: print(form) if form.old_password and form.new_password: if request.user.type == 'ldap': return json_response(error='LDAP账户无法修改密码') if len(form.new_password) < 6: return json_response(error='请设置至少6位的新密码') if request.user.verify_password(form.old_password): request.user.password_hash = User.make_password( form.new_password) request.user.token_expired = 0 request.user.save() return json_response() else: return json_response(error='原密码错误,请重新输入') if form.nickname is not None: request.user.nickname = form.nickname if form.wx_token is not None: request.user.wx_token = form.wx_token request.user.save() return json_response(error=error)
def handle(self, *args, **options): User.objects.create( username=options['u'], nickname=options['n'], password_hash=User.make_password(options['p']), is_supper=options['s'], ) self.stdout.write(self.style.SUCCESS('创建成功'))
def handle(self, *args, **options): action = options['action'] if action == 'add': if not all((options['u'], options['p'], options['n'])): self.echo_error('缺少参数') self.print_help() elif User.objects.filter(username=options['u'], deleted_by_id__isnull=True).exists(): self.echo_error(f'已存在登录名为【{options["u"]}】的用户') else: User.objects.create( username=options['u'], nickname=options['n'], password_hash=User.make_password(options['p']), is_supper=options['s'], ) self.echo_success('创建用户成功') elif action == 'enable': if not options['u']: self.echo_error('缺少参数') self.print_help() user = User.objects.filter(username=options['u'], deleted_by_id__isnull=True).first() if not user: return self.echo_error(f'未找到登录名为【{options["u"]}】的账户') user.is_active = True user.save() cache.delete(user.username) self.echo_success('账户已启用') elif action == 'reset': if not all((options['u'], options['p'])): self.echo_error('缺少参数') self.print_help() user = User.objects.filter(username=options['u'], deleted_by_id__isnull=True).first() if not user: return self.echo_error(f'未找到登录名为【{options["u"]}】的账户') user.password_hash = User.make_password(options['p']) user.save() self.echo_success('账户密码已重置') else: self.echo_error('未识别的操作') self.print_help()
def post(self, request): form, error = JsonParser( Argument('username', help='请输入登录名'), Argument('password', help='请输入密码'), Argument('nickname', help='请输入姓名'), Argument('role_id', type=int, help='请选择角色'), ).parse(request.body) if error is None: form.password_hash = User.make_password(form.pop('password')) form.created_by = request.user User.objects.create(**form) return json_response(error=error)
def post(self, request): form, error = JsonParser( Argument('username', help='请输入登录名'), Argument('password', help='请输入密码'), Argument('nickname', help='请输入姓名'), Argument('role_id', type=int, help='请选择角色'), ).parse(request.body) if error is None: if User.objects.filter(username=form.username, deleted_by_id__isnull=True).exists(): return json_response(error=f'已存在登录名为【{form.username}】的用户') form.password_hash = User.make_password(form.pop('password')) form.created_by = request.user User.objects.create(**form) return json_response(error=error)
def patch(self, request): form, error = JsonParser( Argument('id', type=int, help='请指定操作对象'), Argument('username', required=False), Argument('password', required=False), Argument('nickname', required=False), Argument('role_id', required=False), Argument('is_active', type=bool, required=False), ).parse(request.body, True) if error is None: if form.get('password'): form.token_expired = 0 form.password_hash = User.make_password(form.pop('password')) User.objects.filter(pk=form.pop('id')).update(**form) return json_response(error=error)
def handle(self, *args, **options): if User.objects.filter(username=options['u'], deleted_by_id__isnull=True).exists(): return self.stderr.write( self.style.ERROR(f'已存在登录名为【{options["u"]}】的用户')) User.objects.create( username=options['u'], nickname=options['n'], password_hash=User.make_password(options['p']), is_supper=options['s'], ) self.stdout.write(self.style.SUCCESS('创建成功')) self.stdout.write( self.style.WARNING( '废弃警告,v3.0.0之后将会移除该命令,请使用 python manage.py user add 来代替!'))
def patch(self, request): form, error = JsonParser( Argument('id', type=int, help='参数错误'), Argument('password', required=False), Argument('is_active', type=bool, required=False), ).parse(request.body) if error is None: user = User.objects.get(pk=form.id) if form.password: user.token_expired = 0 user.password_hash = User.make_password(form.pop('password')) if form.is_active is not None: user.is_active = form.is_active cache.delete(user.username) user.save() return json_response(error=error)
def patch(self, request): form, error = JsonParser( Argument('id', type=int, help='请指定操作对象'), Argument('username', required=False), Argument('password', required=False), Argument('nickname', required=False), Argument('role_id', required=False), Argument('is_active', type=bool, required=False), ).parse(request.body, True) if error is None: if form.get('password'): form.token_expired = 0 form.password_hash = User.make_password(form.pop('password')) if User.objects.filter( username=form.username, deleted_by_id__isnull=True).exclude(id=form.id).exists(): return json_response(error=f'已存在登录名为【{form.username}】的用户') User.objects.filter(pk=form.pop('id')).update(**form) return json_response(error=error)
def patch(self, request): form, error = JsonParser( Argument('old_password', required=False), Argument('new_password', required=False), Argument('nickname', required=False), ).parse(request.body, True) if error is None: if form.get('old_password') and form.get('new_password'): if len(form.new_password) < 6: return json_response(error='请设置至少6位的新密码') if request.user.verify_password(form.old_password): request.user.password_hash = User.make_password( form.new_password) request.user.token_expired = 0 request.user.save() else: return json_response(error='原密码错误,请重新输入') if form.get('nickname'): request.user.nickname = form.nickname request.user.save() return json_response(error=error)