diff options
| -rw-r--r-- | ishtar_common/forms.py | 29 | ||||
| -rw-r--r-- | ishtar_common/models.py | 2 | 
2 files changed, 21 insertions, 10 deletions
| diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index f5ddee48e..bc74001dc 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -672,15 +672,26 @@ class IshtarForm(forms.Form, BSForm):                      self.fields[site_key].label = profile.get_site_label(                          self.SITE_KEYS[site_key]                      ) -        for field_name, permissions, options in self.OPTIONS_PERMISSIONS: -            if field_name not in self.fields or not getattr(self, "user", None): -                continue -            if not [ -                True for permission in permissions if self.user.has_perm(permission) -            ]: -                continue -            for option, value in options.items(): -                setattr(self.fields[field_name].widget, option, value) +        user = getattr(self, "user", None) +        ishtar_user = None +        if user: +            try: +                ishtar_user = models.IshtarUser.objects.get(pk=user.pk) +            except models.IshtarUser.DoesNotExist: +                pass +        if ishtar_user: +            for field_name, permissions, options in self.OPTIONS_PERMISSIONS: +                if field_name not in self.fields: +                    continue + +                if not any( +                    True +                    for permission in permissions +                    if ishtar_user.has_perm(permission) +                ): +                    continue +                for option, value in options.items(): +                    setattr(self.fields[field_name].widget, option, value)          self._post_init()      def _init_type(self, field): diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 88aa993c6..66ecb8b29 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2759,7 +2759,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):              key_list = cache.get(cache_key_list, [])              key_list.append(cache_key)              cache.set(cache_key_list, key_list, settings.CACHE_TIMEOUT) -        if type(right_name) in (list, tuple): +        if isinstance(right_name, (list, tuple)):              res = (                  bool(                      self.profiles.filter( | 
