Switch to side-by-side view

--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -19,10 +19,11 @@
 from webob import exc
 
 from ming.utils import LazyProperty
-from ming.orm import session
+from ming.orm import state
 from ming.orm import ThreadLocalORMSession
 
 from allura.lib import helpers as h
+from allura.lib import security
 from allura.lib import exceptions as forge_exc
 
 log = logging.getLogger(__name__)
@@ -292,7 +293,7 @@
         '''
         return []
 
-    def register_neighborhood_project(self, neighborhood, users):
+    def register_neighborhood_project(self, neighborhood, users, allow_register=False):
         from allura import model as M
         shortname='--init--'
         p = M.Project.query.get(
@@ -321,6 +322,10 @@
             ThreadLocalORMSession.close_all()
             log.exception('Error registering project %s' % p)
             raise
+        if allow_register:
+            role_auth = M.ProjectRole.authenticated(p)
+            security.simple_grant(p.acl, role_auth._id, 'register')
+            state(p).soil()
         return p
 
     def register_project(self, neighborhood, shortname, user, user_project):