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)
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)
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))