Beispiel #1
0
    def test_acl(self):
        from tipfy.ext.acl import Acl, AclRules

        Acl.roles_map = {
            'default': [('*', '*', False)],
            'reader': [('member', 'read', True)],
            'editor': [('member', 'create', True), ('member', 'read', True),
                       ('member', 'update', True)],
            'admin': [('member', 'create', True), ('member', 'read', True),
                      ('member', 'update', True), ('member', 'delete', True)],
            'superUser': [('*', '*', True)],
            }

        AclRules.insert_or_update(area='my_area', user='******', roles=['default'
                                  ])
        AclRules.insert_or_update(area='my_doguma', user='******',
                                  roles=['default', 'reader'])

        user_acl = AclRules.get_by_area_and_user('my_area', 'user')
        user_acl.rules.append(('UserAdmin', 'read', True))
        user_acl.put()

        acl = Acl(area='my_area', user='******')
        self.assertEqual(acl.has_access(topic='UserAdmin', name='read'), True)
        self.assertEqual(acl.has_access(topic='UserAdmin', name='write'), False)