コード例 #1
0
 def _update_page(self, title, **post_data):
     with h.notifications_disabled(c.project):
         if not self.page:
             require_access(c.app, 'create')
             if WM.Page.is_limit_exceeded(c.app.config, user=c.user):
                 log.warn('Page create/edit rate limit exceeded. %s',
                          c.app.config.url())
                 raise forge_exc.HTTPTooManyRequests()
             self.page = WM.Page.upsert(title)
             self.page.viewable_by = ['all']
         else:
             require_access(self.page, 'edit')
         self.page.text = post_data['text']
         if 'labels' in post_data:
             self.page.labels = post_data['labels'].split(',')
         self.page.commit()
         return {}
コード例 #2
0
 def _update_post(self, **post_data):
     require_access(self.post, 'write')
     if BM.BlogPost.is_limit_exceeded(c.app.config, user=c.user):
         log.warn('Create/edit rate limit exceeded. %s', c.app.config.url())
         raise forge_exc.HTTPTooManyRequests()
     if 'delete' in post_data:
         self.post.delete()
         return {}
     if 'title' in post_data:
         self.post.title = post_data['title']
     if 'text' in post_data:
         self.post.text = post_data['text']
     if 'state' in post_data:
         self.post.state = post_data['state']
     if 'labels' in post_data:
         self.post.labels = post_data['labels'].split(',')
     self.post.commit()
     return self.post.__json__(posts_limit=10)
コード例 #3
0
ファイル: main.py プロジェクト: 99Kies/allura
    def index(self, title='', text='', state='draft', labels='', limit=10, page=0, **kw):
        if request.method == 'POST':
            require_access(c.app, 'write')
            if BM.BlogPost.is_limit_exceeded(c.app.config, user=c.user):
                log.warn('Create/edit rate limit exceeded. %s', c.app.config.url())
                raise forge_exc.HTTPTooManyRequests()
            post = BM.BlogPost.new(
                title=title,
                state=state,
                text=text,
                labels=labels.split(','),
                **kw)
            return exc.HTTPCreated(headers=dict(Location=str(h.absurl('/rest' + post.url()).encode('utf-8'))))

        else:
            result = RootController().index(limit=limit, page=page)
            posts = result['posts']
            post_titles = []
            for post in posts:
                if has_access(post, 'read')():
                    post_titles.append(
                        {'title': post.title, 'url': h.absurl('/rest' + post.url())})
            return dict(posts=post_titles, count=result['count'], limit=result['limit'], page=result['page'])