comparison rhodecode/model/repo.py @ 735:dbec976d9975 beta

added action loggers to following repositories, refactoring of repo_model get functions
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 22 Nov 2010 15:49:04 +0100
parents b9bbc0d6e9f3
children 89b9037d68b7
comparison
equal deleted inserted replaced
734:49eb69d78988 735:dbec976d9975
40 def __init__(self): 40 def __init__(self):
41 self.sa = Session() 41 self.sa = Session()
42 42
43 def get(self, repo_id, cache=False): 43 def get(self, repo_id, cache=False):
44 repo = self.sa.query(Repository)\ 44 repo = self.sa.query(Repository)\
45 .filter(Repository.repo_name == repo_id) 45 .filter(Repository.repo_id == repo_id)
46 46
47 if cache: 47 if cache:
48 repo = repo.options(FromCache("sql_cache_short", 48 repo = repo.options(FromCache("sql_cache_short",
49 "get_repo_%s" % repo)) 49 "get_repo_%s" % repo_id))
50 return repo.scalar() 50 return repo.scalar()
51
52
53 def get_by_repo_name(self, repo_name, cache=False):
54 repo = self.sa.query(Repository)\
55 .filter(Repository.repo_name == repo_name)
56
57 if cache:
58 repo = repo.options(FromCache("sql_cache_short",
59 "get_repo_%s" % repo_name))
60 return repo.scalar()
51 61
52 def get_users_js(self): 62 def get_users_js(self):
53 63
54 users = self.sa.query(User).filter(User.active == True).all() 64 users = self.sa.query(User).filter(User.active == True).all()
55 u_tmpl = '''{id:%s, fname:"%s", lname:"%s", nname:"%s"},''' 65 u_tmpl = '''{id:%s, fname:"%s", lname:"%s", nname:"%s"},'''
63 try: 73 try:
64 74
65 #update permissions 75 #update permissions
66 for username, perm in form_data['perms_updates']: 76 for username, perm in form_data['perms_updates']:
67 r2p = self.sa.query(RepoToPerm)\ 77 r2p = self.sa.query(RepoToPerm)\
68 .filter(RepoToPerm.user == UserModel().get_by_username(username, cache=False))\ 78 .filter(RepoToPerm.user == UserModel()\
69 .filter(RepoToPerm.repository == self.get(repo_name))\ 79 .get_by_username(username, cache=False))\
80 .filter(RepoToPerm.repository == \
81 self.get_by_repo_name(repo_name))\
70 .one() 82 .one()
71 83
72 r2p.permission_id = self.sa.query(Permission).filter( 84 r2p.permission_id = self.sa.query(Permission).filter(
73 Permission.permission_name == 85 Permission.permission_name ==
74 perm).one().permission_id 86 perm).one().permission_id
75 self.sa.add(r2p) 87 self.sa.add(r2p)
76 88
77 #set new permissions 89 #set new permissions
78 for username, perm in form_data['perms_new']: 90 for username, perm in form_data['perms_new']:
79 r2p = RepoToPerm() 91 r2p = RepoToPerm()
80 r2p.repository = self.get(repo_name) 92 r2p.repository = self.get_by_repo_name(repo_name)
81 r2p.user = UserModel().get_by_username(username, cache=False) 93 r2p.user = UserModel().get_by_username(username, cache=False)
82 94
83 r2p.permission_id = self.sa.query(Permission).filter( 95 r2p.permission_id = self.sa.query(Permission).filter(
84 Permission.permission_name == perm)\ 96 Permission.permission_name == perm)\
85 .one().permission_id 97 .one().permission_id
86 self.sa.add(r2p) 98 self.sa.add(r2p)
87 99
88 #update current repo 100 #update current repo
89 cur_repo = self.get(repo_name, cache=False) 101 cur_repo = self.get_by_repo_name(repo_name, cache=False)
90 102
91 for k, v in form_data.items(): 103 for k, v in form_data.items():
92 if k == 'user': 104 if k == 'user':
93 cur_repo.user_id = v 105 cur_repo.user_id = v
94 else: 106 else:
170 raise 182 raise
171 183
172 def delete_perm_user(self, form_data, repo_name): 184 def delete_perm_user(self, form_data, repo_name):
173 try: 185 try:
174 self.sa.query(RepoToPerm)\ 186 self.sa.query(RepoToPerm)\
175 .filter(RepoToPerm.repository == self.get(repo_name))\ 187 .filter(RepoToPerm.repository \
188 == self.get_by_repo_name(repo_name))\
176 .filter(RepoToPerm.user_id == form_data['user_id']).delete() 189 .filter(RepoToPerm.user_id == form_data['user_id']).delete()
177 self.sa.commit() 190 self.sa.commit()
178 except: 191 except:
179 log.error(traceback.format_exc()) 192 log.error(traceback.format_exc())
180 self.sa.rollback() 193 self.sa.rollback()
181 raise 194 raise
182 195
183 def delete_stats(self, repo_name): 196 def delete_stats(self, repo_name):
184 try: 197 try:
185 self.sa.query(Statistics)\ 198 self.sa.query(Statistics)\
186 .filter(Statistics.repository == self.get(repo_name)).delete() 199 .filter(Statistics.repository == \
200 self.get_by_repo_name(repo_name)).delete()
187 self.sa.commit() 201 self.sa.commit()
188 except: 202 except:
189 log.error(traceback.format_exc()) 203 log.error(traceback.format_exc())
190 self.sa.rollback() 204 self.sa.rollback()
191 raise 205 raise