This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
ifef-registration/extra/modules/saml.ptl

26 lines
1.1 KiB
Plaintext

from quixote import get_request, get_response, redirect, get_field, get_publisher
from qommon import get_cfg, get_logger
from qommon.misc import get_provider_key
import authentic.login_token as login_token
import authentic.liberty.saml as saml
from authentic.misc import redirect_with_return_url
class NewRootDirectory(saml.RootDirectory):
def invoke_login(self, login, query):
request_id = login.request.iD
provider_key = get_provider_key(login.remoteProviderId)
provider_cfg = get_cfg('providers').get(provider_key, {})
login_url = get_request().environ['SCRIPT_NAME'] + '/login'
token = login_token.LoginToken(request_id)
token.query = query
token.store()
args = [('okURL', '/saml/continueSSO?id=%s' % request_id),
('cancelURL', '/saml/failSSO?id=%s' % request_id),
('LoginToken', request_id),
('service',provider_key)]
if provider_cfg.get('theme'):
args.append(('theme', providers_cfg['theme']))
return redirect_with_return_url(login_url, args)