Example #1
0
 def perform_create(self, serializer):
     """
     重写CreateModelMixin的perform_create方法,对用户提交的密码加密处理,然后在保存
     调用django自带的make_password方法来处理
     """
     password = make_password(serializer.validated_data['password'])
     serializer.validated_data["password"] = password
     return serializer.save()
Example #2
0
 def perform_update(self, serializer):
     """
     重载UpdateModelMixin的perform_update方法,使用户修改后的密码加密处理,然后保存数据库
     """
     # print(serializer.validated_data)
     # print(type(serializer.validated_data))
     if 'password' in serializer.validated_data:
         password = make_password(serializer.validated_data['password'])
         serializer.validated_data['password'] = password
     serializer.save()
    def test_user_signin_passes(self):
        user = baker.make('app.User', password=make_password('password'))
        data = {
            'email': user.email,
            'password': '******',
        }

        resp = self.client.post(reverse('user_login'), data)

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.data['message'], 'Successfully logged in')
def register(request):

    if request.method != 'POST':
        if request.session.has_key('username') and request.session['username'] is not None:

            return HttpResponseRedirect('home')
        else:
            return render(request, 'user/register.html')

    else:
        if request.session.has_key('username') and request.session['username'] is not None:

            return HttpResponseRedirect('home')
        else:
            context = {}
            name = request.POST['name']
            email = request.POST['email']
            phone = request.POST['phone']
            username = request.POST['username']
            password = request.POST['password']

            if username.isspace():
                context = {'status': 'Username should not contain space'}
            else:

                if models.Login_user.getUser(username):
                    context = {
                        'status': 'Username already taken'}
                else:
                    reg = models.Login_user(
                        name=name,
                        password=make_password(password),
                        email=email,
                        phone=phone,
                        username=username
                    )
                    try:
                        reg.save()
                        context = {
                            'status': 'New user was successfully registered'}
                    except:
                        context = {
                            'status': 'User not registered, data not valid'}

            return render(request, 'user/register.html', context=context)
Example #5
0
    def post(self, request):
        data = request.data

        data = data.copy()
        img = data.get('image')
        data['image'] = upload_image(img) if img else ''

        serializer = self.serializer_class(data=data)
        serializer.is_valid(raise_exception=True)
        serializer.validated_data['password'] = make_password(
            data.get('password'))
        serializer.validated_data['username'] = serializer.validated_data.get(
            'email')
        del serializer.validated_data['confirm_password']
        serializer.save()

        payload = {
            'message': "Successfully signed up",
            'data': serializer.data
        }
        return Response(payload, status=status.HTTP_201_CREATED)