Add team permissions support
This commit is contained in:
parent
97fa69a361
commit
1cd4fa8d9b
6 changed files with 120 additions and 39 deletions
|
@ -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)
|
||||
|
|
Reference in a new issue