--- a/HelloForge/helloforge/main.py
+++ b/HelloForge/helloforge/main.py
@@ -8,7 +8,7 @@
from pyforge.app import Application, ConfigOption
from pyforge.lib.dispatch import _dispatch
-from pyforge.lib.security import require_project_access
+from pyforge.lib.security import require, has_artifact_access
from helloforge import model as M
from helloforge import version
@@ -37,7 +37,8 @@
pr = c.user.project_role()
if pr:
for perm in self.permissions:
- self.config.acl[perm] = [ pr ]
+ self.config.acl[perm] = [ pr._id ]
+ self.config.m.save()
p = M.Page.upsert('Root')
p.text = 'This is the root page.'
p.commit()
@@ -75,7 +76,7 @@
@expose('helloforge.templates.page_view')
@validate(dict(version=V.Int()))
def index(self, version=None):
- require_project_access(self.page, 'read')
+ require(has_artifact_access('read', self.page))
page = self.get_version(version)
if page is None:
if version: redirect('.?version=%d' % (version-1))
@@ -90,20 +91,20 @@
@expose('helloforge.templates.page_edit')
def edit(self):
if self.page.version == 1:
- require_project_access(self.page, 'create')
+ require(has_artifact_access('create', self.page))
else:
- require_project_access(self.page, 'edit')
+ require(has_artifact_access('edit', self.page))
return dict(page=self.page)
@expose('helloforge.templates.page_history')
def history(self):
- require_project_access(self.page, 'read')
+ require(has_artifact_access('read', self.page))
pages = self.page.history()
return dict(title=self.title, pages=pages)
@expose('helloforge.templates.page_diff')
def diff(self, v1, v2):
- require_project_access(self.page, 'read')
+ require(has_artifact_access('read', self.page))
p1 = self.get_version(int(v1))
p2 = self.get_version(int(v2))
p1.version -= 1
@@ -124,12 +125,12 @@
@expose(content_type='text/plain')
def raw(self):
- require_project_access(self.page, 'read')
+ require(has_artifact_access('read', self.page))
return pformat(self.page)
@expose()
def revert(self, version):
- require_project_access(self.page, 'edit')
+ require(has_artifact_access('edit', self.page))
orig = self.get_version(version)
self.page.text = orig.text
self.page.commit()
@@ -137,7 +138,7 @@
@expose()
def update(self, text):
- require_project_access(self.page, 'edit')
+ require(has_artifact_access('edit', self.page))
self.page.text = text
self.page.commit()
redirect('.')
@@ -151,7 +152,7 @@
@expose()
def reply(self, text):
- require_project_access(self.page, 'comment')
+ require(has_artifact_access('comment', self.page))
if self.comment_id:
c = self.comment.reply()
c.text = text