Flesh out some permissions APIs.

This commit is contained in:
yackob03 2013-09-27 13:24:07 -04:00
parent f2ee7772f4
commit 6bcb5cfcaa
3 changed files with 68 additions and 23 deletions

View file

@ -66,10 +66,21 @@ def update_email(user, new_email):
user.save()
def get_all_repo_permissions(user):
select = User.select(User, Repository, RepositoryPermission)
joined = select.join(RepositoryPermission).join(Repository)
return joined.where(User.username == user.username)
def get_all_user_permissions(user):
select = User.select(User, Repository, RepositoryPermission, Role)
with_repo = select.join(RepositoryPermission).join(Repository)
with_role = with_repo.switch(RepositoryPermission).join(Role)
return with_role.where(User.username == user.username)
def get_all_repo_users(namespace_name, repository_name):
select = RepositoryPermission.select(User.username, Role.name,
RepositoryPermission)
with_user = select.join(User)
with_role = with_user.switch(RepositoryPermission).join(Role)
with_repo = with_role.switch(RepositoryPermission).join(Repository)
return with_repo.where(Repository.namespace == namespace_name,
Repository.name == repository_name)
def get_repository(namespace, name):