Пример #1
0
 def test_constructor(self):
     permission_logic = AuthorPermissionLogic()
     self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
     self.assertEqual(permission_logic.field_name, 'author')
     self.assertEqual(permission_logic.any_permission, True)
     self.assertEqual(permission_logic.change_permission, True)
     self.assertEqual(permission_logic.delete_permission, True)
Пример #2
0
 def test_has_perm_add_with_obj_author_non_any(self):
     permission_logic = AuthorPermissionLogic(any_permission=False)
     self.assertFalse(
             permission_logic.has_perm(self.user2, self.perm1, self.article))
Пример #3
0
from permission.logics import AuthorPermissionLogic
from permission.logics import CollaboratorsPermissionLogic

PERMISSION_LOGICS = (
    ('projetisamm.Etudiant', AuthorPermissionLogic()),
    ('projetisamm.Etudiant', CollaboratorsPermissionLogic()),
)
Пример #4
0
from permission.logics import AuthorPermissionLogic
from permission.logics import CollaboratorsPermissionLogic

PERMISSION_LOGICS = (
    ('buzzer.Article', AuthorPermissionLogic()),
    ('buzzer.Article', CollaboratorsPermissionLogic()),
)
 def test_has_perm_delete_without_obj_with_anonymous(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm3))
 def test_has_perm_delete_with_obj_non_any_no_delete(self):
     permission_logic = AuthorPermissionLogic(any_permission=False,
                                              delete_permission=False)
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
             permission_logic.has_perm(self.user2, self.perm3, self.article))
 def test_has_perm_delete_with_obj_author_diff_field_name(self):
     permission_logic = AuthorPermissionLogic(field_name='editor')
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
             permission_logic.has_perm(self.user2, self.perm3, self.article))
Пример #8
0
 def test_has_perm_change_with_obj(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
         permission_logic.has_perm(self.user1, self.perm2, self.article))
Пример #9
0
 def test_has_perm_delete_with_obj_author(self):
     permission_logic = AuthorPermissionLogic()
     self.assertTrue(
             permission_logic.has_perm(self.user2, self.perm3, self.article))
Пример #10
0
 def test_has_perm_delete_with_obj(self):
     permission_logic = AuthorPermissionLogic()
     self.assertFalse(
             permission_logic.has_perm(self.user1, self.perm3, self.article))
Пример #11
0
 def test_has_perm_change_without_obj(self):
     permission_logic = AuthorPermissionLogic()
     self.assertFalse(permission_logic.has_perm(self.user1, self.perm2))
Пример #12
0
 def test_constructor_with_specifing_change_permission(self):
     permission_logic = AuthorPermissionLogic(change_permission=False)
     self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
     self.assertEqual(permission_logic.change_permission, False)
Пример #13
0
 def test_has_perm_change_with_obj_author_non_any_no_delete(self):
     permission_logic = AuthorPermissionLogic(any_permission=False,
                                              delete_permission=False)
     self.assertTrue(
             permission_logic.has_perm(self.user2, self.perm2, self.article))
Пример #14
0
 def test_has_perm_delete_with_obj_non_any(self):
     permission_logic = AuthorPermissionLogic(any_permission=False)
     self.assertTrue(
             permission_logic.has_perm(self.user2, self.perm3, self.article))
Пример #15
0
 def test_has_perm_delete_without_obj(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
Пример #16
0
 def test_has_perm_add_with_obj_author_diff_field_name(self):
     permission_logic = AuthorPermissionLogic(field_name='editor')
     self.assertFalse(
             permission_logic.has_perm(self.user2, self.perm1, self.article))
Пример #17
0
 def test_has_perm_delete_without_obj_with_anonymous(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm3))
Пример #18
0
 def test_has_perm_add_with_obj_author(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(
         permission_logic.has_perm(self.user2, self.perm1, self.article))
 def test_has_perm_add_with_obj_author(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(
             permission_logic.has_perm(self.user2, self.perm1, self.article))
Пример #20
0
 def test_has_perm_delete_with_obj_author_diff_field_name(self):
     permission_logic = AuthorPermissionLogic(field_name='editor')
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
         permission_logic.has_perm(self.user2, self.perm3, self.article))
 def test_has_perm_add_with_obj_author_non_any_no_change(self):
     permission_logic = AuthorPermissionLogic(any_permission=False,
                                              change_permission=False)
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
             permission_logic.has_perm(self.user2, self.perm1, self.article))
Пример #22
0
 def test_has_perm_add_with_obj_author_non_any_no_change(self):
     permission_logic = AuthorPermissionLogic(any_permission=False,
                                              change_permission=False)
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
         permission_logic.has_perm(self.user2, self.perm1, self.article))
 def test_has_perm_delete_without_obj(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
Пример #24
0
 def test_has_perm_delete_with_obj_non_any_no_delete(self):
     permission_logic = AuthorPermissionLogic(any_permission=False,
                                              delete_permission=False)
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
         permission_logic.has_perm(self.user2, self.perm3, self.article))
 def test_has_perm_change_with_obj(self):
     permission_logic = AuthorPermissionLogic()
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertFalse(
             permission_logic.has_perm(self.user1, self.perm2, self.article))
Пример #26
0
 def test_constructor_with_specifing_field_name(self):
     permission_logic = AuthorPermissionLogic(field_name='specified')
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
     self.assertEqual(permission_logic.field_name, 'specified')
Пример #27
0
        self.name = self.name.lower()

    def __str__(self):
        return self.name


#### PERMISSIONS

# apply AuthorPermissionLogic and CollaboratorsPermissionLogic
from permission import add_permission_logic
from permission.logics import PermissionLogic, AuthorPermissionLogic
# from permission.logics import CollaboratorsPermissionLogic

# Authors have full permission (edit, delete etc.) to their own skills and training bits
gcl_authorpermissionlogic = AuthorPermissionLogic(field_name='author',
                                                  change_permission=True,
                                                  delete_permission=True)
add_permission_logic(Skill, gcl_authorpermissionlogic)
add_permission_logic(TrainingBit, gcl_authorpermissionlogic)
add_permission_logic(Project, gcl_authorpermissionlogic)
add_permission_logic(Comment, gcl_authorpermissionlogic)

# See: https://github.com/lambdalisue/django-permission/blob/bdd0ebefbb6638b38886a0d35d9d379cfb067bfd/src/permission/logics/author.py


class AdminPermissionLogic(PermissionLogic):
    def has_perm(self, user, permission_str, obj):
        if user.is_authenticated() and user.is_admin:
            return True
        else:
            return False
Пример #28
0
 def test_constructor_with_specifing_delete_permission(self):
     permission_logic = AuthorPermissionLogic(delete_permission=False)
     add_permission_logic(self.article.__class__, permission_logic)
     self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
     self.assertEqual(permission_logic.delete_permission, False)
Пример #29
0
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,
                           )))
Пример #30
0
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(),
        ), )