def process_view(self, request, view_func, view_args, view_kwargs): if not request.user.is_authenticated: return secure_session = request.session.get('secure_session') timeout = settings.SECURE_TIMEOUT if secure_session else settings.INACTIVITY_TIMEOUT domain = getattr(request, "domain", None) now = datetime.datetime.utcnow() # figure out if we want to switch to secure_sessions change_to_secure_session = (not secure_session and ( (domain and Domain.is_secure_session_required(domain)) or self._user_requires_secure_session(request.couch_user))) if change_to_secure_session: timeout = settings.SECURE_TIMEOUT # force re-authentication if the user has been logged in longer than the secure timeout if self._session_expired(timeout, request.user.last_login, now): django_logout(request, template_name=settings.BASE_TEMPLATE) # this must be after logout so it is attached to the new session request.session['secure_session'] = True request.session.set_expiry(timeout * 60) return HttpResponseRedirect( reverse('login') + '?next=' + request.path) request.session['secure_session'] = True request.session.set_expiry(timeout * 60)
def logout(request): if settings.ENVIRONMENT == "dev": if request.user.is_authenticated(): django_logout(request) messages.add_message(request, messages.SUCCESS, "You have been logged out.") else: messages.add_message(request, messages.ERROR, "You can't log out if you aren't logged " "in first!") return HttpResponseRedirect(reverse("frontpage")) elif settings.ENVIRONMENT == "production": post_logout_url = "https://www.ease.ed.ac.uk/logout.cgi" if request.user.is_authenticated(): response = django_logout(request, next_page=post_logout_url) # Don't use delete_cookie() here, it doesn't work. response.set_cookie('cosign-eucsCosign-eusay.eusa.ed.ac.uk', expires="Thu, 01 Jan 1970 00:00:00 GMT", path="/") return response else: messages.add_message(request, messages.ERROR, "You can't log out if you aren't logged " "in first!") return HttpResponseRedirect(reverse("frontpage"))
def logout(request): """ Function to log-out the current user. In production, this means also resetting the CoSign cookie. """ if request.user.is_authenticated(): # in production logging requires logging out of EASE as well as the application session. if settings.ENV_TYPE == 'production': ease_url = "http://www-test.ease.ed.ac.uk/logout.cgi" response = django_logout(request, next_page=ease_url) # overwrite the cosign-cookie and set it to an expired date. response.set_cookie('cosign-eucsCosigntest-www-test.book.is.ed.ac.uk', expires="Thu, 01 Jan 2000 00:00:00 GMT", path="/") # in development things are more simple - just logout and redirect to frontpage. elif settings.ENV_TYPE == 'development': response = django_logout(request, next_page='/') else: messages.add_message(request, messages.ERROR, "Unknown environment") response = HttpResponseRedirect('/') return response # the user was not already logged in. This case is common to both ENVIRONMENTS. else: messages.add_message(request, messages.ERROR, "Cannot logout when user is not logged in") return HttpResponseRedirect('/')
def process_view(self, request, view_func, view_args, view_kwargs): if not request.user.is_authenticated(): return secure_session = request.session.get('secure_session') domain = getattr(request, "domain", None) now = datetime.datetime.utcnow() if not secure_session and ( (domain and Domain.is_secure_session_required(domain)) or self._user_requires_secure_session(request.couch_user)): if self._session_expired(settings.SECURE_TIMEOUT, request.user.last_login, now): django_logout(request, template_name=settings.BASE_TEMPLATE) # this must be after logout so it is attached to the new session request.session['secure_session'] = True return HttpResponseRedirect(reverse('login') + '?next=' + request.path) else: request.session['secure_session'] = True request.session['last_request'] = json_format_datetime(now) return else: last_request = request.session.get('last_request') timeout = settings.SECURE_TIMEOUT if secure_session else settings.INACTIVITY_TIMEOUT if self._session_expired(timeout, last_request, now): django_logout(request, template_name=settings.BASE_TEMPLATE) return HttpResponseRedirect(reverse('login') + '?next=' + request.path) request.session['last_request'] = json_format_datetime(now)
def process_view(self, request, view_func, view_args, view_kwargs): if not request.user.is_authenticated: return secure_session = request.session.get('secure_session') timeout = settings.SECURE_TIMEOUT if secure_session else settings.INACTIVITY_TIMEOUT domain = getattr(request, "domain", None) now = datetime.datetime.utcnow() # figure out if we want to switch to secure_sessions change_to_secure_session = ( not secure_session and ( (domain and Domain.is_secure_session_required(domain)) or self._user_requires_secure_session(request.couch_user))) if change_to_secure_session: timeout = settings.SECURE_TIMEOUT # force re-authentication if the user has been logged in longer than the secure timeout if self._session_expired(timeout, request.user.last_login, now): django_logout(request, template_name=settings.BASE_TEMPLATE) # this must be after logout so it is attached to the new session request.session['secure_session'] = True request.session.set_expiry(timeout * 60) return HttpResponseRedirect(reverse('login') + '?next=' + request.path) request.session['secure_session'] = True request.session.set_expiry(timeout * 60)
def logout(request): # If the user was a properly logged in user with a username, remind them # to also log out with drchrono if hasattr(request.user, 'doctor') and request.user.doctor.username: username = request.user.doctor.username django_logout(request) return render(request, 'logout.html', {'username': username}) # Otherwise just bring them home else: django_logout(request) return redirect('home')
def logout(request): # If the user was a properly logged in user with a username, remind them # to also log out with drchrono if hasattr(request.user, 'doctor') and request.user.doctor.username: username = request.user.doctor.username django_logout(request) return render(request, 'logout.html', {'username':username}) # Otherwise just bring them home else: django_logout(request) return redirect('home')
def logout(req): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None # we don't actually do anything with the response here: django_logout(req, **{"template_name": settings.BASE_TEMPLATE}) if referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def logout(request): """ Wraps django logout view to perform any cleanup actions, if any, and redirects to LOGIN_URL. """ django_logout(request, next_page=settings.LOGIN_URL) return HttpResponseRedirect('/') #TODO Email registration/activation_complete #TODO Permissions
def logout(request): if request.session.get('patient_mode'): return redirect('kiosk') # If the user was a properly logged in user with a username, remind them # that they may also want to log out from drchrono if hasattr(request.user, 'doctor') and request.user.doctor.username: username = request.user.doctor.username django_logout(request) return render(request, 'logout.html', {'username': username}) # Otherwise just bring them home else: django_logout(request) return redirect('landing')
def logout(request): if request.session.get('patient_mode'): return redirect('kiosk') # If the user was a properly logged in user with a username, remind them # that they may also want to log out from drchrono if hasattr(request.user, 'doctor') and request.user.doctor.username: username = request.user.doctor.username django_logout(request) return render(request, 'logout.html', {'username':username}) # Otherwise just bring them home else: django_logout(request) return redirect('landing')
def logout(req): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None # we don't actually do anything with the response here: django_logout(req, **{"template_name": settings.BASE_TEMPLATE}) if referer and domain and is_mobile_url(referer): mobile_mainnav_url = reverse('custom_project_report_dispatcher', args=[domain, 'mobile/mainnav']) mobile_login_url = reverse('domain_mobile_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s?next=%s' % (mobile_login_url, mobile_mainnav_url)) elif referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def logout(request): logged = request.user.is_authenticated() and request.user response = django_logout(request, login_url="/") if not request.user.is_authenticated() and logged: # just logged out logger.debug("Logout user %s" % logged) logAction('O', description='Disconnesso', user=logged) return response
def logout(request): if 'token_list' in request.session: t = Thread(target=delete_all_tokens, args=(list(request.session['token_list']),)) t.start() """ Securely logs a user out. """ return django_logout(request)
def sign_out(request): response = django_logout(request,next_page='login.html') response.delete_cookie('user_id') return response
def logout(request): msg = 'Logging out user "%(username)s".' % \ {'username': request.user.username} LOG.info(msg) try: user = get_user_document().objects(username=request.user.username).first() if request.user.hp_attr: hp_clouds = Hpclouddata.objects.all() for hp_cloud in hp_clouds: delete_token(endpoint=hp_cloud.endpoint,token_id=hp_cloud.token.id) hp = Hpclouddata.objects(id = hp_cloud.id).first() hp.delete() user.hp_attr = None user.hpname = None if request.user.token and request.user.endpoint: delete_token(endpoint=request.user.endpoint, token_id=request.user.token.id) user.token = None user.authorized_tenants = None user.service_catalog = None user.services_region = None user.project_name = None user.tenant_name = None user.tenant_id = None user.project_id = None user.endpoint = None user.openstackname = None else: LOG.debug("User token not deleted") user.is_superuser = False user.save() except: LOG.debug("User token not deleted") return django_logout(request)
def logout(request, *args, **kwargs): response = django_logout(request, *args, **kwargs) if not request.user.is_authenticated(): messages.info(request, "Successfully logged out.") else: messages.error(request, "Failed to log out.") return response
def logout(request): if 'token_list' in request.session: t = Thread(target=delete_all_tokens, args=(list(request.session['token_list']), )) t.start() """ Securely logs a user out. """ return django_logout(request)
def logout(request, login_url=None, current_app=None, extra_context=None): if not login_url: login_url = settings.LOGIN_REDIRECT_URL return django_logout(request, login_url, current_app=current_app, extra_context=extra_context)
def logout(request, next_page=None, **kwargs): # Simple Wrapper around django.contrib.auth.views.logout to default # next_page based off the setting LOGOUT_REDIRECT_URLNAME. if next_page is None and hasattr(settings, "LOGOUT_REDIRECT_URLNAME"): next_page = reverse(settings.LOGOUT_REDIRECT_URLNAME) return django_logout(request, next_page, **kwargs)
def merengue_logout(request): if '_saml2_subject_id' in request.session: return logout( request, config_loader_path= 'plugins.saml2.saml_config_loader.merengue_config_loader') else: return django_logout(request)
def logout(request): logger.debug('Mock logout process started') next_page = '/' if hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django_logout with a next_page of %s' % next_page) return django_logout(request, next_page=next_page)
def logout_service( request, config_loader_path=None, next_page=None, logout_error_template="djangosaml2/logout_error.html" ): """SAML Logout Response endpoint The IdP will send the logout response to this view, which will process it with pysaml2 help and log the user out. Note that the IdP can request a logout even when we didn't initiate the process as a single logout request started by another SP. """ logger.debug("Logout service started") conf = get_config(config_loader_path, request) state = StateCache(request.session) client = Saml2Client(conf, state_cache=state, identity_cache=IdentityCache(request.session), logger=logger) if "SAMLResponse" in request.GET: # we started the logout logger.debug("Receiving a logout response from the IdP") response = client.logout_response(request.GET["SAMLResponse"], binding=BINDING_HTTP_REDIRECT) state.sync() if response and response[1] == "200 Ok": if next_page is None and hasattr(settings, "LOGOUT_REDIRECT_URL"): next_page = settings.LOGOUT_REDIRECT_URL logger.debug("Performing django_logout with a next_page of %s" % next_page) return django_logout(request, next_page=next_page) else: logger.error("Unknown error during the logout") return HttpResponse("Error during logout") elif "SAMLRequest" in request.GET: # logout started by the IdP logger.debug("Receiving a logout request from the IdP") subject_id = _get_subject_id(request.session) if subject_id is None: logger.warning( "The session does not contain the subject id for user %s. " + "Performing local logout" % request.user ) auth.logout(request) return render_to_response(logout_error_template, {}, context_instance=RequestContext(request)) else: response, success = client.logout_request(request.GET, subject_id) state.sync() if success: auth.logout(request) assert response[0][0] == "Location" url = response[0][1] return HttpResponseRedirect(url) elif response is not None: assert response[0][0] == "Location" url = response[0][1] return HttpResponseRedirect(url) else: logger.error("Unknown error during the logout") return HttpResponse("Error during logout") else: logger.error("No SAMLResponse or SAMLRequest parameter found") raise Http404("No SAMLResponse or SAMLRequest parameter found")
def finish_logout(request, response, next_page=None): if response and response.status_ok(): if next_page is None and hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django_logout with a next_page of %s' % next_page) return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return failure_redirect("Error during logout")
def finish_logout(request, response, next_page=None): if response and response.status_ok(): if next_page is None and hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django_logout with a next_page of %s', next_page) return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return HttpResponse('Error during logout')
def logout(req, template_name="rapidsms/loggedout.html"): if getattr(settings, 'ENABLE_AUDITLOG', False): try: from auditlog.utils import audit_log log_dict = {'request': req, 'logtype': 'system', 'action':'logout', 'detail':'User logged out %s:%s' % (req.user.id, req.user.username) } audit_log(log_dict) except: pass return django_logout(req, **{"template_name" : template_name})
def logout(request): msg = 'Logging out user "%(username)s".' % \ {'username': request.user.username} LOG.info(msg) endpoint = request.session.get('region_endpoint') token = request.session.get('token') if token and endpoint: delete_token(endpoint=endpoint, token_id=token.id) """ Securely logs a user out. """ return django_logout(request)
def logout(request): msg = 'Logging out user "%(username)s".' % \ {'username': request.user.username} LOG.info(msg) if 'token_list' in request.session: t = Thread(target=delete_all_tokens, args=(list(request.session['token_list']),)) t.start() """ Securely logs a user out. """ return django_logout(request)
def finish_logout(request, response, next_page=None): if response and response.status_ok(): if next_page is None and hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django logout with a next_page of %s', next_page) return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return render(request, "djangosaml2/logout_error.html", {})
def logout_service(request, config_loader_path=None, next_page=None): """SAML Logout Response endpoint The IdP will send the logout response to this view, which will process it with pysaml2 help and log the user out. Note that the IdP can request a logout even when we didn't initiate the process as a single logout request started by another SP. """ logger.debug('Logout service started') conf = get_config(config_loader_path, request) state = StateCache(request.session) client = Saml2Client(conf, state_cache=state, identity_cache=IdentityCache(request.session), logger=logger) if 'SAMLResponse' in request.GET: # we started the logout logger.debug('Receiving a logout response from the IdP') response = client.logout_response(request.GET['SAMLResponse'], binding=BINDING_HTTP_REDIRECT) state.sync() if response and response[1] == '200 Ok': if next_page is None and hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django_logout with a next_page of %s' % next_page) return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return HttpResponse('Error during logout') elif 'SAMLRequest' in request.GET: # logout started by the IdP logger.debug('Receiving a logout request from the IdP') subject_id = _get_subject_id(request.session) response, success = client.logout_request(request.GET, subject_id) state.sync() if success: auth.logout(request) assert response[0][0] == 'Location' url = response[0][1] return HttpResponseRedirect(url) elif response is not None: assert response[0][0] == 'Location' url = response[0][1] return HttpResponseRedirect(url) else: logger.error('Unknown error during the logout') return HttpResponse('Error during logout') else: logger.error('No SAMLResponse or SAMLRequest parameter found') raise Http404('No SAMLResponse or SAMLRequest parameter found')
def logout(request): if request.method == 'GET': next_page = request.GET.get('next') if not next_page: next_page = '/' # todo: 登出用户 return django_logout(request, next_page) if request.method == 'POST': js = {'status': 1, 'message': 'ok', 'ec': 0} return HttpResponse(content=json.dumps(js), status=200, content_type='application/json')
def finish_logout(request, response, next_page=None): if response and response.status_ok(): if next_page is None and hasattr(settings, 'LOGOUT_REDIRECT_URL'): next_page = settings.LOGOUT_REDIRECT_URL logger.debug('Performing django logout with a next_page of %s', next_page) return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return render(request, "djangosaml2/logout_error.html", {}, using='django')
def logout_service(request, config_loader_path=None, next_page=None): """SAML Logout Response endpoint The IdP will send the logout response to this view, which will process it with pysaml2 help and log the user out. Note that the IdP can request a logout even when we didn't initiate the process as a single logout request started by another SP. """ logger.debug('Logout service started') conf = get_config(config_loader_path, request) state = StateCache(request.session) client = Saml2Client(conf, state_cache=state, identity_cache=IdentityCache(request.session), logger=logger) if 'SAMLResponse' in request.GET: # we started the logout logger.debug('Receiving a logout response from the IdP') response = client.logout_response(request.GET['SAMLResponse'], binding=BINDING_HTTP_REDIRECT) state.sync() if response and response[1] == '200 Ok': return django_logout(request, next_page=next_page) else: logger.error('Unknown error during the logout') return HttpResponse('Error during logout') elif 'SAMLRequest' in request.GET: # logout started by the IdP logger.debug('Receiving a logout request from the IdP') subject_id = _get_subject_id(request.session) response, success = client.logout_request(request.GET, subject_id) state.sync() if success: auth.logout(request) assert response[0][0] == 'Location' url = response[0][1] return HttpResponseRedirect(url) elif response is not None: assert response[0][0] == 'Location' url = response[0][1] return HttpResponseRedirect(url) else: logger.error('Unknown error during the logout') return HttpResponse('Error during logout') else: logger.error('No SAMLResponse or SAMLRequest parameter found') raise Http404('No SAMLResponse or SAMLRequest parameter found')
def logout(request, *args, **kwargs): """ Handles logging a user out of system after logging out of FB Connect This passes off to django.contrib.auth.views.logout to handle the Django specific pieces after it deletes the appropriate cookies for Facebook Connect. """ response = django_logout(request, *args, **kwargs) api_key_len = len(settings.FACEBOOK_API_KEY) for (cookie_name, cookie_value) in request.COOKIES.iteritems(): if cookie_name[0:api_key_len] != settings.FACEBOOK_API_KEY: continue response.delete_cookie(cookie_name) return response
def logout(req, template_name="hqwebapp/loggedout.html"): referer = req.META.get('HTTP_REFERER') domain = get_domain_from_url(urlparse(referer).path) if referer else None req.base_template = settings.BASE_TEMPLATE response = django_logout(req, **{"template_name": template_name}) if referer and domain and is_mobile_url(referer): mobile_mainnav_url = reverse('custom_project_report_dispatcher', args=[domain, 'mobile/mainnav']) mobile_login_url = reverse('domain_mobile_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s?next=%s' % (mobile_login_url, mobile_mainnav_url)) elif referer and domain: domain_login_url = reverse('domain_login', kwargs={'domain': domain}) return HttpResponseRedirect('%s' % domain_login_url) else: return HttpResponseRedirect(reverse('login'))
def logout(request, next_page=None, **kwargs): # Simple Wrapper around django.contrib.auth.views.logout to default # next_page based off the setting LOGOUT_REDIRECT_URLNAME. if next_page is None and hasattr(settings, "LOGOUT_REDIRECT_URLNAME"): next_page = reverse(settings.LOGOUT_REDIRECT_URLNAME) newKwargs = {} template_name = kwargs.pop('template_name', None) if not template_name is None: newKwargs['template_name'] = template_name redirect_field_name = kwargs.pop('redirect_field_name', None) if not redirect_field_name is None: newKwargs['redirect_field_name'] = redirect_field_name newKwargs['current_app'] = kwargs.pop('current_app', None) newKwargs['extra_context'] = kwargs.pop('current_app', {}) return django_logout(request, next_page, **newKwargs)
def logout(request): msg = 'Logging out user "%(username)s".' % \ {'username': request.user.username} LOG.info(msg) try: user = get_user_document().objects( username=request.user.username).first() if request.user.hp_attr: hp_clouds = Hpclouddata.objects.all() for hp_cloud in hp_clouds: delete_token(endpoint=hp_cloud.endpoint, token_id=hp_cloud.token.id) hp = Hpclouddata.objects(id=hp_cloud.id).first() hp.delete() user.hp_attr = None user.hpname = None if request.user.token and request.user.endpoint: delete_token(endpoint=request.user.endpoint, token_id=request.user.token.id) user.token = None user.authorized_tenants = None user.service_catalog = None user.services_region = None user.project_name = None user.tenant_name = None user.tenant_id = None user.project_id = None user.endpoint = None user.openstackname = None else: LOG.debug("User token not deleted") user.is_superuser = False user.save() except: LOG.debug("User token not deleted") return django_logout(request)
def logout(req, template_name="webapp/loggedout.html"): '''Logout of rapidsms''' req.base_template = settings.BASE_TEMPLATE return django_logout(req, **{"template_name": template_name})
def logout(request): """ Securely logs a user out. """ return django_logout(request)
def logout(req, template_name="webapp/loggedout.html"): '''Logout of rapidsms''' req.base_template = settings.BASE_TEMPLATE return django_logout(req, **{"template_name" : template_name})
def logout(request): django_logout(request) return redirect('/')
def logout(request): return django_logout(request)
def merengue_logout(request): if '_saml2_subject_id' in request.session: return logout(request, config_loader=merengue_config_loader) else: return django_logout(request)
def authorize_logout(request): django_logout(request) request.user_logout() # FIXME(gabriel): we don't ship a view named splash return shortcuts.redirect('get_login_view')
def logout(req, template_name="rapidsms/loggedout.html"): return django_logout(req, **{"template_name": template_name})
def logout(request, *args, **kwargs): log = logging.getLogger('cams') log.info(u' '.join(['logout', request.user.username])) from django.contrib.auth.views import logout as django_logout return django_logout(request, *args, **kwargs)
def failure(request): return django_logout(request, template_name='acclist/failure.html')
def logout(request, template_name='openid/login.html'): messages.success(request, 'You have been successfully signed out.') context = {'messages': messages} return django_logout(request, template_name=template_name)
def logout(request, *args, **kwargs): res = django_logout(request, *args, **kwargs) return res