def get(self, request, *args, **kwargs): addon_name = kwargs['addon_name'] # Session if not request.session.session_key: request.session.create() session_key = request.session.session_key try: session = self.get_session(addon_name) institution_id = session.data['oauth_states'][addon_name]['institution_id'] flask_ctx = self.get_request_context(session_key, institution_id, addon_name) flask_ctx.request.args = ImmutableMultiDict(dict(self.request.GET.iterlists())) provider = get_service(addon_name) rdm_addon_option = get_rdm_addon_option(institution_id, addon_name) # Retrieve permanent credentials from provider auth_callback_result = provider.auth_callback(user=rdm_addon_option) if auth_callback_result: if provider.account and not rdm_addon_option.external_accounts.filter(id=provider.account.id).exists(): rdm_addon_option.external_accounts.add(provider.account) rdm_addon_option.save() finally: try: flask_ctx.pop() except IndexError: pass return HttpResponse('OK')
def oauth_callback(service_name, auth): user = auth.user provider = get_service(service_name) # Retrieve permanent credentials from provider provider.auth_callback(user=user) if provider.account not in user.external_accounts: user.external_accounts.append(provider.account) user.save() return {}
def oauth_callback(service_name, auth): user = auth.user provider = get_service(service_name) # Retrieve permanent credentials from provider if not provider.auth_callback(user=user): return {} if provider.account and not user.external_accounts.filter(id=provider.account.id).exists(): user.external_accounts.add(provider.account) user.save() oauth_complete.send(provider, account=provider.account, user=user) return {}
def weko_oauth_callback(repoid, auth): user = auth.user provider = get_service(SHORT_NAME) # Retrieve permanent credentials from provider if not provider.repo_auth_callback(user=user, repoid=repoid): return {} if provider.account and not user.external_accounts.filter( id=provider.account.id).exists(): user.external_accounts.add(provider.account) user.save() oauth_complete.send(provider, account=provider.account, user=user) return {}
def get(self, request, *args, **kwargs): addon_name = kwargs['addon_name'] institution_id = int(kwargs['institution_id']) # Session if not request.session.session_key: request.session.create() session_key = request.session.session_key flask_ctx = self.get_request_context(session_key, institution_id, addon_name) flask_ctx.push() provider = get_service(addon_name) auth_url = provider.auth_url session = self.get_session(addon_name) session.data['oauth_states'][addon_name]['institution_id'] = institution_id session.save() return redirect(auth_url)
def oauth_connect(service_name, auth): service = get_service(service_name) return redirect(service.auth_url)
def weko_oauth_connect(repoid, auth): service = get_service(SHORT_NAME) return redirect(service.get_repo_auth_url(repoid))