diff --git a/core/models.py b/core/models.py index 3c49a74..89d995f 100644 --- a/core/models.py +++ b/core/models.py @@ -24,6 +24,8 @@ class UserManager(BaseUserManager): def create_user(self, email, password=None, **extra_fields): extra_fields.setdefault('is_superuser', False) + extra_fields.setdefault('is_staff', False) + extra_fields.setdefault('is_active', False) return self._create_user(email, password, **extra_fields) def create_superuser(self, email, password, **extra_fields): diff --git a/core/tests.py b/core/tests.py index dfbabfe..8dee31c 100644 --- a/core/tests.py +++ b/core/tests.py @@ -589,7 +589,7 @@ class CreateCompanyUserTest(APITestCase): self.factory = factories.CustomUserFactory self.model = models.CustomUser # create user - self.email = f"user@mail.com" + self.email = "user@mail.com" self.password = ''.join(random.choices(string.ascii_uppercase, k = 10)) self.user = self.factory(email=self.email, is_active=False) self.user.set_password(self.password) @@ -630,6 +630,10 @@ class CreateCompanyUserTest(APITestCase): self.assertEquals(response.status_code, 201) self.assertEquals(len(mail.outbox), 1) + # user exists and it's inactice + self.assertTrue(self.model.objects.get(email='test@email.com')) + self.assertFalse(self.model.objects.get(email='test@email.com').is_active) + self.assertTrue(Company.objects.get(cif='qwerewq')) def test_creation_error(self): diff --git a/core/views.py b/core/views.py index 53985d2..d1c3511 100644 --- a/core/views.py +++ b/core/views.py @@ -44,9 +44,9 @@ logging.basicConfig( class CustomUserViewSet(viewsets.ModelViewSet): - model = models.CustomUser + model = User model_name = 'custom_user' - queryset = models.CustomUser.objects.all() + queryset = User.objects.all() permission_classes = [CustomUserPermissions,] read_serializer_class = core_serializers.CustomUserReadSerializer write_serializer_class = core_serializers.CustomUserWriteSerializer @@ -77,7 +77,7 @@ class CustomUserViewSet(viewsets.ModelViewSet): if serializer.is_valid(): # save model instance data password = serializer.validated_data.pop('password') - instance = self.model(**serializer.validated_data) + instance = self.model.objects.create_user(**serializer.validated_data) instance.set_password(password) instance.save() # send verification email @@ -141,7 +141,7 @@ def create_company_user(request): if user_serializer.is_valid(): # save model instance data password = user_serializer.validated_data.pop('password') - new_user = User(**user_serializer.validated_data) + new_user = User.objects.create_user(**user_serializer.validated_data) new_user.set_password(password) new_user.save() # send verification email