Exemple #1
0
    def show_page(self, title):
        if title.startswith('w/'):
            raise Exception('No such page.')
        if not access.can_read_page(title, users.get_current_user(), users.is_current_user_admin()):
            raise Forbidden
        self.title = title.replace('_', ' ')
        self.raw = self.request.get("format") == "raw"
        self.revision = self.request.get("r")

        if self.raw:
            body = self.get_memcache()
            content_type = str(body.get("content-type", "text/plain"))
            self.reply(body["text"], content_type=content_type)
        else:
            self.reply(self.get_memcache(), 'text/html')
Exemple #2
0
    def show_page(self, title):
        if title.startswith('w/'):
            raise Exception('No such page.')
        if not access.can_read_page(title, users.get_current_user(), users.is_current_user_admin()):
            raise Forbidden
        self.title = title.replace('_', ' ')
        self.raw = self.request.get("format") == "raw"
        self.revision = self.request.get("r")

        if self.raw:
            body = self.get_memcache()
            content_type = str(body.get("content-type", "text/plain"))
            self.reply(body["text"], content_type=content_type)
        else:
            self.reply(self.get_memcache(), 'text/html')
Exemple #3
0
    def test_page_reading(self):
        user = users.User('*****@*****.**')

        # Unknown user, default access.
        settings.change({'open-reading': None, 'readers': None, 'editors': None})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # Unknown user, private wiki.
        settings.change({'open-reading': 'no'})
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # A privilaged reader, private wiki.
        settings.change({'open-reading': 'no', 'readers': user.email(), 'editors': None})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # A privilaged editor, private wiki.
        settings.change({'open-reading': 'no', 'readers': None, 'editors': user.email()})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        page = model.WikiContent(title='foo')

        # An unknown user, a private wiki and a public page.
        settings.change({'open-reading': 'no', 'readers': None, 'editors': None})
        page.body = 'public: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # An unknown user, an open wiki and a private page.
        settings.change({'open-reading': 'yes', 'readers': None, 'editors': None})
        page.body = 'private: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # An open wiki, a private page with explicit access to some regular user.
        settings.change({'open-reading': 'yes', 'readers': None, 'editors': None})
        page.body = 'private: yes\nreaders: %s\n---\n# foo' % user.email()
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)
Exemple #4
0
 def get(self):
     self.title = self.request.get('page')
     if not access.can_read_page(self.title, users.get_current_user(),
                                 users.is_current_user_admin()):
         raise Forbidden
     self.reply(self.get_memcache(), 'text/html')
Exemple #5
0
 def get(self):
     self.title = self.request.get('page')
     if not access.can_read_page(self.title, users.get_current_user(), users.is_current_user_admin()):
         raise Forbidden
     self.reply(self.get_memcache(), 'text/html')
Exemple #6
0
    def test_page_reading(self):
        user = users.User('*****@*****.**')

        # Unknown user, default access.
        settings.change({
            'open-reading': None,
            'readers': None,
            'editors': None
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # Unknown user, private wiki.
        settings.change({'open-reading': 'no'})
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # A privilaged reader, private wiki.
        settings.change({
            'open-reading': 'no',
            'readers': user.email(),
            'editors': None
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # A privilaged editor, private wiki.
        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': user.email()
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        page = model.WikiContent(title='foo')

        # An unknown user, a private wiki and a public page.
        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': None
        })
        page.body = 'public: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # An unknown user, an open wiki and a private page.
        settings.change({
            'open-reading': 'yes',
            'readers': None,
            'editors': None
        })
        page.body = 'private: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # An open wiki, a private page with explicit access to some regular user.
        settings.change({
            'open-reading': 'yes',
            'readers': None,
            'editors': None
        })
        page.body = 'private: yes\nreaders: %s\n---\n# foo' % user.email()
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)