Mercurial > kallithea
diff 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 |
line wrap: on
line diff
--- a/rhodecode/model/repo.py Sun Jan 13 23:11:55 2013 +0100 +++ b/rhodecode/model/repo.py Mon Jan 14 00:38:24 2013 +0100 @@ -90,6 +90,22 @@ "get_repo_%s" % repo_name)) return repo.scalar() + def get_all_user_repos(self, user): + """ + Get's all repositories that user have at least read access + + :param user: + :type user: + """ + from rhodecode.lib.auth import AuthUser + user = self._get_user(user) + repos = AuthUser(user_id=user.user_id).permissions['repositories'] + access_check = lambda r: r[1] in ['repository.read', + 'repository.write', + 'repository.admin'] + repos = [x[0] for x in filter(access_check, repos.items())] + return Repository.query().filter(Repository.repo_name.in_(repos)) + def get_users_js(self): users = self.sa.query(User).filter(User.active == True).all() return json.dumps([