Beispiel #1
0
 def test_non_existing_permission(self):
     self.assertFalse(
         check_single_permission(self.user, 'not.exist', self.group)
     )
     self.assertFalse(
         check_single_permission(self.user, 'not.exist')
     )
Beispiel #2
0
 def test_non_existing_permission(self):
     self.assertFalse(
         check_single_permission(self.user, 'not.exist', self.group)
     )
     self.assertFalse(
         check_single_permission(self.user, 'not.exist')
     )
Beispiel #3
0
 def test_single_permission_helper_on_object(self):
     self.assertFalse(
         check_single_permission(self.user, self.permission_key, self.group)
     )
     self.user.permissions.add(self.permission, obj=self.group)
     self.assertTrue(
         check_single_permission(self.user, self.permission_key, self.group)
     )
Beispiel #4
0
 def test_single_permission_helper_global(self):
     self.assertFalse(
         check_single_permission(self.user, self.permission_key, self.group)
     )
     self.user.permissions.add(self.permission)
     self.assertTrue(
         check_single_permission(self.user, self.permission_key, self.group)
     )
Beispiel #5
0
 def test_single_permission_helper_on_object(self):
     self.assertFalse(
         check_single_permission(self.user, self.permission_key, self.group)
     )
     self.user.permissions.add(self.permission, TEST_REASON, obj=self.group, responsible=self.responsible_user)
     self.assertTrue(
         check_single_permission(self.user, self.permission_key, self.group)
     )
     self.assertEqual(self.HistoryOwnerToPermission.objects.count(), 1)
Beispiel #6
0
 def test_single_permission_global(self):
     self.assertFalse(
         check_single_permission(self.user, self.permission_key))
     self.user.permissions.add(self.permission, TEST_REASON, obj=self.group)
     self.assertFalse(
         check_single_permission(self.user, self.permission_key))
     self.user.permissions.add(self.permission, TEST_REASON)
     self.assertTrue(check_single_permission(self.user,
                                             self.permission_key))
     self.assertEqual(self.HistoryOwnerToPermission.objects.count(), 2)
Beispiel #7
0
 def has_perm(self, user_obj, perm, obj=None):
     if not user_obj.is_active or user_obj.is_anonymous:
         return False
     disable_cache = getattr(settings, 'DISABLE_GENERIC_PERMISSION_CACHE', False)
     cache_field_name = get_cache_field_name(obj) + '_dict'
     if not hasattr(user_obj, cache_field_name) or disable_cache:
         setattr(user_obj, cache_field_name, {})
     perm_dict = getattr(user_obj, cache_field_name)
     if perm not in perm_dict or disable_cache:
         check_result = check_single_permission(user_obj, perm, obj)
         perm_dict[perm] = check_result
     return perm_dict[perm]
 def has_perm(self, user_obj, perm, obj=None):
     if not user_obj.is_active or user_obj.is_anonymous:
         return False
     disable_cache = getattr(settings, 'DISABLE_GENERIC_PERMISSION_CACHE',
                             False)
     cache_field_name = get_cache_field_name(obj) + '_dict'
     if not hasattr(user_obj, cache_field_name) or disable_cache:
         setattr(user_obj, cache_field_name, {})
     perm_dict = getattr(user_obj, cache_field_name)
     if perm not in perm_dict or disable_cache:
         check_result = check_single_permission(user_obj, perm, obj)
         perm_dict[perm] = check_result
     return perm_dict[perm]
Beispiel #9
0
    def has_perm(self, user_obj, perm, obj=None):
        if not user_obj.is_active or user_obj.is_anonymous:
            return False
        disable_cache = getattr(settings, 'DISABLE_GENERIC_PERMISSION_CACHE',
                                False)
        cache_field_name = get_cache_field_name(obj) + '_dict'
        if not hasattr(user_obj, cache_field_name) or disable_cache:
            setattr(user_obj, cache_field_name, {})
        perm_dict = getattr(user_obj, cache_field_name)

        # Check cached all permissions set.
        # It is not empty if has_perm() is called after get_all_permissions()
        if not disable_cache and not obj:
            all_perms_cache_field_name = get_cache_field_name()
            all_perms_set = getattr(user_obj, all_perms_cache_field_name, None)
            if all_perms_set is not None:
                perm_dict[perm] = perm in all_perms_set

        if perm not in perm_dict or disable_cache:
            check_result = check_single_permission(user_obj, perm, obj)
            perm_dict[perm] = check_result
        return perm_dict[perm]