示例#1
0
    def render_auth_form(self, request, forus_params):
        """Render the combined login/registration form, defaulting to login

        This relies on the JS to asynchronously load the actual form from
        the user_api.
        """
        initial_mode = 'register'

        # Determine the URL to redirect to following login/registration/third_party_auth
        redirect_to = get_next_url_for_login_page(request)

        # If we're already logged in, redirect to the dashboard
        if request.user.is_authenticated():
            logout(request)
            delete_logged_in_cookies(request)
            return redirect(redirect_to)

        # Otherwise, render the combined login/registration page
        context = {
            'data': {
                'login_redirect_url':
                redirect_to,
                'initial_mode':
                initial_mode,
                'third_party_auth': {},
                'third_party_auth_hint':
                '',
                'platform_name':
                settings.PLATFORM_NAME,

                # Include form descriptions retrieved from the user API.
                # We could have the JS client make these requests directly,
                # but we include them in the initial page load to avoid
                # the additional round-trip to the server.
                'registration_form_desc':
                self.get_registration_form_description(request, forus_params),
            },
            'login_redirect_url':
            redirect_to,  # This gets added to the query string of the "Sign In" button in header
            'responsive': True,
            'allow_iframing': True,
            'disable_courseware_js': True,
            'disable_footer': True,
        }

        return render_to_response('edraak_forus/auth.html', context)
示例#2
0
    def dispatch(self, request, *args, **kwargs):  # pylint: disable=missing-docstring
        # We do not log here, because we have a handler registered to perform logging on successful logouts.
        request.is_from_logout = True

        # Get the list of authorized clients before we clear the session.
        self.oauth_client_ids = request.session.get(edx_oauth2_provider.constants.AUTHORIZED_CLIENTS_SESSION_KEY, [])

        logout(request)

        # If we don't need to deal with OIDC logouts, just redirect the user.
        if self.oauth_client_ids:
            response = super(LogoutView, self).dispatch(request, *args, **kwargs)
        else:
            response = redirect(self.target)

        # Clear the cookie used by the edx.org marketing site
        delete_logged_in_cookies(response)

        return response
示例#3
0
    def dispatch(self, request, *args, **kwargs):  # pylint: disable=missing-docstring
        # We do not log here, because we have a handler registered to perform logging on successful logouts.
        request.is_from_logout = True

        # Get the list of authorized clients before we clear the session.
        self.oauth_client_ids = request.session.get(edx_oauth2_provider.constants.AUTHORIZED_CLIENTS_SESSION_KEY, [])

        logout(request)

        # If we don't need to deal with OIDC logouts, just redirect the user.
        if self.oauth_client_ids:
            response = super(LogoutView, self).dispatch(request, *args, **kwargs)
        else:
            response = redirect(self.target)

        # Clear the cookie used by the edx.org marketing site
        delete_logged_in_cookies(response)

        return response
示例#4
0
    def render_auth_form(self, request, forus_params):
        """Render the combined login/registration form, defaulting to login

        This relies on the JS to asynchronously load the actual form from
        the user_api.
        """
        initial_mode = 'register'

        # Determine the URL to redirect to following login/registration/third_party_auth
        redirect_to = get_next_url_for_login_page(request)

        # If we're already logged in, redirect to the dashboard
        if request.user.is_authenticated():
            logout(request)
            delete_logged_in_cookies(request)
            return redirect(redirect_to)

        # Otherwise, render the combined login/registration page
        context = {
            'data': {
                'login_redirect_url': redirect_to,
                'initial_mode': initial_mode,
                'third_party_auth': {},
                'third_party_auth_hint': '',
                'platform_name': settings.PLATFORM_NAME,

                # Include form descriptions retrieved from the user API.
                # We could have the JS client make these requests directly,
                # but we include them in the initial page load to avoid
                # the additional round-trip to the server.
                'registration_form_desc': self.get_registration_form_description(request, forus_params),
            },
            'login_redirect_url': redirect_to,  # This gets added to the query string of the "Sign In" button in header
            'responsive': True,
            'allow_iframing': True,
            'disable_courseware_js': True,
            'disable_footer': True,
        }

        return render_to_response('edraak_forus/auth.html', context)