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
8efffb91
Commit
8efffb91
authored
Jul 17, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: member change password API
parent
c221c203
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
1 deletion
+27
-1
serializers.py
api/auth/serializers.py
+1
-0
views.py
api/auth/views.py
+19
-0
urls.py
api/urls.py
+7
-1
No files found.
api/auth/serializers.py
View file @
8efffb91
...
...
@@ -7,6 +7,7 @@ class UserSerializer(serializers.ModelSerializer):
class
Meta
:
model
=
User
fields
=
[
"id"
,
"username"
,
"email"
,
"password"
,
...
...
api/auth/views.py
View file @
8efffb91
...
...
@@ -206,3 +206,22 @@ class MemberLogoutView(LogoutBasedView):
)
return
response
class
MemberChangePasswordView
(
views
.
APIView
):
permission_classes
=
[
IsNotStaffUser
]
def
post
(
self
,
request
,
member_id
):
new_password
=
request
.
data
.
get
(
"new_password"
)
old_password
=
request
.
data
.
get
(
"old_password"
)
member
=
Member
.
objects
.
get
(
pk
=
member_id
)
user
=
member
.
user
if
user
.
check_password
(
old_password
):
user
.
set_password
(
new_password
)
user
.
save
()
return
Response
(
{
"message"
:
"Pasword succesfuly changed"
},
status
=
status
.
HTTP_200_OK
)
return
Response
({
"message"
:
"Change password failed, old password is invalid."
})
api/urls.py
View file @
8efffb91
...
...
@@ -9,6 +9,7 @@ from .auth.views import (
MemberViewSet
,
MemberLoginView
,
MemberLogoutView
,
MemberChangePasswordView
,
)
from
.book.views
import
BookViewSet
,
CategoryViewSet
from
.loans.views
import
(
...
...
@@ -46,7 +47,12 @@ urlpatterns = [
"librarians/auth/logout"
,
LibrarianLogoutView
.
as_view
(),
name
=
"librarian_logout"
),
path
(
"members/auth/login"
,
MemberLoginView
.
as_view
(),
name
=
"member_login"
),
path
(
"members/auth/logout"
,
MemberLogoutView
.
as_view
(),
name
=
"member_logout"
),
path
(
"members/auth/logout/"
,
MemberLogoutView
.
as_view
(),
name
=
"member_logout"
),
path
(
"members/<int:member_id>/change-password"
,
MemberChangePasswordView
.
as_view
(),
name
=
"member_change_password"
,
),
path
(
"members/<int:member_id>/"
,
include
(
router_member_loan
.
urls
),
...
...
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