Fix establishment timetable serailizer for permission

This commit is contained in:
Виктор Гладких 2019-11-25 10:45:20 +03:00
parent 13eb8abac6
commit 6bb0eac409
3 changed files with 25 additions and 15 deletions

View File

@ -13,6 +13,7 @@ class BackPartnerSerializer(serializers.ModelSerializer):
'url', 'url',
'image', 'image',
'establishment', 'establishment',
'establishment_id',
'type', 'type',
'starting_date', 'starting_date',
'expiry_date', 'expiry_date',

View File

@ -20,6 +20,7 @@ class ScheduleRUDSerializer(serializers.ModelSerializer):
dinner_end = serializers.TimeField(required=False) dinner_end = serializers.TimeField(required=False)
opening_at = serializers.TimeField(required=False) opening_at = serializers.TimeField(required=False)
closed_at = serializers.TimeField(required=False) closed_at = serializers.TimeField(required=False)
establishment_id = serializers.ReadOnlyField(source='establishment.id')
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -34,8 +35,10 @@ class ScheduleRUDSerializer(serializers.ModelSerializer):
'dinner_end', 'dinner_end',
'opening_at', 'opening_at',
'closed_at', 'closed_at',
'establishment_id'
] ]
def validate(self, attrs): def validate(self, attrs):
"""Override validate method""" """Override validate method"""
establishment_pk = self.context.get('request')\ establishment_pk = self.context.get('request')\

View File

@ -280,10 +280,10 @@ class IsEstablishmentManager(IsStandardUser):
super().has_permission(request, view) super().has_permission(request, view)
] ]
# and request.user.email_confirmed, if hasattr(request.data, 'user'):
if hasattr(request.data, 'user') and hasattr(request.data, 'establishment_id'): if hasattr(request.data, 'establishment_id'):
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \ role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
.first() # 'Comments moderator' .first()
rules = [ rules = [
UserRole.objects.filter(user=request.user, role=role, UserRole.objects.filter(user=request.user, role=role,
@ -294,9 +294,15 @@ class IsEstablishmentManager(IsStandardUser):
return any(rules) return any(rules)
def has_object_permission(self, request, view, obj): def has_object_permission(self, request, view, obj):
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
.first() # 'Comments moderator'
rules = [
super().has_object_permission(request, view, obj)
]
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
.first()
if hasattr(obj, 'establishment_id'):
rules = [ rules = [
UserRole.objects.filter(user=request.user, role=role, UserRole.objects.filter(user=request.user, role=role,
establishment_id=obj.establishment_id establishment_id=obj.establishment_id