def install(request):
if request.method == 'POST':
app_name = request.resolver_match.app_name
if not app_name:
raise Exception('you must include the dach.urls with the app_name')
appconfig = DACH_CONFIG['appconfig']
scopes_list = appconfig[app_name]['scopes']
info = json.loads(force_text(request.body))
capabilities_url = lookup_dict(info, 'capabilitiesUrl')
token_url, api_url = _get_and_check_capabilities(capabilities_url)
tenant = Tenant()
tenant.oauth_id = info['oauthId']
tenant.oauth_secret = info['oauthSecret']
tenant.capabilities_url = capabilities_url
tenant.oauth_token_url = token_url
tenant.api_url = api_url
tenant.group_id = info['groupId']
tenant.room_id = info.get('roomId', None)
tenant.app_name = app_name
tenant.scopes = '|'.join(scopes_list)
token = get_access_token(tenant)
tenant.group_name = token.group_name
get_backend().set(tenant.oauth_id, 'tenant', tenant.json())
post_install.send(
apps.get_app_config(app_name),
tenant=tenant
)
logger.info('addon successfully installed')
return HttpResponse(status=204)
return HttpResponseNotAllowed(['post'])
评论列表
文章目录