comparison rhodecode/model/repos_group.py @ 2432:d3ac7491a5c8 codereview

Share common getter functions in base model, and remove duplicated functions from other models
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 09 Jun 2012 20:23:48 +0200
parents 8ecfed1d8f8b
children 4419551b2915
comparison
equal deleted inserted replaced
2431:60dfc369df1d 2432:d3ac7491a5c8
37 log = logging.getLogger(__name__) 37 log = logging.getLogger(__name__)
38 38
39 39
40 class ReposGroupModel(BaseModel): 40 class ReposGroupModel(BaseModel):
41 41
42 def __get_user(self, user):
43 return self._get_instance(User, user, callback=User.get_by_username)
44
45 def __get_users_group(self, users_group): 42 def __get_users_group(self, users_group):
46 return self._get_instance(UsersGroup, users_group, 43 return self._get_instance(UsersGroup, users_group,
47 callback=UsersGroup.get_by_group_name) 44 callback=UsersGroup.get_by_group_name)
48 45
49 def __get_repos_group(self, repos_group): 46 def __get_repos_group(self, repos_group):
50 return self._get_instance(RepoGroup, repos_group, 47 return self._get_instance(RepoGroup, repos_group,
51 callback=RepoGroup.get_by_group_name) 48 callback=RepoGroup.get_by_group_name)
52
53 def __get_perm(self, permission):
54 return self._get_instance(Permission, permission,
55 callback=Permission.get_by_key)
56 49
57 @LazyProperty 50 @LazyProperty
58 def repos_path(self): 51 def repos_path(self):
59 """ 52 """
60 Get's the repositories root path from database 53 Get's the repositories root path from database
225 :param user: Instance of User, user_id or username 218 :param user: Instance of User, user_id or username
226 :param perm: Instance of Permission, or permission_name 219 :param perm: Instance of Permission, or permission_name
227 """ 220 """
228 221
229 repos_group = self.__get_repos_group(repos_group) 222 repos_group = self.__get_repos_group(repos_group)
230 user = self.__get_user(user) 223 user = self._get_user(user)
231 permission = self.__get_perm(perm) 224 permission = self._get_perm(perm)
232 225
233 # check if we have that permission already 226 # check if we have that permission already
234 obj = self.sa.query(UserRepoGroupToPerm)\ 227 obj = self.sa.query(UserRepoGroupToPerm)\
235 .filter(UserRepoGroupToPerm.user == user)\ 228 .filter(UserRepoGroupToPerm.user == user)\
236 .filter(UserRepoGroupToPerm.group == repos_group)\ 229 .filter(UserRepoGroupToPerm.group == repos_group)\
251 or repositories_group name 244 or repositories_group name
252 :param user: Instance of User, user_id or username 245 :param user: Instance of User, user_id or username
253 """ 246 """
254 247
255 repos_group = self.__get_repos_group(repos_group) 248 repos_group = self.__get_repos_group(repos_group)
256 user = self.__get_user(user) 249 user = self._get_user(user)
257 250
258 obj = self.sa.query(UserRepoGroupToPerm)\ 251 obj = self.sa.query(UserRepoGroupToPerm)\
259 .filter(UserRepoGroupToPerm.user == user)\ 252 .filter(UserRepoGroupToPerm.user == user)\
260 .filter(UserRepoGroupToPerm.group == repos_group)\ 253 .filter(UserRepoGroupToPerm.group == repos_group)\
261 .one() 254 .one()
272 or users group name 265 or users group name
273 :param perm: Instance of Permission, or permission_name 266 :param perm: Instance of Permission, or permission_name
274 """ 267 """
275 repos_group = self.__get_repos_group(repos_group) 268 repos_group = self.__get_repos_group(repos_group)
276 group_name = self.__get_users_group(group_name) 269 group_name = self.__get_users_group(group_name)
277 permission = self.__get_perm(perm) 270 permission = self._get_perm(perm)
278 271
279 # check if we have that permission already 272 # check if we have that permission already
280 obj = self.sa.query(UsersGroupRepoGroupToPerm)\ 273 obj = self.sa.query(UsersGroupRepoGroupToPerm)\
281 .filter(UsersGroupRepoGroupToPerm.group == repos_group)\ 274 .filter(UsersGroupRepoGroupToPerm.group == repos_group)\
282 .filter(UsersGroupRepoGroupToPerm.users_group == group_name)\ 275 .filter(UsersGroupRepoGroupToPerm.users_group == group_name)\