changeset 376: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 3e55d9981c0e
children bd8b25ad058d
files pylons_app/controllers/admin/repos.py pylons_app/model/hg_model.py
diffstat 2 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/controllers/admin/repos.py	Wed Jul 28 23:38:06 2010 +0200
+++ b/pylons_app/controllers/admin/repos.py	Fri Jul 30 22:12:06 2010 +0200
@@ -24,6 +24,7 @@
 """
 from formencode import htmlfill
 from operator import itemgetter
+from paste.httpexceptions import HTTPInternalServerError
 from pylons import request, response, session, tmpl_context as c, url
 from pylons.controllers.util import abort, redirect
 from pylons.i18n.translation import _
@@ -31,13 +32,13 @@
 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator
 from pylons_app.lib.base import BaseController, render
 from pylons_app.lib.utils import invalidate_cache
+from pylons_app.model.db import User
 from pylons_app.model.forms import RepoForm
 from pylons_app.model.hg_model import HgModel
 from pylons_app.model.repo_model import RepoModel
 import formencode
 import logging
 import traceback
-from paste.httpexceptions import HTTPInternalServerError
 
 log = logging.getLogger(__name__)
 
@@ -196,7 +197,13 @@
         
             return redirect(url('repos'))        
         defaults = c.repo_info.__dict__
-        defaults.update({'user':c.repo_info.user.username})
+        if c.repo_info.user:
+            defaults.update({'user':c.repo_info.user.username})
+        else:
+            replacement_user = self.sa.query(User)\
+            .filter(User.admin == True).first().username
+            defaults.update({'user':replacement_user})
+            
         c.users_array = repo_model.get_users_js()
         
         for p in c.repo_info.repo2perm:
--- a/pylons_app/model/hg_model.py	Wed Jul 28 23:38:06 2010 +0200
+++ b/pylons_app/model/hg_model.py	Fri Jul 30 22:12:06 2010 +0200
@@ -28,7 +28,7 @@
 from pylons.i18n.translation import _
 from pylons_app.lib.auth import HasRepoPermissionAny
 from pylons_app.model import meta
-from pylons_app.model.db import Repository
+from pylons_app.model.db import Repository, User
 from sqlalchemy.orm import joinedload
 from vcs.exceptions import RepositoryError, VCSError
 import logging
@@ -134,7 +134,11 @@
                         log.info('Adding db instance to cached list')
                         repos_list[name].dbrepo = dbrepo
                         repos_list[name].description = dbrepo.description
-                        repos_list[name].contact = dbrepo.user.full_contact
+                        if dbrepo.user:
+                            repos_list[name].contact = dbrepo.user.full_contact
+                        else:
+                            repos_list[name].contact = sa.query(User)\
+                            .filter(User.admin == True).first().full_contact
             except OSError:
                 continue
         meta.Session.remove()