def add_team(request):
"""
Create new team.
Append it at org's teams list.
Only available to organization owners.
---
name:
description: The new team name
type: string
required: true
description:
description: The new team description
type: string
"""
log.info("Adding team")
auth_context = auth_context_from_request(request)
org_id = request.matchdict['org_id']
params = params_from_request(request)
name = params.get('name')
description = params.get('description', '')
visibility = params.get('visible', True)
if not name:
raise RequiredParameterMissingError()
# SEC check if owner
if not (auth_context.org and auth_context.is_owner()
and auth_context.org.id == org_id):
raise OrganizationAuthorizationFailure()
team = Team()
team.name = name
team.description = description
team.visible = visibility
auth_context.org.teams.append(team)
try:
auth_context.org.save()
except me.ValidationError as e:
raise BadRequestError({"msg": e.message, "errors": e.to_dict()})
except me.OperationError:
raise TeamOperationError()
log.info("Adding team with name '%s'.", name)
trigger_session_update(auth_context.owner, ['org'])
return team.as_dict()
# SEC
评论列表
文章目录