Add team permissions support

This commit is contained in:
Joseph Schorr 2013-11-04 22:58:21 -05:00
parent 97fa69a361
commit 1cd4fa8d9b
6 changed files with 120 additions and 39 deletions

View file

@ -215,10 +215,10 @@ def get_matching_entities(prefix):
users = model.get_matching_users(prefix, organization)
def team_view(team):
return {
result = {
'name': team.name,
'kind': 'team',
'is_org_member': True,
'is_org_member': True
}
def user_view(user):
@ -242,11 +242,13 @@ user_files = UserRequestFiles(app.config['AWS_ACCESS_KEY'],
def team_view(orgname, t):
view_permission = ViewTeamPermission(orgname, t.name)
role = model.get_team_org_role(t).name
return {
'id': t.id,
'name': t.name,
'description': t.description,
'can_view': view_permission.can()
'can_view': view_permission.can(),
'role': role
}
@app.route('/api/organization/<orgname>', methods=['GET'])
@ -255,11 +257,12 @@ def get_organization(orgname):
def org_view(o, teams):
admin_org = AdministerOrganizationPermission(orgname)
is_admin = admin_org.can()
return {
'name': o.username,
'gravatar': compute_hash(o.email),
'teams': {t.name : team_view(orgname, t) for t in teams},
'is_admin': admin_org.can()
'is_admin': is_admin
}
if current_user.is_anonymous():
@ -313,13 +316,25 @@ def update_organization_team(orgname, teamname):
if edit_permission.can():
team = None
json = request.get_json()
is_existing = False
try:
team = model.get_organization_team(orgname, teamname)
is_existing = True
except:
abort(404)
# Create the new team.
description = json['description'] if 'description' in json else ''
role = json['role'] if 'role' in json else 'member'
team = model.create_team(teamname, orgname, role, description)
if is_existing:
if 'description' in json:
team.description = json['description']
team.save()
if 'role' in json:
team = model.set_team_org_permission(team, json['role'])
team.description = request.get_json()['description']
team.save()
return jsonify(team_view(orgname, team))
abort(403)