Fix establishment timetable serailizer for permission
This commit is contained in:
parent
13eb8abac6
commit
6bb0eac409
|
|
@ -13,6 +13,7 @@ class BackPartnerSerializer(serializers.ModelSerializer):
|
|||
'url',
|
||||
'image',
|
||||
'establishment',
|
||||
'establishment_id',
|
||||
'type',
|
||||
'starting_date',
|
||||
'expiry_date',
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ class ScheduleRUDSerializer(serializers.ModelSerializer):
|
|||
dinner_end = serializers.TimeField(required=False)
|
||||
opening_at = serializers.TimeField(required=False)
|
||||
closed_at = serializers.TimeField(required=False)
|
||||
establishment_id = serializers.ReadOnlyField(source='establishment.id')
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
|
@ -34,8 +35,10 @@ class ScheduleRUDSerializer(serializers.ModelSerializer):
|
|||
'dinner_end',
|
||||
'opening_at',
|
||||
'closed_at',
|
||||
'establishment_id'
|
||||
]
|
||||
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Override validate method"""
|
||||
establishment_pk = self.context.get('request')\
|
||||
|
|
|
|||
|
|
@ -280,30 +280,36 @@ class IsEstablishmentManager(IsStandardUser):
|
|||
super().has_permission(request, view)
|
||||
]
|
||||
|
||||
# and request.user.email_confirmed,
|
||||
if hasattr(request.data, 'user') and hasattr(request.data, 'establishment_id'):
|
||||
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
||||
.first() # 'Comments moderator'
|
||||
if hasattr(request.data, 'user'):
|
||||
if hasattr(request.data, 'establishment_id'):
|
||||
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
||||
.first()
|
||||
|
||||
rules = [
|
||||
UserRole.objects.filter(user=request.user, role=role,
|
||||
establishment_id=request.data.establishment_id
|
||||
).exists(),
|
||||
super().has_permission(request, view)
|
||||
]
|
||||
rules = [
|
||||
UserRole.objects.filter(user=request.user, role=role,
|
||||
establishment_id=request.data.establishment_id
|
||||
).exists(),
|
||||
super().has_permission(request, view)
|
||||
]
|
||||
return any(rules)
|
||||
|
||||
def has_object_permission(self, request, view, obj):
|
||||
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
||||
.first() # 'Comments moderator'
|
||||
|
||||
rules = [
|
||||
UserRole.objects.filter(user=request.user, role=role,
|
||||
establishment_id=obj.establishment_id
|
||||
).exists(),
|
||||
super().has_object_permission(request, view, obj)
|
||||
]
|
||||
|
||||
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
||||
.first()
|
||||
|
||||
if hasattr(obj, 'establishment_id'):
|
||||
rules = [
|
||||
UserRole.objects.filter(user=request.user, role=role,
|
||||
establishment_id=obj.establishment_id
|
||||
).exists(),
|
||||
super().has_object_permission(request, view, obj)
|
||||
]
|
||||
|
||||
return any(rules)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user