Ryan gave us a new awesome template for Ipsilon. Put to prod
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
This commit is contained in:
parent
0be7818268
commit
0e24306da6
14 changed files with 314 additions and 0 deletions
7
roles/ipsilon/files/templates-new/index.html
Normal file
7
roles/ipsilon/files/templates-new/index.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
This is the Federated Open Authentication provider homepage.
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
You will be redirected to this application whenever another application requires you to authenticate.
|
||||||
|
{% endblock %}
|
15
roles/ipsilon/files/templates-new/internalerror.html
Normal file
15
roles/ipsilon/files/templates-new/internalerror.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
500 - Internal Server Error
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
{% if message: %}
|
||||||
|
<p>{{ message }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>Ipsilon encountered an unexpected internal error while trying to
|
||||||
|
fulfill your request.</p>
|
||||||
|
{% endif %}
|
||||||
|
<p>Please retry again.</p>
|
||||||
|
<p>If the error persists, contact the server administrator to resolve
|
||||||
|
the problem.</p>
|
||||||
|
{% endblock %}
|
63
roles/ipsilon/files/templates-new/layout.html
Normal file
63
roles/ipsilon/files/templates-new/layout.html
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
|
||||||
|
<link rel="shortcut icon" type="image/vnd.microsoft.icon"
|
||||||
|
href="//fedoraproject.org/static/images/favicon.ico"/>
|
||||||
|
|
||||||
|
<!--<link rel="stylesheet" href="{{ basepath }}/ui/fedora/fedora.css">-->
|
||||||
|
<link href="https://apps.fedoraproject.org/global/fedora-bootstrap-1.0/fedora-bootstrap.min.css" rel="stylesheet">
|
||||||
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700,400italic,700italic,300italic' rel='stylesheet' type='text/css'>
|
||||||
|
<meta name="generator" content="Ipsilon">
|
||||||
|
|
||||||
|
{%- if heads %}
|
||||||
|
{%- for group, value in heads.items() %}
|
||||||
|
{%- for head in value %}
|
||||||
|
{{ head | safe }}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="masthead">
|
||||||
|
<div class="container text-center">
|
||||||
|
<img alt="logo" src="{{ basepath }}/ui/fedora/fedora-authn-logo-white.png" height=40px />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bodycontent p-t-lg">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-10 col-sm-offset-1">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 text-center">
|
||||||
|
{% block toptext %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row p-b-lg">
|
||||||
|
<div class="{% block cardwidths %}{% endblock %}">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header small">
|
||||||
|
{% block maintitle %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
{% block main %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer p-t p-b text-center">
|
||||||
|
<div class="container">
|
||||||
|
<p class="text-muted credit">
|
||||||
|
Fedora FAS Login uses OpenID powered by Ipsilon
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
35
roles/ipsilon/files/templates-new/login/form.html
Normal file
35
roles/ipsilon/files/templates-new/login/form.html
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block title %}Login{% endblock %}
|
||||||
|
{% block toptext %}
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small><strong>{{ login_target }}</strong> wants to use your Fedora Account System (FAS) credentials</small>
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
||||||
|
{% if error %}<p>{{error}}</p>{% endif %}
|
||||||
|
{% block cardwidths %}col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2{% endblock %}
|
||||||
|
{% block maintitle %}
|
||||||
|
login with FAS
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
<form method="post" action="{{ action }}" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="ipsilon_transaction_id" id="ipsilon_transaction_id" value="{{ ipsilon_transaction_id}}"/>
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<input class="form-control" id="username" name="login_name" placeholder="Username" autofocus value="{{ username | e }}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<input class="form-control" id="password" name="login_password" type="password" placeholder="Password" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row m-b-0">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<input class="btn btn-primary" type="submit" id="loginbutton" value="Allow" />
|
||||||
|
<span class="btn btn-link small"><small><a target="_blank" href="https://admin.fedoraproject.org/accounts/user/new">create a FAS account</a></small></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
|
|
11
roles/ipsilon/files/templates-new/login/index.html
Normal file
11
roles/ipsilon/files/templates-new/login/index.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block title %}Login{% endblock %}
|
||||||
|
{% block toptext %}
|
||||||
|
{{ login_target }} is asking to authenticate using Ipsilon
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
<div>
|
||||||
|
Redirecting... {{ redirect }}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
13
roles/ipsilon/files/templates-new/logout.html
Normal file
13
roles/ipsilon/files/templates-new/logout.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "master.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
Logged out
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
{% if user.name %}
|
||||||
|
<p>Something prevented a successful logout</p>
|
||||||
|
<p>You are still logged in as {{ user.fullname }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>Successfully logged out.</p>
|
||||||
|
<p>Return to <a href="{{ basepath }}/">Home</a> page</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
13
roles/ipsilon/files/templates-new/notfound.html
Normal file
13
roles/ipsilon/files/templates-new/notfound.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
404 - Not Found
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
{% if message: %}
|
||||||
|
<p>{{ message }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>This page does not exist.</p>
|
||||||
|
{% endif %}
|
||||||
|
<p>If you think this is an error, contact the server administrator to resolve
|
||||||
|
the problem.</p>
|
||||||
|
{% endblock %}
|
37
roles/ipsilon/files/templates-new/openid/consent_form.html
Normal file
37
roles/ipsilon/files/templates-new/openid/consent_form.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
<p><small><strong>{{trustroot}}</strong> requests to use the following details from your FAS Account</small></p>
|
||||||
|
{% endblock %}
|
||||||
|
{% block cardwidths %}col-md-10 col-md-offset-1{% endblock %}
|
||||||
|
{% block maintitle %}Review the authorization details{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
<div class="small">
|
||||||
|
<form method="post" action="{{action}}" enctype="application/x-www-form-urlencoded">
|
||||||
|
<input type="hidden" name="ipsilon_transaction_id" id="ipsilon_transaction_id" value="{{ ipsilon_transaction_id }}" />
|
||||||
|
{% for entry in authz_details|dictsort %}
|
||||||
|
<div class="row m-b">
|
||||||
|
<div class="col-sm-5"><strong>{{ entry[0] }}</strong></div>
|
||||||
|
{%- if entry[1] is iterable and not entry[1] is string -%}
|
||||||
|
<div class="col-sm-7">{{ entry[1] | join(', ') }}</div>
|
||||||
|
{%- else -%}
|
||||||
|
<div class="col-sm-7">{{ entry[1] }}</div>
|
||||||
|
{%- endif -%}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<div class="row m-b">
|
||||||
|
<div class="col-sm-5"><strong>Remember approval</strong></div>
|
||||||
|
<div class="col-sm-7"><select name="remember_for_days" class="c-select-sm c-select">
|
||||||
|
<option value="0">never</option>
|
||||||
|
<option value="3">3 days</option>
|
||||||
|
<option value="7">7 days</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="form_item">
|
||||||
|
<input class="btn btn-primary" name="decided_allow" type="submit" value="Approve" />
|
||||||
|
<input class="btn btn-link" name="decided_deny" type="submit" value="Reject" />
|
||||||
|
</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
7
roles/ipsilon/files/templates-new/openid/userpage.html
Normal file
7
roles/ipsilon/files/templates-new/openid/userpage.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
This is the OpenID page for {{username}}.
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
This page is primarily used internally
|
||||||
|
{% endblock %}
|
16
roles/ipsilon/files/templates-new/openid/xrds.xml
Normal file
16
roles/ipsilon/files/templates-new/openid/xrds.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
|
||||||
|
<XRD>
|
||||||
|
<Service>
|
||||||
|
{%- for t in types %}
|
||||||
|
<Type>{{ t }}</Type>
|
||||||
|
{%- endfor %}
|
||||||
|
{%- if uri %}
|
||||||
|
<URI>{{ uri }}</URI>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if localid %}
|
||||||
|
<LocalID>{{ localid }}</LocalID>
|
||||||
|
{%- endif %}
|
||||||
|
</Service>
|
||||||
|
</XRD>
|
||||||
|
</xrds:XRDS>
|
59
roles/ipsilon/files/templates-new/persona/provisioning.html
Normal file
59
roles/ipsilon/files/templates-new/persona/provisioning.html
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
This page is used internally
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
<script type="text/javascript" src="https://login.persona.org/provisioning_api.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var xmlhttp = new XMLHttpRequest()
|
||||||
|
|
||||||
|
var loggedin = {{ loggedin|lower }};
|
||||||
|
|
||||||
|
xmlhttp.onreadystatechange = function()
|
||||||
|
{
|
||||||
|
if(xmlhttp.readyState == 4)
|
||||||
|
{
|
||||||
|
if(xmlhttp.status == 200)
|
||||||
|
{
|
||||||
|
navigator.id.registerCertificate(xmlhttp.responseText);
|
||||||
|
}
|
||||||
|
else if((xmlhttp.status == 401) || (xmlhttp.status == 403))
|
||||||
|
{
|
||||||
|
navigator.id.raiseProvisioningFailure('Error in provisioning!');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
alert("Response code: " + xmlhttp.status);
|
||||||
|
alert("Response text: " + xmlhttp.responseText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateServerSide(email, publicKey, certDuration, callback)
|
||||||
|
{
|
||||||
|
xmlhttp.open("POST", "Sign/", true);
|
||||||
|
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
xmlhttp.send("email=" + encodeURIComponent(email)
|
||||||
|
+ "&publicKey=" + encodeURIComponent(publicKey)
|
||||||
|
+ "&certDuration=" + encodeURIComponent(certDuration));
|
||||||
|
}
|
||||||
|
|
||||||
|
function startProvisioning()
|
||||||
|
{
|
||||||
|
navigator.id.beginProvisioning(function(email, certDuration)
|
||||||
|
{
|
||||||
|
if(loggedin)
|
||||||
|
{
|
||||||
|
navigator.id.genKeyPair(function(publicKey)
|
||||||
|
{
|
||||||
|
generateServerSide(email, publicKey, certDuration);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
navigator.id.raiseProvisioningFailure('user is not authenticated');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
startProvisioning();
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
19
roles/ipsilon/files/templates-new/persona/signin_result.html
Normal file
19
roles/ipsilon/files/templates-new/persona/signin_result.html
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block toptext %}
|
||||||
|
This page is used internally
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
<script type="text/javascript" src="https://login.persona.org/authentication_api.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var loggedin = {{ loggedin|lower }};
|
||||||
|
|
||||||
|
if(loggedin)
|
||||||
|
{
|
||||||
|
navigator.id.beginAuthentication(function(email) {
|
||||||
|
navigator.id.completeAuthentication();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
navigator.id.raiseAuthenticationFailure('User cancelled signon');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
12
roles/ipsilon/files/templates-new/unauthorized.html
Normal file
12
roles/ipsilon/files/templates-new/unauthorized.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% block maintitle %}
|
||||||
|
401 - Unauthorized
|
||||||
|
{% endblock %}
|
||||||
|
{% block main %}
|
||||||
|
{% if message: %}
|
||||||
|
<p>{{ message }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>Authentication was not succesful</p>
|
||||||
|
{% endif %}
|
||||||
|
<p><a href="{{ basepath }}/login" title="Login">Try to login again</a></p>
|
||||||
|
{% endblock %}
|
|
@ -33,6 +33,13 @@
|
||||||
copy: src=templates/
|
copy: src=templates/
|
||||||
dest=/usr/share/ipsilon/templates-fedora
|
dest=/usr/share/ipsilon/templates-fedora
|
||||||
owner=ipsilon group=ipsilon mode=0666
|
owner=ipsilon group=ipsilon mode=0666
|
||||||
|
when: env != "staging"
|
||||||
|
|
||||||
|
- name: copy STAGING ipsilon templates
|
||||||
|
copy: src=templates-new/
|
||||||
|
dest=/usr/share/ipsilon/templates-fedora
|
||||||
|
owner=ipsilon group=ipsilon mode=0666
|
||||||
|
when: env == "staging"
|
||||||
|
|
||||||
- name: copy ipsilon ui assets
|
- name: copy ipsilon ui assets
|
||||||
copy: src=ui-fedora/
|
copy: src=ui-fedora/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue