--- a/Allura/allura/model/project.py
+++ b/Allura/allura/model/project.py
@@ -57,8 +57,8 @@
return self.query.find(dict(parent_id=self._id)).all()
class Project(MappedClass):
- permissions=[
- 'read', 'update', 'admin', 'create']
+ _perms_base = [ 'read', 'update', 'admin', 'create']
+ _perms_init = _perms_base + [ 'register' ]
class __mongometa__:
session = main_orm_session
name='project'
@@ -81,7 +81,7 @@
database=FieldProperty(S.Deprecated)
database_uri=FieldProperty(str)
is_root=FieldProperty(bool)
- acl = FieldProperty(ACL(permissions=permissions))
+ acl = FieldProperty(ACL(permissions=_perms_init))
neighborhood_invitations=FieldProperty([S.ObjectId])
neighborhood = RelationProperty(Neighborhood)
app_configs = RelationProperty('AppConfig')
@@ -93,6 +93,14 @@
ordinal = FieldProperty(int, if_missing=0)
database_configured = FieldProperty(bool, if_missing=True)
_extra_tool_status = FieldProperty([str])
+
+ @property
+ def permissions(self):
+ if self.shortname == '--init--':
+ return self._perms_init
+ else:
+ return self._perms_base
+
def parent_security_context(self):
return self.parent_project