From 4cfe613739056485dcaae598d8b1bce6377a627d Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Mon, 27 Jan 2020 21:47:04 +0300 Subject: [PATCH] roles for email changing --- apps/account/serializers/common.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/account/serializers/common.py b/apps/account/serializers/common.py index 2a67e5c1..30923909 100644 --- a/apps/account/serializers/common.py +++ b/apps/account/serializers/common.py @@ -139,10 +139,12 @@ class UserSerializer(serializers.ModelSerializer): new_email = validated_data.get('email') old_email = instance.email instance = super().update(instance, validated_data) - user = self.context['request'].user - if not user.is_superuser or not user.is_staff: + request = self.context['request'] + user = request.user + if not user.is_superuser or not user.is_staff or \ + not user.roles.filter(country__code=request.country_code, role=models.Role.COUNTRY_ADMIN).exists(): """ - superuser changes email immediately! + superuser or country admin changes email immediately! """ if new_email and new_email != old_email: instance.email_confirmed = False