|
a/Allura/allura/lib/plugin.py |
|
b/Allura/allura/lib/plugin.py |
|
... |
|
... |
327 |
role_auth = M.ProjectRole.authenticated(p)
|
327 |
role_auth = M.ProjectRole.authenticated(p)
|
328 |
security.simple_grant(p.acl, role_auth._id, 'register')
|
328 |
security.simple_grant(p.acl, role_auth._id, 'register')
|
329 |
state(p).soil()
|
329 |
state(p).soil()
|
330 |
return p
|
330 |
return p
|
331 |
|
331 |
|
332 |
def register_project(self, neighborhood, shortname, project_name, user, user_project, private_project):
|
332 |
def register_project(self, neighborhood, shortname, project_name, user, user_project, private_project, apps=None):
|
333 |
'''Register a new project in the neighborhood. The given user will
|
333 |
'''Register a new project in the neighborhood. The given user will
|
334 |
become the project's superuser.
|
334 |
become the project's superuser.
|
335 |
'''
|
335 |
'''
|
336 |
from allura import model as M
|
336 |
from allura import model as M
|
337 |
if not h.re_path_portion.match(shortname.replace('/', '')):
|
337 |
if not h.re_path_portion.match(shortname.replace('/', '')):
|
|
... |
|
... |
349 |
last_updated = datetime.utcnow(),
|
349 |
last_updated = datetime.utcnow(),
|
350 |
is_root=True)
|
350 |
is_root=True)
|
351 |
p.configure_project(
|
351 |
p.configure_project(
|
352 |
users=[user],
|
352 |
users=[user],
|
353 |
is_user_project=user_project,
|
353 |
is_user_project=user_project,
|
354 |
is_private_project=private_project)
|
354 |
is_private_project=private_project,
|
|
|
355 |
apps=apps)
|
355 |
except forge_exc.ProjectConflict:
|
356 |
except forge_exc.ProjectConflict:
|
356 |
raise
|
357 |
raise
|
357 |
except:
|
358 |
except:
|
358 |
ThreadLocalORMSession.close_all()
|
359 |
ThreadLocalORMSession.close_all()
|
359 |
log.exception('Error registering project %s' % p)
|
360 |
log.exception('Error registering project %s' % p)
|