Beispiel #1
0
def google_openid_mode_hack(request):
    response = auth(request, 'google')
    response.content = response.content.replace(
        "</form>",
        "<input type='hidden' name='openid.ui.mode' value='popup'/><input type='hidden' name='openid.ns.ui' value='http://specs.openid.net/extensions/ui/1.0'/></form>"
    )
    return response
Beispiel #2
0
    def process_request(self, request):
        current_url = request.get_full_path()

        if hasattr(settings, 'SOCIAL_AUTH_EXCLUDE_URL_PATTERN'):
            r = re.compile(settings.SOCIAL_AUTH_EXCLUDE_URL_PATTERN)
            if r.match(current_url):
                return None

        auth_cookie = request.COOKIES.get(self.cookie_name, '0').lower()
        auth_cookie = (auth_cookie in ('1', 'true', 'ok'))
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(self.backend, ))
        is_auth = request.user.is_authenticated()

        is_continue = (continue_url in current_url)

        if auth_cookie and not is_continue and not is_auth:
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            return auth(request, self.backend)
        elif not auth_cookie and is_auth:
            logout(request)

        return None
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx
        """
        backend = settings.SSO_NPOED_BACKEND_NAME
        current_url = request.get_full_path()

        # ITMO url hardcode
        special_xblock_url = 'courses/course-v1:ITMOUniversity+WEBDEV+fall_2015/xblock/block-v1:ITMOUniversity+WEBDEV+fall_2015+type'
        if special_xblock_url in current_url:
            return None

        special_xblock_url = 'courses/course-v1:ITMOUniversity+WEBDEV+spring_2016/xblock/block-v1:ITMOUniversity+WEBDEV+spring_2016+type'
        if special_xblock_url in current_url:
            return None

        # UrFU url hardcode
        special_urfu_xblock_url = 'courses/course-v1:urfu+METR+fall_2015/xblock/block-v1:urfu+METR+fall_2015+type'
        if special_urfu_xblock_url in current_url:
            return None

        if 'certificates' in current_url:
            return None

        # don't work for admin
        for attr in [
                'SOCIAL_AUTH_EXCLUDE_URL_PATTERN',
                'AUTOCOMPLETE_EXCLUDE_URL_PATTERN'
        ]:
            if hasattr(settings, attr):
                r = re.compile(getattr(settings, attr))
                if r.match(current_url):
                    return None

        auth_cookie = request.COOKIES.get(self.cookie_name, '0').lower()
        auth_cookie_user = request.COOKIES.get('{}_user'.format(
            self.cookie_name))
        auth_cookie = (auth_cookie in ('1', 'true', 'ok'))
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend, ))
        is_auth = request.user.is_authenticated()
        # TODO: Need to uncomment after fix PLP
        is_same_user = (request.user.username == auth_cookie_user)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
                ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)

        return None
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx
        """
        backend = settings.SSO_NPOED_BACKEND_NAME
        current_url = request.get_full_path()

        # ITMO url hardcode
        special_xblock_url = 'courses/course-v1:ITMOUniversity+WEBDEV+fall_2015/xblock/block-v1:ITMOUniversity+WEBDEV+fall_2015+type'
        if special_xblock_url in current_url:
            return None

        special_xblock_url = 'courses/course-v1:ITMOUniversity+WEBDEV+spring_2016/xblock/block-v1:ITMOUniversity+WEBDEV+spring_2016+type'
        if special_xblock_url in current_url:
            return None

        # UrFU url hardcode
        special_urfu_xblock_url = 'courses/course-v1:urfu+METR+fall_2015/xblock/block-v1:urfu+METR+fall_2015+type'
        if special_urfu_xblock_url in current_url:
            return None

        if 'certificates' in current_url:
            return None

        # don't work for admin
        for attr in ['SOCIAL_AUTH_EXCLUDE_URL_PATTERN', 'AUTOCOMPLETE_EXCLUDE_URL_PATTERN']:
            if hasattr(settings, attr):
                r = re.compile(getattr(settings, attr))
                if r.match(current_url):
                    return None

        auth_cookie = request.COOKIES.get(self.cookie_name, '0').lower()
        auth_cookie_user = request.COOKIES.get('{}_user'.format(self.cookie_name))
        auth_cookie = (auth_cookie in ('1', 'true', 'ok'))
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend,))
        is_auth = request.user.is_authenticated()
        # TODO: Need to uncomment after fix PLP
        is_same_user = (request.user.username == auth_cookie_user)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
                ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)

        return None
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx.
        """
        backend = "wp-oauth2"
        current_url = request.get_full_path()

        # don't work for admin
        for attr in [
                'SOCIAL_AUTH_EXCLUDE_URL_PATTERN',
                'AUTOCOMPLETE_EXCLUDE_URL_PATTERN'
        ]:
            if hasattr(settings, attr):
                r = re.compile(getattr(settings, attr))
                if r.match(current_url):
                    return None

        auth_cookie = request.COOKIES.get(self.cookie_name, '0').lower()
        auth_cookie_user = request.COOKIES.get('{}_user'.format(
            self.cookie_name))
        auth_cookie = (auth_cookie in ('1', 'true', 'ok'))
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend, ))
        is_auth = request.user.is_authenticated()

        is_same_user = (request.user.username == auth_cookie_user)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
                ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)

        return None
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx.
        """
        backend = "wp-oauth2"
        current_url = request.get_full_path()

        # don't work for admin
        for attr in ['SOCIAL_AUTH_EXCLUDE_URL_PATTERN', 'AUTOCOMPLETE_EXCLUDE_URL_PATTERN']:
            if hasattr(settings, attr):
                r = re.compile(getattr(settings, attr))
                if r.match(current_url):
                    return None

        auth_cookie = request.COOKIES.get(self.cookie_name, '0').lower()
        auth_cookie_user = request.COOKIES.get('{}_user'.format(self.cookie_name))
        auth_cookie = (auth_cookie in ('1', 'true', 'ok'))
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend,))
        is_auth = request.user.is_authenticated()

        is_same_user = (request.user.username == auth_cookie_user)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
                ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)

        return None
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx
        """
        backend = settings.SSO_ML_BACKEND_NAME
        current_url = request.get_full_path()

        # don't work for admin
        if hasattr(settings, 'SOCIAL_AUTH_EXCLUDE_URL_PATTERN'):
            r = re.compile(settings.SOCIAL_AUTH_EXCLUDE_URL_PATTERN)
            if r.match(current_url):
                return None

        auth_cookie = request.COOKIES.get(self.cookie_name)
        auth_cookie_portal = request.session.get(self.cookie_name)
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend, ))
        is_auth = request.user.is_authenticated()
        is_same_user = (auth_cookie == auth_cookie_portal)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        request.session[self.cookie_name] = auth_cookie

        if not is_same_user and is_auth:
            logout(request)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
            ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)
    def process_request(self, request):
        """
        Check multidomain cookie and if user is authenticated on sso, login it on edx
        """
        backend = settings.SSO_ML_BACKEND_NAME
        current_url = request.get_full_path()

        # don't work for admin
        if hasattr(settings, 'SOCIAL_AUTH_EXCLUDE_URL_PATTERN'):
            r = re.compile(settings.SOCIAL_AUTH_EXCLUDE_URL_PATTERN)
            if r.match(current_url):
                return None

        auth_cookie = request.COOKIES.get(self.cookie_name)
        auth_cookie_portal = request.session.get(self.cookie_name)
        continue_url = reverse('{0}:complete'.format(NAMESPACE),
                               args=(backend,))
        is_auth = request.user.is_authenticated()
        is_same_user = (auth_cookie == auth_cookie_portal)

        # Check for infinity redirection loop
        is_continue = (continue_url in current_url)

        request.session[self.cookie_name] = auth_cookie

        if not is_same_user and is_auth:
            logout(request)

        if (auth_cookie and not is_continue and (not is_auth or not is_same_user)) or \
            ('force_auth' in request.session and request.session.pop('force_auth')):
            query_dict = request.GET.copy()
            query_dict[REDIRECT_FIELD_NAME] = current_url
            query_dict['auth_entry'] = 'login'
            request.GET = query_dict
            logout(request)
            return auth(request, backend)
        elif not auth_cookie and is_auth:
            # Logout if user isn't logined on sso
            logout(request)
Beispiel #9
0
 def get(self, request, backend):
     return auth(request, backend)
Beispiel #10
0
def google_openid_mode_hack(request):
    response = auth(request, 'google')
    response.content = response.content.replace("</form>", "<input type='hidden' name='openid.ui.mode' value='popup'/><input type='hidden' name='openid.ns.ui' value='http://specs.openid.net/extensions/ui/1.0'/></form>")
    return response
Beispiel #11
0
 def get(self, request, backend):
     return auth(request, backend)
Beispiel #12
0
 def login(self, request, extra_context=None):
     if 'local' in request.GET:
         return super(CrimsonAdminSite, self).login(request, extra_context)
     return auth(request, backend='google-oauth2')