Mercurial > kallithea
comparison rhodecode/model/repo.py @ 692:cb0d9ce6ac5c beta
#50 on point cache invalidation changes.
Created cacheInvalidation table
cleaned up sa sessions from models, since it wasn't really needed.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 15 Nov 2010 02:26:19 +0100 |
parents | dff6d5cb8bba |
children | b9bbc0d6e9f3 |
comparison
equal
deleted
inserted
replaced
691:7486da5f0628 | 692:cb0d9ce6ac5c |
---|---|
34 import traceback | 34 import traceback |
35 log = logging.getLogger(__name__) | 35 log = logging.getLogger(__name__) |
36 | 36 |
37 class RepoModel(object): | 37 class RepoModel(object): |
38 | 38 |
39 def __init__(self, sa=None): | 39 def __init__(self): |
40 if not sa: | 40 self.sa = Session() |
41 self.sa = Session() | |
42 else: | |
43 self.sa = sa | |
44 | 41 |
45 def get(self, repo_id, cache=False): | 42 def get(self, repo_id, cache=False): |
46 repo = self.sa.query(Repository)\ | 43 repo = self.sa.query(Repository)\ |
47 .filter(Repository.repo_name == repo_id) | 44 .filter(Repository.repo_name == repo_id) |
48 | 45 |
65 try: | 62 try: |
66 | 63 |
67 #update permissions | 64 #update permissions |
68 for username, perm in form_data['perms_updates']: | 65 for username, perm in form_data['perms_updates']: |
69 r2p = self.sa.query(RepoToPerm)\ | 66 r2p = self.sa.query(RepoToPerm)\ |
70 .filter(RepoToPerm.user == UserModel(self.sa).get_by_username(username, cache=False))\ | 67 .filter(RepoToPerm.user == UserModel().get_by_username(username, cache=False))\ |
71 .filter(RepoToPerm.repository == self.get(repo_name))\ | 68 .filter(RepoToPerm.repository == self.get(repo_name))\ |
72 .one() | 69 .one() |
73 | 70 |
74 r2p.permission_id = self.sa.query(Permission).filter( | 71 r2p.permission_id = self.sa.query(Permission).filter( |
75 Permission.permission_name == | 72 Permission.permission_name == |
78 | 75 |
79 #set new permissions | 76 #set new permissions |
80 for username, perm in form_data['perms_new']: | 77 for username, perm in form_data['perms_new']: |
81 r2p = RepoToPerm() | 78 r2p = RepoToPerm() |
82 r2p.repository = self.get(repo_name) | 79 r2p.repository = self.get(repo_name) |
83 r2p.user = UserModel(self.sa).get_by_username(username, cache=False) | 80 r2p.user = UserModel().get_by_username(username, cache=False) |
84 | 81 |
85 r2p.permission_id = self.sa.query(Permission).filter( | 82 r2p.permission_id = self.sa.query(Permission).filter( |
86 Permission.permission_name == perm)\ | 83 Permission.permission_name == perm)\ |
87 .one().permission_id | 84 .one().permission_id |
88 self.sa.add(r2p) | 85 self.sa.add(r2p) |
132 self.sa.add(new_repo) | 129 self.sa.add(new_repo) |
133 | 130 |
134 #create default permission | 131 #create default permission |
135 repo_to_perm = RepoToPerm() | 132 repo_to_perm = RepoToPerm() |
136 default = 'repository.read' | 133 default = 'repository.read' |
137 for p in UserModel(self.sa).get_by_username('default', cache=False).user_perms: | 134 for p in UserModel().get_by_username('default', cache=False).user_perms: |
138 if p.permission.permission_name.startswith('repository.'): | 135 if p.permission.permission_name.startswith('repository.'): |
139 default = p.permission.permission_name | 136 default = p.permission.permission_name |
140 break | 137 break |
141 | 138 |
142 default_perm = 'repository.none' if form_data['private'] else default | 139 default_perm = 'repository.none' if form_data['private'] else default |
144 repo_to_perm.permission_id = self.sa.query(Permission)\ | 141 repo_to_perm.permission_id = self.sa.query(Permission)\ |
145 .filter(Permission.permission_name == default_perm)\ | 142 .filter(Permission.permission_name == default_perm)\ |
146 .one().permission_id | 143 .one().permission_id |
147 | 144 |
148 repo_to_perm.repository_id = new_repo.repo_id | 145 repo_to_perm.repository_id = new_repo.repo_id |
149 repo_to_perm.user_id = UserModel(self.sa).get_by_username('default', cache=False).user_id | 146 repo_to_perm.user_id = UserModel().get_by_username('default', cache=False).user_id |
150 | 147 |
151 self.sa.add(repo_to_perm) | 148 self.sa.add(repo_to_perm) |
152 self.sa.commit() | 149 self.sa.commit() |
153 if not just_db: | 150 if not just_db: |
154 self.__create_repo(repo_name, form_data['repo_type']) | 151 self.__create_repo(repo_name, form_data['repo_type']) |