Skip to content

Commit 4040015

Browse files
authored
Merge pull request #30 from PROCOLLAB-github/feature/auth
Feature/auth
2 parents daac508 + e11af2c commit 4040015

4 files changed

Lines changed: 39 additions & 18 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.1.2 on 2022-11-15 16:46
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("users", "0014_alter_customuser_birthday"),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name="customuser",
15+
name="speciality",
16+
field=models.CharField(blank=True, max_length=255),
17+
),
18+
]

users/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class CustomUser(AbstractUser):
4444
organization: CharField instance the user's place of study or work.
4545
datetime_updated: A DateTimeField indicating date of update.
4646
datetime_created: A DateTimeField indicating date of creation.
47+
speciality: CharField instance the user's specialty.
4748
"""
4849

4950
ADMIN = ADMIN
@@ -71,6 +72,7 @@ class CustomUser(AbstractUser):
7172
region = models.CharField(max_length=255, blank=True)
7273
city = models.CharField(max_length=255, blank=True)
7374
organization = models.CharField(max_length=255, blank=True)
75+
speciality = models.CharField(max_length=255, blank=True)
7476

7577
datetime_updated = models.DateTimeField(null=False, auto_now=True)
7678
datetime_created = models.DateTimeField(null=False, auto_now_add=True)

users/urls.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
from django.urls import path, re_path
22

33
from users.views import (
4+
CurrentUser,
45
EmailResetPassword,
56
ResetPassword,
67
SpecialistsList,
7-
UserAdditionalRolesView,
8+
UserAdditionalRoles,
89
UserDetail,
910
UserList,
10-
UserTypesView,
11-
VerifyEmail,
1211
UserTypes,
12+
VerifyEmail,
1313
)
1414

1515
app_name = "users"
@@ -19,11 +19,11 @@
1919
"specialists/", SpecialistsList.as_view()
2020
), # this url actually returns mentors, experts and investors
2121
path("users/", UserList.as_view()),
22-
path("users/roles/", UserAdditionalRolesView.as_view()),
23-
path("users/types/", UserTypesView.as_view()),
22+
path("users/roles/", UserAdditionalRoles.as_view()),
23+
path("users/types/", UserTypes.as_view()),
2424
path("users/<int:pk>/", UserDetail.as_view()),
2525
path("users/reset-password/", EmailResetPassword.as_view()),
26-
path("users/user-types", UserTypes.as_view()),
26+
path("users/current/", CurrentUser.as_view()),
2727
re_path(
2828
r"^account-confirm-email/",
2929
VerifyEmail.as_view(),

users/views.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
from core.permissions import IsOwnerOrReadOnly
2525
from core.utils import Email
26-
from users.helpers import VERBOSE_ROLE_TYPES, VERBOSE_USER_TYPES
26+
from users.helpers import VERBOSE_ROLE_TYPES
2727
from users.serializers import (
2828
EmailSerializer,
2929
PasswordSerializer,
@@ -73,17 +73,7 @@ def post(self, request, *args, **kwargs):
7373
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
7474

7575

76-
class UserTypesView(GenericAPIView):
77-
permission_classes = [AllowAny]
78-
79-
def get(self, request, format=None):
80-
"""
81-
Return a tuple of user types.
82-
"""
83-
return Response(VERBOSE_USER_TYPES, status=status.HTTP_200_OK)
84-
85-
86-
class UserAdditionalRolesView(GenericAPIView):
76+
class UserAdditionalRoles(GenericAPIView):
8777
permission_classes = [AllowAny]
8878

8979
def get(self, request, format=None):
@@ -111,6 +101,17 @@ class UserDetail(RetrieveUpdateDestroyAPIView):
111101
serializer_class = UserDetailSerializer
112102

113103

104+
class CurrentUser(APIView):
105+
queryset = User.objects.get_users_for_detail_view()
106+
permission_classes = [IsAuthenticated]
107+
serializer_class = UserDetailSerializer
108+
109+
def get(self, request):
110+
user = request.user
111+
serializer = UserDetailSerializer(user)
112+
return Response(serializer.data, status=status.HTTP_200_OK)
113+
114+
114115
class UserTypes(APIView):
115116
def get(self, request, format=None):
116117
"""

0 commit comments

Comments
 (0)