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
ca5637af
Commit
ca5637af
authored
Jul 21, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: simple jwt logout and permissions
parent
dbee2adc
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
3 deletions
+28
-3
permissions.py
api/auth/permissions.py
+1
-1
serializers.py
api/auth/serializers.py
+9
-0
views.py
api/auth/views.py
+11
-2
urls.py
api/urls.py
+7
-0
No files found.
api/auth/permissions.py
View file @
ca5637af
from
rest_framework.permissions
import
IsAuthenticated
from
rest_framework_simplejwt.tokens
import
Refresh
Token
from
rest_framework_simplejwt.tokens
import
Access
Token
class
IsStaffUser
(
IsAuthenticated
):
...
...
api/auth/serializers.py
View file @
ca5637af
...
...
@@ -101,6 +101,15 @@ class MemberSerializer(serializers.ModelSerializer):
def
create
(
self
,
validated_data
):
user_data
=
validated_data
.
pop
(
"user"
)
user_data
[
"is_staff"
]
=
False
username
=
user_data
.
get
(
"username"
)
email
=
user_data
.
get
(
"email"
)
is_username
=
User
.
objects
.
filter
(
username
=
username
)
is_email
=
User
.
objects
.
filter
(
email
=
email
)
if
is_username
.
exists
()
and
is_email
.
exists
():
raise
serializers
.
ValidationError
(
"Username or Email is already exists"
)
user
=
User
.
objects
.
create_user
(
**
user_data
)
user
.
set_password
(
user_data
.
get
(
"password"
))
user
.
save
()
...
...
api/auth/views.py
View file @
ca5637af
...
...
@@ -118,18 +118,27 @@ class LibrarianLoginView(LoginBaseView):
return
response
class
LibrarianRegisterView
(
views
.
APIView
):
class
RegisterBaseView
(
views
.
APIView
):
serializer_class
=
None
def
post
(
self
,
request
):
data
=
request
.
data
data
[
"message"
]
=
"Register as librarian success"
serializer
=
LibrarianSerializer
(
data
=
data
)
serializer
=
self
.
serializer_class
(
data
=
data
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
class
LibrarianRegisterView
(
RegisterBaseView
):
serializer_class
=
LibrarianSerializer
class
MemberRegisterView
(
RegisterBaseView
):
serializer_class
=
MemberSerializer
class
MemberLoginView
(
LoginBaseView
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
...
...
api/urls.py
View file @
ca5637af
...
...
@@ -8,6 +8,7 @@ from .auth.views import (
LibrarianLoginHistoryViewSet
,
MemberViewSet
,
MemberLoginView
,
MemberRegisterView
,
MemberChangePasswordView
,
LogoutView
,
TokenResetPasswordView
,
...
...
@@ -62,6 +63,12 @@ urlpatterns = [
),
path
(
"auth/logout"
,
LogoutView
.
as_view
(),
name
=
"librarian_logout"
),
path
(
"members/auth/login"
,
MemberLoginView
.
as_view
(),
name
=
"member_login"
),
path
(
"members/auth/register"
,
MemberRegisterView
.
as_view
(),
name
=
"librarian_register"
,
),
# change password
path
(
"members/<int:member_id>/change-password"
,
MemberChangePasswordView
.
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