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
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)
def get(self, request, backend): return auth(request, backend)
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
def get(self, request, backend): return auth(request, backend)
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')