def test_has_perm_change_with_obj_without_any(self): permission_logic = StaffPermissionLogic(any_permission=False) add_permission_logic(self.article.__class__, permission_logic) self.assertTrue( permission_logic.has_perm(self.user1, self.perm2, self.article)) self.assertFalse( permission_logic.has_perm(self.user2, self.perm2, self.article))
def test_has_perm_delete_with_obj(self): permission_logic = StaffPermissionLogic() add_permission_logic(self.article.__class__, permission_logic) self.assertTrue( permission_logic.has_perm(self.user1, self.perm3, self.article)) self.assertFalse( permission_logic.has_perm(self.user2, self.perm3, self.article))
def test_constructor(self): permission_logic = StaffPermissionLogic() add_permission_logic(self.article.__class__, permission_logic) self.assertTrue(isinstance(permission_logic, StaffPermissionLogic)) self.assertEqual(permission_logic.any_permission, True) self.assertEqual(permission_logic.add_permission, True) self.assertEqual(permission_logic.change_permission, True) self.assertEqual(permission_logic.delete_permission, True)
from permission.logics import AuthorPermissionLogic, StaffPermissionLogic PERMISSION_LOGICS = (('forums.Post', AuthorPermissionLogic( field_name='author', any_permission=False, change_permission=True, delete_permission=True, )), ('forums.Post', StaffPermissionLogic( any_permission=False, change_permission=True, delete_permission=True, )))
def test_constructor_with_specifing_delete_permission(self): permission_logic = StaffPermissionLogic(delete_permission=False) add_permission_logic(self.article.__class__, permission_logic) self.assertTrue(isinstance(permission_logic, StaffPermissionLogic)) self.assertEqual(permission_logic.delete_permission, False)
def test_has_perm_delete_with_obj_with_anonymous(self): permission_logic = StaffPermissionLogic() add_permission_logic(self.article.__class__, permission_logic) self.assertFalse( permission_logic.has_perm(self.anonymous, self.perm3, self.article))
from django.conf import settings from django.db.models import get_models, get_app ''' EXAMPLE PERMISSION_LOGICS = ( ('example.Person', AuthorPermissionLogic(field_name='owner',)), ('example.Person', CollaboratorsPermissionLogic()), ) ''' # Loop the registered apps from settings for app_name in settings.REST_EASY_APPS: # Get the models, then loop PERMISSION_LOGICS = () app_models = get_app(app_name) for app_model in get_models(app_models): PERMISSION_LOGICS = PERMISSION_LOGICS + (( app_name + '.' + app_model.__name__, AuthorPermissionLogic(field_name='owner'), ), ) PERMISSION_LOGICS = PERMISSION_LOGICS + (( app_name + '.' + app_model.__name__, CollaboratorsPermissionLogic(), ), ) #PERMISSION_LOGICS = PERMISSION_LOGICS + (( app_name+'.'+app_model.__name__,GroupInPermissionLogic(),),) PERMISSION_LOGICS = PERMISSION_LOGICS + (( app_name + '.' + app_model.__name__, StaffPermissionLogic(), ), )