Merge branch 'orgs' of ssh://bitbucket.org/yackob03/quay into orgs

Conflicts:
	data/model.py
	endpoints/api.py
	test/data/test.db
This commit is contained in:
yackob03 2013-11-04 15:47:27 -05:00
commit ad4e227aff
9 changed files with 361 additions and 19 deletions

View file

@ -115,6 +115,14 @@ def add_user_to_team(user, team):
return TeamMember.create(user=user, team=team)
def remove_user_from_team(user, team):
try:
found = TeamMember.get(user=user, team=team)
found.delete_instance()
except TeamMember.DoesNotExist:
raise InvalidTeamException('User does not belong to team.')
def set_team_org_permission(team, org, team_role_name):
new_role = TeamRole.get(TeamRole.name == tean_role_name)
team.role = new_role
@ -122,6 +130,22 @@ def set_team_org_permission(team, org, team_role_name):
return team
def set_team_org_permission(team, org, role_name):
new_role = Role.get(Role.name == role_name)
# Fetch any existing permission for this user on the repo
try:
perm = TeamPermission.get(TeamPermission.team == team,
TeamPermission.organization == org)
perm.role = new_role
perm.save()
return perm
except TeamPermission.DoesNotExist:
new_perm = TeamPermission.create(team=team, organization=org,
role=new_role)
return new_perm
def create_federated_user(username, email, service_name, service_id):
new_user = create_user(username, None, email)
new_user.verified = True
@ -231,11 +255,26 @@ def get_user_organizations(username):
def get_organization(name):
try:
return User.get(username=name, organization=True)
return User.get(username = name, organization = True)
except User.DoesNotExist:
raise InvalidOrganizationException('Organization does not exist: %s' %
name)
def get_organization_team(orgname, teamname):
joined = Team.select().join(User)
query = joined.where(Team.name == teamname, User.organization == True, User.username == orgname).limit(1)
result = list(query)
if not result:
raise InvalidTeamException('Team does not exist: %s/%s', orgname, teamname)
return result[0]
def get_organization_team_members(teamid):
joined = User.select().join(TeamMember).join(Team)
query = joined.where(Team.id == teamid)
return query
def get_user_teams_within_org(username, organization):
joined = Team.select().join(TeamMember).join(User)