Exemple #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)
Exemple #2
0
        def decorated_function(*args, **kwargs):
            user = get_current_user().email()
            acl = Acl(area, user)

            if acl.is_one("admin") or acls_count == 0:
                return original_function(*args, **kwargs)
            else:
                return Response(response='{"error": "No Admin"}', status=400, mimetype="application/json")