Mercurial > kallithea
comparison pylons_app/model/repo_model.py @ 399:f5c1eec9f376
rename repo2perm into repo_to_perm
added UserToPerm models for user global permissions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 08 Aug 2010 01:27:14 +0200 |
parents | a26f48ad7a8a |
children | 3ed2d46a2ca7 |
comparison
equal
deleted
inserted
replaced
398:8c50b164fb58 | 399:f5c1eec9f376 |
---|---|
22 @author: marcink | 22 @author: marcink |
23 """ | 23 """ |
24 from datetime import datetime | 24 from datetime import datetime |
25 from pylons import app_globals as g | 25 from pylons import app_globals as g |
26 from pylons_app.lib.utils import check_repo | 26 from pylons_app.lib.utils import check_repo |
27 from pylons_app.model.db import Repository, Repo2Perm, User, Permission | 27 from pylons_app.model.db import Repository, RepoToPerm, User, Permission |
28 from pylons_app.model.meta import Session | 28 from pylons_app.model.meta import Session |
29 import logging | 29 import logging |
30 import os | 30 import os |
31 import shutil | 31 import shutil |
32 import traceback | 32 import traceback |
53 def update(self, repo_name, form_data): | 53 def update(self, repo_name, form_data): |
54 try: | 54 try: |
55 | 55 |
56 #update permissions | 56 #update permissions |
57 for username, perm in form_data['perms_updates']: | 57 for username, perm in form_data['perms_updates']: |
58 r2p = self.sa.query(Repo2Perm)\ | 58 r2p = self.sa.query(RepoToPerm)\ |
59 .filter(Repo2Perm.user == self.sa.query(User)\ | 59 .filter(RepoToPerm.user == self.sa.query(User)\ |
60 .filter(User.username == username).one())\ | 60 .filter(User.username == username).one())\ |
61 .filter(Repo2Perm.repository == self.get(repo_name))\ | 61 .filter(RepoToPerm.repository == self.get(repo_name))\ |
62 .one() | 62 .one() |
63 | 63 |
64 r2p.permission_id = self.sa.query(Permission).filter( | 64 r2p.permission_id = self.sa.query(Permission).filter( |
65 Permission.permission_name == | 65 Permission.permission_name == |
66 perm).one().permission_id | 66 perm).one().permission_id |
67 self.sa.add(r2p) | 67 self.sa.add(r2p) |
68 | 68 |
69 #set new permissions | 69 #set new permissions |
70 for username, perm in form_data['perms_new']: | 70 for username, perm in form_data['perms_new']: |
71 r2p = Repo2Perm() | 71 r2p = RepoToPerm() |
72 r2p.repository = self.get(repo_name) | 72 r2p.repository = self.get(repo_name) |
73 r2p.user = self.sa.query(User)\ | 73 r2p.user = self.sa.query(User)\ |
74 .filter(User.username == username).one() | 74 .filter(User.username == username).one() |
75 | 75 |
76 r2p.permission_id = self.sa.query(Permission).filter( | 76 r2p.permission_id = self.sa.query(Permission).filter( |
108 | 108 |
109 new_repo.user_id = cur_user.user_id | 109 new_repo.user_id = cur_user.user_id |
110 self.sa.add(new_repo) | 110 self.sa.add(new_repo) |
111 | 111 |
112 #create default permission | 112 #create default permission |
113 repo2perm = Repo2Perm() | 113 repo_to_perm = RepoToPerm() |
114 default_perm = 'repository.none' if form_data['private'] \ | 114 default_perm = 'repository.none' if form_data['private'] \ |
115 else 'repository.read' | 115 else 'repository.read' |
116 repo2perm.permission_id = self.sa.query(Permission)\ | 116 repo_to_perm.permission_id = self.sa.query(Permission)\ |
117 .filter(Permission.permission_name == default_perm)\ | 117 .filter(Permission.permission_name == default_perm)\ |
118 .one().permission_id | 118 .one().permission_id |
119 | 119 |
120 repo2perm.repository_id = new_repo.repo_id | 120 repo_to_perm.repository_id = new_repo.repo_id |
121 repo2perm.user_id = self.sa.query(User)\ | 121 repo_to_perm.user_id = self.sa.query(User)\ |
122 .filter(User.username == 'default').one().user_id | 122 .filter(User.username == 'default').one().user_id |
123 | 123 |
124 self.sa.add(repo2perm) | 124 self.sa.add(repo_to_perm) |
125 self.sa.commit() | 125 self.sa.commit() |
126 if not just_db: | 126 if not just_db: |
127 self.__create_repo(repo_name) | 127 self.__create_repo(repo_name) |
128 except: | 128 except: |
129 log.error(traceback.format_exc()) | 129 log.error(traceback.format_exc()) |
140 self.sa.rollback() | 140 self.sa.rollback() |
141 raise | 141 raise |
142 | 142 |
143 def delete_perm_user(self, form_data, repo_name): | 143 def delete_perm_user(self, form_data, repo_name): |
144 try: | 144 try: |
145 self.sa.query(Repo2Perm)\ | 145 self.sa.query(RepoToPerm)\ |
146 .filter(Repo2Perm.repository == self.get(repo_name))\ | 146 .filter(RepoToPerm.repository == self.get(repo_name))\ |
147 .filter(Repo2Perm.user_id == form_data['user_id']).delete() | 147 .filter(RepoToPerm.user_id == form_data['user_id']).delete() |
148 self.sa.commit() | 148 self.sa.commit() |
149 except: | 149 except: |
150 log.error(traceback.format_exc()) | 150 log.error(traceback.format_exc()) |
151 self.sa.rollback() | 151 self.sa.rollback() |
152 raise | 152 raise |