Add RestaurantReviewer role
This commit is contained in:
parent
d6ffbf5332
commit
c012f969af
|
|
@ -28,6 +28,7 @@ class Role(ProjectBaseMixin):
|
|||
CONTENT_PAGE_MANAGER = 4
|
||||
ESTABLISHMENT_MANAGER = 5
|
||||
REVIEWER_MANGER = 6
|
||||
RESTAURANT_REVIEWER = 7
|
||||
|
||||
ROLE_CHOICES = (
|
||||
(STANDARD_USER, 'Standard user'),
|
||||
|
|
@ -35,7 +36,8 @@ class Role(ProjectBaseMixin):
|
|||
(COUNTRY_ADMIN, 'Country admin'),
|
||||
(CONTENT_PAGE_MANAGER, 'Content page manager'),
|
||||
(ESTABLISHMENT_MANAGER, 'Establishment manager'),
|
||||
(REVIEWER_MANGER, 'Reviewer manager')
|
||||
(REVIEWER_MANGER, 'Reviewer manager'),
|
||||
(RESTAURANT_REVIEWER, 'Restaurant reviewer')
|
||||
)
|
||||
role = models.PositiveIntegerField(verbose_name=_('Role'), choices=ROLE_CHOICES,
|
||||
null=False, blank=False)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
"""Project custom permissions"""
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from rest_framework import permissions
|
||||
from rest_framework_simplejwt.tokens import AccessToken
|
||||
|
||||
|
|
@ -169,3 +171,23 @@ class IsReviewerManager(IsStandardUser):
|
|||
|
||||
return any(rules)
|
||||
|
||||
|
||||
class IsRestaurantReviewer(IsStandardUser):
|
||||
|
||||
def has_object_permission(self, request, view, obj):
|
||||
|
||||
content_type = ContentType.objects.get(app_lable='establishment',
|
||||
model='establishment')
|
||||
|
||||
role = Role.objects.filter(role=Role.RESTAURANT_REVIEWER,
|
||||
country=obj.country_id).first()
|
||||
|
||||
rules = [
|
||||
obj.content_type_id == content_type.id and
|
||||
UserRole.objects.filter(user=request.user, role=role,
|
||||
establishment_id=obj.object_id
|
||||
).exists(),
|
||||
super().has_object_permission(request, view, obj)
|
||||
]
|
||||
|
||||
return any(rules)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user