diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 2915c4997..319f19539 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -238,21 +238,29 @@ class OwnPerms(object): """ return None # implement for each object + def can_view(self, request): + if hasattr(self, "LONG_SLUG"): + perm = "view_" + self.LONG_SLUG + else: + perm = "view_" + self.SLUG + return self.can_do(request, perm) + def can_do(self, request, action_name): """ Check permission availability for the current object. :param request: request object - :param action_name: action name eg: "change_find" - "own" declinaison is + :param action_name: action name eg: "change_find" - "own" variation is checked :return: boolean """ + if not getattr(request.user, 'ishtaruser', None): + return False splited = action_name.split('_') action_own_name = splited[0] + '_own_' + '_'.join(splited[1:]) - return request.user.ishtaruser.has_right( - action_name, request.session) or \ - (request.user.ishtaruser.has_right( - action_own_name, request.session) - and self.is_own(request.user.ishtaruser)) + user = request.user + return user.ishtaruser.has_right(action_name, request.session) or \ + (user.ishtaruser.has_right(action_own_name, request.session) + and self.is_own(user.ishtaruser)) def is_own(self, user, alt_query_own=None): """ |