async def get(self, *args, **kwargs): if is_ip_whitelisted(self.request.remote_ip): return self.redirect("{}".format(self.get_argument('next', "/{}/".format(sickrage.app.config.default_page)))) elif sickrage.app.config.sso_auth_enabled and sickrage.app.auth_server.health: await self.run_in_executor(self.handle_sso_auth_get) elif sickrage.app.config.local_auth_enabled: await self.run_in_executor(self.handle_local_auth_get) else: return self.render('login_failed.mako', topmenu="system", header="SiCKRAGE Login Failed", title="SiCKRAGE Login Failed", controller='root', action='login')
def get(self, *args, **kwargs): if is_ip_whitelisted(self.request.remote_ip): return self.redirect("{}".format( self.get_argument( 'next', "/{}/".format( sickrage.app.config.general.default_page.value)))) elif 'Authorization' in self.request.headers: return self.handle_jwt_auth_get() elif sickrage.app.config.general.sso_auth_enabled and sickrage.app.auth_server.health: return self.handle_sso_auth_get() elif sickrage.app.config.general.local_auth_enabled: return self.handle_local_auth_get() else: return self.render('login_failed.mako', topmenu="system", header="SiCKRAGE Login Failed", title="SiCKRAGE Login Failed", controller='root', action='login')
def get_current_user(self): if is_ip_whitelisted(self.request.remote_ip): return True elif sickrage.app.config.general.sso_auth_enabled and sickrage.app.auth_server.health: try: access_token = self.get_secure_cookie('_sr_access_token') refresh_token = self.get_secure_cookie('_sr_refresh_token') if not all([access_token, refresh_token]): return certs = sickrage.app.auth_server.certs() if not certs: return try: return sickrage.app.auth_server.decode_token( access_token.decode("utf-8"), certs) except (KeycloakClientError, ExpiredSignatureError): token = sickrage.app.auth_server.refresh_token( refresh_token.decode("utf-8")) if not token: return self.set_secure_cookie('_sr_access_token', token['access_token']) self.set_secure_cookie('_sr_refresh_token', token['refresh_token']) return sickrage.app.auth_server.decode_token( token['access_token'], certs) except Exception as e: return elif sickrage.app.config.general.local_auth_enabled: cookie = self.get_secure_cookie( '_sr').decode() if self.get_secure_cookie('_sr') else None if cookie == sickrage.app.config.general.api_v1_key: return True