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