changeset 822:d5a71348ee4d beta

small code fixes to repo model
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 09 Dec 2010 19:07:57 +0100
parents 2b5f0e7678d4
children 81e8dfa3beb5
files rhodecode/model/repo.py
diffstat 1 files changed, 13 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/repo.py	Thu Dec 09 18:38:16 2010 +0100
+++ b/rhodecode/model/repo.py	Thu Dec 09 19:07:57 2010 +0100
@@ -75,38 +75,36 @@
 
     def update(self, repo_name, form_data):
         try:
+            cur_repo = self.get_by_repo_name(repo_name, cache=False)
+            user_model = UserModel(self.sa)
 
             #update permissions
             for username, perm in form_data['perms_updates']:
                 r2p = self.sa.query(RepoToPerm)\
-                        .filter(RepoToPerm.user == UserModel(self.sa)\
-                                .get_by_username(username, cache=False))\
-                        .filter(RepoToPerm.repository == \
-                                self.get_by_repo_name(repo_name))\
+                        .filter(RepoToPerm.user == user_model.get_by_username(username))\
+                        .filter(RepoToPerm.repository == cur_repo)\
                         .one()
 
-                r2p.permission_id = self.sa.query(Permission).filter(
-                                                Permission.permission_name ==
-                                                perm).one().permission_id
+                r2p.permission = self.sa.query(Permission)\
+                                    .filter(Permission.permission_name == perm)\
+                                    .scalar()
                 self.sa.add(r2p)
 
             #set new permissions
             for username, perm in form_data['perms_new']:
                 r2p = RepoToPerm()
-                r2p.repository = self.get_by_repo_name(repo_name)
-                r2p.user = UserModel(self.sa).get_by_username(username, cache=False)
+                r2p.repository = cur_repo
+                r2p.user = user_model.get_by_username(username, cache=False)
 
-                r2p.permission_id = self.sa.query(Permission).filter(
-                                        Permission.permission_name == perm)\
-                                        .one().permission_id
+                r2p.permission = self.sa.query(Permission)\
+                                    .filter(Permission.permission_name == perm)\
+                                    .scalar()
                 self.sa.add(r2p)
 
             #update current repo
-            cur_repo = self.get_by_repo_name(repo_name, cache=False)
-
             for k, v in form_data.items():
                 if k == 'user':
-                    cur_repo.user_id = v
+                    cur_repo.user = user_model.get(v)
                 else:
                     setattr(cur_repo, k, v)