Exemple #1
0
class ReadonlyWikiPolicyTestCase(unittest.TestCase):
    def setUp(self):
        self.env = \
            EnvironmentStub(enable=['trac.attachment.LegacyAttachmentPolicy',
                                    'trac.perm.*',
                                    'trac.wiki.web_ui.*'])
        self.policy = ReadonlyWikiPolicy(self.env)
        store = DefaultPermissionStore(self.env)
        store.grant_permission('user1', 'WIKI_ADMIN')
        store.grant_permission('user2', 'WIKI_DELETE')
        store.grant_permission('user2', 'WIKI_MODIFY')
        store.grant_permission('user2', 'WIKI_RENAME')
        self.page = WikiPage(self.env, 'SomePage')
        self.page.text = 'This is a readonly page.'
        self.page.readonly = 1
        self.page.save('user', 'readonly page added')

    def test_check_permission_returns_none(self):
        perm_cache = PermissionCache(self.env, 'user1')
        self.assertIn('WIKI_ADMIN', perm_cache)
        for perm in ('WIKI_DELETE', 'WIKI_MODIFY', 'WIKI_RENAME'):
            self.assertIn(perm, perm_cache)
            self.assertIsNone(
                self.policy.check_permission(perm, perm_cache.username,
                                             self.page.resource, perm_cache))

    def test_check_permission_returns_false(self):
        perm_cache = PermissionCache(self.env, 'user2')
        self.assertNotIn('WIKI_ADMIN', perm_cache)
        for perm in ('WIKI_DELETE', 'WIKI_MODIFY', 'WIKI_RENAME'):
            self.assertIn(perm, perm_cache)
            self.assertIs(
                False,
                self.policy.check_permission(perm, perm_cache.username,
                                             self.page.resource, perm_cache))
Exemple #2
0
 def setUp(self):
     self.env = \
         EnvironmentStub(enable=['trac.attachment.LegacyAttachmentPolicy',
                                 'trac.perm.*',
                                 'trac.wiki.web_ui.*'])
     self.policy = ReadonlyWikiPolicy(self.env)
     store = DefaultPermissionStore(self.env)
     store.grant_permission('user1', 'WIKI_ADMIN')
     store.grant_permission('user2', 'WIKI_DELETE')
     store.grant_permission('user2', 'WIKI_MODIFY')
     store.grant_permission('user2', 'WIKI_RENAME')
     self.page = WikiPage(self.env, 'SomePage')
     self.page.text = 'This is a readonly page.'
     self.page.readonly = 1
     self.page.save('user', 'readonly page added')
Exemple #3
0
class ReadonlyWikiPolicyTestCase(unittest.TestCase):

    def setUp(self):
        self.env = \
            EnvironmentStub(enable=['trac.attachment.LegacyAttachmentPolicy',
                                    'trac.perm.*',
                                    'trac.wiki.web_ui.ReadonlyWikiPolicy'])
        self.policy = ReadonlyWikiPolicy(self.env)
        store = DefaultPermissionStore(self.env)
        store.grant_permission('user1', 'WIKI_ADMIN')
        store.grant_permission('user2', 'WIKI_DELETE')
        store.grant_permission('user2', 'WIKI_MODIFY')
        store.grant_permission('user2', 'WIKI_RENAME')
        self.page = WikiPage(self.env, 'SomePage')
        self.page.text = 'This is a readonly page.'
        self.page.readonly = 1
        self.page.save('user', 'readonly page added', '127.0.0.1')

    def test_check_permission_returns_none(self):
        perm_cache = PermissionCache(self.env, 'user1')
        self.assertIn('WIKI_ADMIN', perm_cache)
        for perm in ('WIKI_DELETE', 'WIKI_MODIFY', 'WIKI_RENAME'):
            self.assertNotIn(perm, perm_cache)
            self.assertIsNone(
                self.policy.check_permission(perm, perm_cache.username,
                                             self.page.resource, perm_cache))

    def test_check_permission_returns_false(self):
        perm_cache = PermissionCache(self.env, 'user2')
        self.assertNotIn('WIKI_ADMIN', perm_cache)
        for perm in ('WIKI_DELETE', 'WIKI_MODIFY', 'WIKI_RENAME'):
            self.assertIn(perm, perm_cache)
            self.assertIs(False,
                          self.policy.check_permission(perm,
                                                       perm_cache.username,
                                                       self.page.resource,
                                                       perm_cache))
Exemple #4
0
 def setUp(self):
     self.env = \
         EnvironmentStub(enable=['trac.attachment.LegacyAttachmentPolicy',
                                 'trac.perm.*',
                                 'trac.wiki.web_ui.ReadonlyWikiPolicy'])
     self.policy = ReadonlyWikiPolicy(self.env)
     store = DefaultPermissionStore(self.env)
     store.grant_permission('user1', 'WIKI_ADMIN')
     store.grant_permission('user2', 'WIKI_DELETE')
     store.grant_permission('user2', 'WIKI_MODIFY')
     store.grant_permission('user2', 'WIKI_RENAME')
     self.page = WikiPage(self.env, 'SomePage')
     self.page.text = 'This is a readonly page.'
     self.page.readonly = 1
     self.page.save('user', 'readonly page added', '127.0.0.1')