From 3aaae33c4453c83fcf3cb61e2f050e8b5a523cf3 Mon Sep 17 00:00:00 2001 From: Andrew Smirnov Date: Thu, 1 Apr 2021 20:46:07 +0300 Subject: [PATCH] Fix user role display. Migrate to displayable roles, defined in settings.ZENDESK_ROLES --- main/models.py | 10 ++++++++++ main/serializers.py | 6 ++---- static/main/js/control.js | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/main/models.py b/main/models.py index 782b79f..ac6f91c 100644 --- a/main/models.py +++ b/main/models.py @@ -4,6 +4,8 @@ from django.db.models.signals import post_save from django.dispatch import receiver from django.utils import timezone +from access_controller.settings import ZENDESK_ROLES + class UserProfile(models.Model): """ @@ -23,6 +25,14 @@ class UserProfile(models.Model): image = models.URLField(null=True, blank=True, help_text='Аватарка') name = models.CharField(default='None', max_length=100, help_text='Имя пользователя на нашем сайте') + @property + def zendesk_role(self): + id = self.custom_role_id + for role, r_id in ZENDESK_ROLES.items(): + if r_id == id: + return role + return 'UNDEFINED' + @receiver(post_save, sender=User) def create_user_profile(sender, instance, created, **kwargs): diff --git a/main/serializers.py b/main/serializers.py index 5a4fd1a..cfc70a8 100644 --- a/main/serializers.py +++ b/main/serializers.py @@ -13,11 +13,9 @@ class UserSerializer(serializers.HyperlinkedModelSerializer): class ProfileSerializer(serializers.HyperlinkedModelSerializer): - """ - Класс serializer для модель профиля пользователя. - """ + """Сериализатор для модели профиля пользователя""" user = UserSerializer() class Meta: model = UserProfile - fields = ['user', 'id', 'role', 'name'] + fields = ['user', 'id', 'name', 'zendesk_role'] diff --git a/static/main/js/control.js b/static/main/js/control.js index e518c36..2da9b56 100644 --- a/static/main/js/control.js +++ b/static/main/js/control.js @@ -25,7 +25,7 @@ class TableRow extends React.Component { {this.props.user.name} {this.props.user.user.email} - {this.props.user.role} + {this.props.user.zendesk_role}