Mercurial > kallithea
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, |