Mercurial > public > src > rhodecode
comparison pylons_app/controllers/admin/repos.py @ 408:7fbf81447c6c
Fixes #18, removing user, who owns some repositories
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 30 Jul 2010 22:12:06 +0200 |
parents | 5cd6616b8673 |
children | ca54622e39a1 |
comparison
equal
deleted
inserted
replaced
406:3e55d9981c0e | 408:7fbf81447c6c |
---|---|
22 admin controller for pylons | 22 admin controller for pylons |
23 @author: marcink | 23 @author: marcink |
24 """ | 24 """ |
25 from formencode import htmlfill | 25 from formencode import htmlfill |
26 from operator import itemgetter | 26 from operator import itemgetter |
27 from paste.httpexceptions import HTTPInternalServerError | |
27 from pylons import request, response, session, tmpl_context as c, url | 28 from pylons import request, response, session, tmpl_context as c, url |
28 from pylons.controllers.util import abort, redirect | 29 from pylons.controllers.util import abort, redirect |
29 from pylons.i18n.translation import _ | 30 from pylons.i18n.translation import _ |
30 from pylons_app.lib import helpers as h | 31 from pylons_app.lib import helpers as h |
31 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator | 32 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator |
32 from pylons_app.lib.base import BaseController, render | 33 from pylons_app.lib.base import BaseController, render |
33 from pylons_app.lib.utils import invalidate_cache | 34 from pylons_app.lib.utils import invalidate_cache |
35 from pylons_app.model.db import User | |
34 from pylons_app.model.forms import RepoForm | 36 from pylons_app.model.forms import RepoForm |
35 from pylons_app.model.hg_model import HgModel | 37 from pylons_app.model.hg_model import HgModel |
36 from pylons_app.model.repo_model import RepoModel | 38 from pylons_app.model.repo_model import RepoModel |
37 import formencode | 39 import formencode |
38 import logging | 40 import logging |
39 import traceback | 41 import traceback |
40 from paste.httpexceptions import HTTPInternalServerError | |
41 | 42 |
42 log = logging.getLogger(__name__) | 43 log = logging.getLogger(__name__) |
43 | 44 |
44 class ReposController(BaseController): | 45 class ReposController(BaseController): |
45 """REST Controller styled on the Atom Publishing Protocol""" | 46 """REST Controller styled on the Atom Publishing Protocol""" |
194 ' in order to rescan repositories') % repo_name, | 195 ' in order to rescan repositories') % repo_name, |
195 category='error') | 196 category='error') |
196 | 197 |
197 return redirect(url('repos')) | 198 return redirect(url('repos')) |
198 defaults = c.repo_info.__dict__ | 199 defaults = c.repo_info.__dict__ |
199 defaults.update({'user':c.repo_info.user.username}) | 200 if c.repo_info.user: |
201 defaults.update({'user':c.repo_info.user.username}) | |
202 else: | |
203 replacement_user = self.sa.query(User)\ | |
204 .filter(User.admin == True).first().username | |
205 defaults.update({'user':replacement_user}) | |
206 | |
200 c.users_array = repo_model.get_users_js() | 207 c.users_array = repo_model.get_users_js() |
201 | 208 |
202 for p in c.repo_info.repo2perm: | 209 for p in c.repo_info.repo2perm: |
203 defaults.update({'perm_%s' % p.user.username: | 210 defaults.update({'perm_%s' % p.user.username: |
204 p.permission.permission_name}) | 211 p.permission.permission_name}) |