Example #1
0
 def testConversion(self):
     mp = ModelPermissions(self.perms)
     
     self.assertEquals(mp.as_int('Perm1'), 1)
     self.assertEquals(mp.as_int(['Perm1', 'Perm2', 'Perm4']), 1 | 2 | 8)
     self.assertEquals(mp.as_int(['Perm3', 'Perm2', 'Perm4']), 4 | 2 | 8)
     self.assertRaises(AttributeError, mp.as_int, ['Perm5', 'Perm2', 'Perm4'])
    def testConversion(self):
        mp = ModelPermissions(self.perms)

        self.assertEquals(mp.as_int('Perm1'), 1)
        self.assertEquals(mp.as_int(['Perm1', 'Perm2', 'Perm4']), 1 | 2 | 8)
        self.assertEquals(mp.as_int(['Perm3', 'Perm2', 'Perm4']), 4 | 2 | 8)
        self.assertRaises(AttributeError, mp.as_int,
                          ['Perm5', 'Perm2', 'Perm4'])
    def testDictCapabilities(self):
        mp = ModelPermissions(self.perms)

        self.assertEquals(mp['Perm1'], 1)
        self.assertEquals(mp['Perm2'], 2)
        self.assertEquals(mp['Perm3'], 4)
        self.assertEquals(mp['Perm4'], 8)

        self.assertTrue('Perm3' in mp)
        self.assertFalse('Perm5' in mp)

        self.assertEquals(mp.keys(), self.perms)
        self.assertEquals(mp.values(), self.values)
Example #4
0
 def testDictCapabilities(self):
     mp = ModelPermissions(self.perms)
     
     self.assertEquals(mp['Perm1'], 1)
     self.assertEquals(mp['Perm2'], 2)
     self.assertEquals(mp['Perm3'], 4)
     self.assertEquals(mp['Perm4'], 8)
     
     self.assertTrue('Perm3' in mp)
     self.assertFalse('Perm5' in mp)
     
     self.assertEquals(mp.keys(), self.perms)
     self.assertEquals(mp.values(), self.values)
    def testObjectCapabilities(self):
        mp = ModelPermissions(self.perms)

        self.assertEquals(mp.Perm1, 1)
        self.assertEquals(mp.Perm2, 2)
        self.assertEquals(mp.Perm3, 4)
        self.assertEquals(mp.Perm4, 8)
Example #6
0
def register(model, permissions):
    """
    Register a model and permission set. It adds several functions to the model:
    """
    if model in registry:
        #raise AlreadyRegistered('The model %s has already been registered.' % model.__name__)
        return
    registry.append(model)
    
    opts = model._meta
    try:
        opts.get_field('user_perms_set')
    except FieldDoesNotExist:
        UserPermissionRelation().contribute_to_class(model, 'user_perms_set')
    
    try:
        opts.get_field('group_perms_set')
    except FieldDoesNotExist:
        GroupPermissionRelation().contribute_to_class(model, 'group_perms_set')
    
    setattr(model, 'perms', ModelPermissions(permissions))