Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
library-app-django
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ilham Maulana
library-app-django
Commits
de40bc68
Commit
de40bc68
authored
Jul 30, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: password required on update profile
parent
0ea18f2d
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
17 deletions
+37
-17
serializers.py
api/auth/serializers.py
+14
-12
views.py
api/auth/views.py
+16
-3
urls.py
api/urls.py
+7
-2
No files found.
api/auth/serializers.py
View file @
de40bc68
...
@@ -11,25 +11,22 @@ class UserSerializer(serializers.ModelSerializer):
...
@@ -11,25 +11,22 @@ class UserSerializer(serializers.ModelSerializer):
"id"
,
"id"
,
"username"
,
"username"
,
"email"
,
"email"
,
"password"
,
"first_name"
,
"first_name"
,
"last_name"
,
"last_name"
,
"is_staff"
,
"is_staff"
,
"password"
,
]
]
extra_kwargs
=
{
"password"
:
{
"write_only"
:
True
}}
def
create
(
self
,
validated_data
):
def
create
(
self
,
validated_data
):
password
=
validated_data
.
get
(
"password"
)
password
=
validated_data
.
get
(
"password"
)
print
(
validated_data
)
user
=
User
.
objects
.
create
(
**
validated_data
)
user
=
User
.
objects
.
create
(
**
validated_data
)
user
.
set_password
(
password
)
user
.
set_password
(
password
)
user
.
save
()
user
.
save
()
return
user
return
user
def
update
(
self
,
instance
,
validated_data
):
partial
=
validated_data
.
get
(
"is_partial"
,
False
)
return
serializers
.
ModelSerializer
.
update
(
self
,
instance
,
validated_data
)
class
LoginHistorySerializer
(
serializers
.
ModelSerializer
):
class
LoginHistorySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
class
Meta
:
...
@@ -157,9 +154,14 @@ class MemberSerializer(serializers.ModelSerializer):
...
@@ -157,9 +154,14 @@ class MemberSerializer(serializers.ModelSerializer):
return
instance
return
instance
class
TokenSerializer
(
TokenObtainPairSerializer
):
class
UpdateProfileSerializer
(
serializers
.
ModelSerializer
):
@
classmethod
class
Meta
:
def
get_token
(
cls
,
user
):
model
=
User
token
=
super
()
.
get_token
(
user
)
fields
=
[
token
[
"user_id"
]
=
user
.
id
"id"
,
return
token
"username"
,
"email"
,
"first_name"
,
"last_name"
,
"is_staff"
,
]
api/auth/views.py
View file @
de40bc68
...
@@ -19,6 +19,7 @@ from .serializers import (
...
@@ -19,6 +19,7 @@ from .serializers import (
MemberSerializer
,
MemberSerializer
,
User
,
User
,
UserSerializer
,
UserSerializer
,
UpdateProfileSerializer
,
)
)
from
.permissions
import
IsStaffUser
,
IsNotStaffUser
from
.permissions
import
IsStaffUser
,
IsNotStaffUser
...
@@ -307,8 +308,8 @@ class ResetPasswordConfirmView(views.APIView):
...
@@ -307,8 +308,8 @@ class ResetPasswordConfirmView(views.APIView):
)
)
class
U
serViewSet
(
viewsets
.
ModelViewSet
):
class
U
pdateProfileView
(
viewsets
.
ModelViewSet
):
serializer_class
=
U
ser
Serializer
serializer_class
=
U
pdateProfile
Serializer
queryset
=
User
.
objects
.
all
()
.
order_by
(
"id"
)
queryset
=
User
.
objects
.
all
()
.
order_by
(
"id"
)
def
update
(
self
,
request
,
pk
):
def
update
(
self
,
request
,
pk
):
...
@@ -316,4 +317,16 @@ class UserViewSet(viewsets.ModelViewSet):
...
@@ -316,4 +317,16 @@ class UserViewSet(viewsets.ModelViewSet):
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
)
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
serializer
.
save
()
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
user_id
=
serializer
.
data
.
get
(
"id"
)
user
=
User
.
objects
.
get
(
pk
=
user_id
)
account_id
=
None
if
user
.
is_staff
:
account_id
=
user
.
librarian
.
id
else
:
account_id
=
user
.
member
.
id
response
=
serializer
.
data
response
[
"account_id"
]
=
account_id
return
Response
(
response
,
status
=
status
.
HTTP_200_OK
)
api/urls.py
View file @
de40bc68
...
@@ -14,7 +14,7 @@ from .auth.views import (
...
@@ -14,7 +14,7 @@ from .auth.views import (
TokenResetPasswordView
,
TokenResetPasswordView
,
ResetPasswordConfirmView
,
ResetPasswordConfirmView
,
UserDetailView
,
UserDetailView
,
U
serViewSet
,
U
pdateProfileView
,
)
)
from
.book.views
import
BookViewSet
,
CategoryViewSet
from
.book.views
import
BookViewSet
,
CategoryViewSet
from
.loans.views
import
(
from
.loans.views
import
(
...
@@ -26,7 +26,7 @@ from .loans.views import (
...
@@ -26,7 +26,7 @@ from .loans.views import (
router
=
routers
.
DefaultRouter
()
router
=
routers
.
DefaultRouter
()
router
.
register
(
r"user"
,
U
serViewSet
,
basename
=
"user"
)
router
.
register
(
r"user"
,
U
pdateProfileView
,
basename
=
"user"
)
router
.
register
(
r"librarians"
,
LibrarianViewSet
,
basename
=
"librarians"
)
router
.
register
(
r"librarians"
,
LibrarianViewSet
,
basename
=
"librarians"
)
router
.
register
(
r"members"
,
MemberViewSet
,
basename
=
"members"
)
router
.
register
(
r"members"
,
MemberViewSet
,
basename
=
"members"
)
router
.
register
(
r"books"
,
BookViewSet
,
basename
=
"books"
)
router
.
register
(
r"books"
,
BookViewSet
,
basename
=
"books"
)
...
@@ -53,6 +53,11 @@ urlpatterns = [
...
@@ -53,6 +53,11 @@ urlpatterns = [
UserDetailView
.
as_view
(),
UserDetailView
.
as_view
(),
name
=
"user_detail"
,
name
=
"user_detail"
,
),
),
path
(
"user"
,
UserDetailView
.
as_view
(),
name
=
"user_detail"
,
),
path
(
path
(
"reset-password/request-token"
,
"reset-password/request-token"
,
TokenResetPasswordView
.
as_view
(),
TokenResetPasswordView
.
as_view
(),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment