comparison rhodecode/model/repo.py @ 3163:28571535dd61 beta

API methods create_repo, fork_repo, delete_repo, get_repo, get_repos can be executed by non-admin users ref #539
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 14 Jan 2013 00:38:24 +0100
parents 0226b6d6b2b5
children cd50d1b5f35b 8f3cc21d83e6
comparison
equal deleted inserted replaced
3162:a0a8f38e8fb8 3163:28571535dd61
88 if cache: 88 if cache:
89 repo = repo.options(FromCache("sql_cache_short", 89 repo = repo.options(FromCache("sql_cache_short",
90 "get_repo_%s" % repo_name)) 90 "get_repo_%s" % repo_name))
91 return repo.scalar() 91 return repo.scalar()
92 92
93 def get_all_user_repos(self, user):
94 """
95 Get's all repositories that user have at least read access
96
97 :param user:
98 :type user:
99 """
100 from rhodecode.lib.auth import AuthUser
101 user = self._get_user(user)
102 repos = AuthUser(user_id=user.user_id).permissions['repositories']
103 access_check = lambda r: r[1] in ['repository.read',
104 'repository.write',
105 'repository.admin']
106 repos = [x[0] for x in filter(access_check, repos.items())]
107 return Repository.query().filter(Repository.repo_name.in_(repos))
108
93 def get_users_js(self): 109 def get_users_js(self):
94 users = self.sa.query(User).filter(User.active == True).all() 110 users = self.sa.query(User).filter(User.active == True).all()
95 return json.dumps([ 111 return json.dumps([
96 { 112 {
97 'id': u.user_id, 113 'id': u.user_id,