fixed regression introduced
This commit is contained in:
@@ -41,25 +41,26 @@ class CustomUserPermissions(permissions.BasePermission):
|
||||
"""
|
||||
Custom permissions for managing custom user instances
|
||||
"""
|
||||
def has_permission(self, request, view):
|
||||
# allow anon users to create new CustomUser (inactive)
|
||||
if request.method == 'POST' and request.user.is_anonymous is True:
|
||||
return True
|
||||
|
||||
# only admins can change or delete
|
||||
if request.user.is_staff is True:
|
||||
return True
|
||||
|
||||
# for everything else
|
||||
return False
|
||||
|
||||
|
||||
class YourOwnUserPermissions(permissions.BasePermission):
|
||||
|
||||
def has_object_permission(self, request, view, obj):
|
||||
# check for object permissions
|
||||
# user can interact with own instance of CustomUser
|
||||
if obj.email == request.user.email:
|
||||
return True
|
||||
elif request.user.is_staff is True:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def has_permission(self, request, view):
|
||||
# allow anon users to create new CustomUser (inactive)
|
||||
if request.method == 'POST' and request.user.is_anonymous is True:
|
||||
return True
|
||||
elif request.method == 'PUT' and request.user.is_authenticated is True:
|
||||
return True
|
||||
# only admins can change or delete
|
||||
elif request.user.is_staff is True:
|
||||
return True
|
||||
|
||||
# for everything else
|
||||
return False
|
||||
|
||||
@@ -33,15 +33,12 @@ SECRET_KEY = 'td*#7t-(1e9^(g0cod*hs**dp(%zvg@=$cug_-dtzcj#i2mrz@'
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'suit',
|
||||
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.gis',
|
||||
|
||||
# 3rd party
|
||||
'rest_framework',
|
||||
|
||||
@@ -20,6 +20,7 @@ from django.conf import settings
|
||||
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView
|
||||
|
||||
from core import views as core_views
|
||||
from .routers import router
|
||||
|
||||
|
||||
@@ -27,5 +28,8 @@ urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('api/v1/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
path('api/v1/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||
path('api/v1/token/verify/', TokenVerifyView.as_view(), name='token_verify'),
|
||||
path('api/v1/user/change_password/<int:pk>/', core_views.ChangeUserPasswordView.as_view(), name="change-password"),
|
||||
path('api/v1/user/update/<int:pk>/', core_views.UpdateUserView.as_view(), name="update-user"),
|
||||
path('api/v1/', include(router.urls)),
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
Reference in New Issue
Block a user