Exemple #1
0
    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)
Exemple #2
0
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"))
Exemple #3
0
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('/')
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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')
Exemple #9
0
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'))
Exemple #10
0
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
Exemple #11
0
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'))
Exemple #12
0
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')
Exemple #14
0
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'))
Exemple #15
0
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
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #19
0
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'))
Exemple #20
0
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
Exemple #21
0
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)
Exemple #22
0
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
Exemple #23
0
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)
Exemple #24
0
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)
Exemple #25
0
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)
Exemple #26
0
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)
Exemple #27
0
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")
Exemple #28
0
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)
Exemple #29
0
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")
Exemple #30
0
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')
Exemple #31
0
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})
Exemple #32
0
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)
Exemple #33
0
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)
Exemple #34
0
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 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)
Exemple #36
0
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", {})
Exemple #37
0
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')
Exemple #38
0
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')
Exemple #39
0
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')
Exemple #40
0
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')
Exemple #41
0
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 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
Exemple #43
0
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'))
Exemple #44
0
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)
Exemple #45
0
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):
    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})
Exemple #48
0
def logout(request):
    """ Securely logs a user out. """
    return django_logout(request)
def logout(request):
    """ Securely logs a user out. """
    return django_logout(request)
Exemple #50
0
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})
Exemple #51
0
def logout(request):
    django_logout(request)
    return redirect('/')
def logout(request):
    return django_logout(request)
Exemple #53
0
def merengue_logout(request):
    if '_saml2_subject_id' in request.session:
        return logout(request, config_loader=merengue_config_loader)
    else:
        return django_logout(request)
Exemple #54
0
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')
Exemple #55
0
def logout(req, template_name="rapidsms/loggedout.html"):
    return django_logout(req, **{"template_name": template_name})
Exemple #56
0
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)
Exemple #57
0
def failure(request):
    return django_logout(request, template_name='acclist/failure.html')
Exemple #58
0
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)
Exemple #59
0
def logout(request, *args, **kwargs):
    res = django_logout(request, *args, **kwargs)
    return res