[Users | Trunk]: Add footer. Fix registered services page

This commit is contained in:
Konstantinos Triantafyllou 2020-10-22 14:33:51 +00:00
parent 0fbe93619f
commit d2bacd8e98
7 changed files with 150 additions and 251 deletions

View File

@ -1,5 +1,6 @@
package eu.dnetlib.openaire.usermanagement;
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import javax.servlet.ServletException;
@ -13,10 +14,13 @@ public class OverviewServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OIDCAuthenticationToken authentication = (OIDCAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
request.getSession().setAttribute("authenticated",
!SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString()
!authentication.getPrincipal().toString()
.equals("anonymousUser"));
StringBuilder name = new StringBuilder().append(authentication.getUserInfo().getGivenName().charAt(0));
name.append(authentication.getUserInfo().getFamilyName().charAt(0));
request.getSession().setAttribute("name", name.toString());
response.setContentType("text/html");
request.getRequestDispatcher("./overview.jsp").include(request, response);
}

View File

@ -57,4 +57,8 @@ a:hover, .uk-link:hover {
.clickable {
cursor: pointer;
}
.space {
margin-right: 4px;
}

View File

@ -0,0 +1,28 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<div class="uk-section-primary uk-section uk-section-small">
<div class="uk-container">
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
<img alt="OpenAIRE" class="el-image" src="./images/Logo_Horizontal_white_small.png">
</div>
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
<div><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank"
rel="license"><img alt="Creative" src="./images/80x15.png"
style="height: auto; max-width: 100%; vertical-align: middle;"></a>&nbsp;UNLESS
OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER
A&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE
COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.
</div>
<div>OPENAIRE IS POWERED BY&nbsp;<a href="http://www.d-net.research-infrastructures.eu/">D-NET</a>.
</div>
</div>
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop="">
</a>
</div>
</div>
</div>
</div>
</div>

View File

@ -30,52 +30,7 @@
<body class="" style="">
<div class="uk-offcanvas-content uk-height-viewport">
<!-- MENU STARTS HERE -->
<!-- MAIN MENU STARTS HERE -->
<div class="tm-header tm-header-transparent" uk-header="">
<div class="uk-container uk-container-expand">
<nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}">
<div class="uk-navbar-center">
<div class="uk-logo uk-navbar-item">
<img alt="OpenAIRE" class="uk-responsive-height" src="./images/Logo_Horizontal.png">
</div>
</div>
<!-- user menu -->
<div class=uk-navbar-right>
<ul class="uk-navbar-nav user_actions">
<c:choose>
<c:when test="${not authenticated}">
<li><a href="./openid_connect_login"> Sign in </a></li>
</c:when>
<c:otherwise>
<li>
<a class="login uk-icon" aria-expanded="false">
<svg height="60" width="60">
<span uk-icon="icon: user; ratio: 2"></span></svg>
</a>
</c:otherwise>
</c:choose>
<div class="uk-navbar-dropdown uk-navbar-dropdown-bottom-right" id="userMenu" style="left: 344.433px; top: 100px;">
<div class="uk-navbar-dropdown-grid uk-child-width-1-1 uk-grid uk-grid-stack" uk-grid="">
<div class="uk-first-column uk-height-max-medium uk-overflow-auto">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li class=""><a href="./personalToken">Personal token</a></li>
<li class=""><a href="./registeredServices">Registered services</a></li>
<li class="uk-nav-divider "></li>
<li>
<a href="${oidc.logout}" id="logout">Log out</a>
</li>
</ul>
</div>
</div>
</div>
</li>
</ul>
</div>
<!-- USER MENU ENDS HERE -->
</nav>
</div>
</div>
<!-- MENU ENDS HERE -->
<c:import url="header.jsp"/>
<!-- CONTENT STARTS HERE -->
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
@ -114,28 +69,7 @@
</div>
</div>
<!-- CONTENT ENDS HERE -->
<!-- FOOTER STARTS HERE-->
<div class="custom-footer" style="z-index: 200;">
<div class="uk-section-primary uk-section uk-section-small">
<div class="uk-container">
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
<img alt="OpenAIRE" class="el-image" src="./images/Logo_Horizontal_white_small.png">
</div>
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
<div><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank" rel="license"><img alt="Creative" src="./images/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
<div>OPENAIRE IS POWERED BY&nbsp;<a href="http://www.d-net.research-infrastructures.eu/">D-NET</a>.</div>
</div>
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop="">
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<c:import url="footer.jsp"/>
</div>
</body>
</html>

View File

@ -173,35 +173,7 @@
</div>
</div>
<!-- CONTENT ENDS HERE -->
<!-- FOOTER STARTS HERE-->
<div class="custom-footer" style="z-index: 200;">
<div class="uk-section-primary uk-section uk-section-small">
<div class="uk-container">
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
<img alt="OpenAIRE" class="el-image" src="./images/Logo_Horizontal_white_small.png">
</div>
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
<div><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank"
rel="license"><img alt="Creative" src="./images/80x15.png"
style="height: auto; max-width: 100%; vertical-align: middle;"></a>&nbsp;UNLESS
OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER
A&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE
COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.
</div>
<div>OPENAIRE IS POWERED BY&nbsp;<a href="http://www.d-net.research-infrastructures.eu/">D-NET</a>.
</div>
</div>
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop="">
</a>
</div>
</div>
</div>
</div>
</div>
</div> <!-- FOOTER ENDS HERE -->
<c:import url="footer.jsp"/>
</div>
</body>
</html>

View File

@ -30,11 +30,6 @@
<div class="uk-offcanvas-content uk-height-viewport">
<jsp:include page="header.jsp"/>
<!-- CONTENT STARTS HERE -->
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid"
uk-grid="">
</div>
</div>
<div class=" uk-section uk-margin-small-top uk-container uk-container-large" id="tm-main">
<div class="uk-grid ">
<div class="uk-width-1-4@m">
@ -160,35 +155,7 @@
</div>
</div>
<!-- CONTENT ENDS HERE -->
<!-- FOOTER STARTS HERE-->
<div class="custom-footer" style="z-index: 200;">
<div class="uk-section-primary uk-section uk-section-small">
<div class="uk-container">
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
<img alt="OpenAIRE" class="el-image" src="./images/Logo_Horizontal_white_small.png">
</div>
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
<div><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank"
rel="license"><img alt="Creative" src="./images/80x15.png"
style="height: auto; max-width: 100%; vertical-align: middle;"></a>&nbsp;UNLESS
OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER
A&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE
COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.
</div>
<div>OPENAIRE IS POWERED BY&nbsp;<a href="http://www.d-net.research-infrastructures.eu/">D-NET</a>.
</div>
</div>
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop="">
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<c:import url="footer.jsp"/>
</div>
</body>
</html>

View File

@ -1,6 +1,6 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@ -18,21 +18,17 @@
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="images/favicon//favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon/favicon-16x16.png">
<link href="images/favicon/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
<link href="images/favicon/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
</head>
<body class="" style="">
<div class="uk-offcanvas-content uk-height-viewport">
<jsp:include page="header.jsp"/>
<!-- CONTENT STARTS HERE -->
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
</div>
</div>
<div class=" uk-section uk-margin-small-top uk-container uk-container-large" id="tm-main">
<div class="uk-grid ">
<div class="uk-width-1-4@m">
<div class="uk-card uk-card-default uk-card-body">
<div class="uk-card uk-card-default uk-card-body">
<div class="uk-h4">API Access</div>
<ul class="uk-nav uk-nav-default">
<li class=""><a href="./personalToken">Personal token</a></li>
@ -42,136 +38,130 @@
</div>
<!-- CENTER SIDE -->
<div class="uk-width-2-3@l uk-width-2-3@m">
<p class="uk-text-success uk-text-medium uk-center">
${success}
</p>
<c:remove var="success" scope="session" />
<div id="server_error" class="uk-text-danger uk-text-medium uk-container-center">
${message}
</div>
<c:remove var="message" scope="session" />
<h2 class="uk-h2 uk-margin-small-bottom">Registered services</h2>
<p class="uk-alert-primary uk-text-medium uk-float-left">
<span uk-icon="info"></span> You can register up to 5 services.
</p>
<c:if test="${reachedLimit}">
<p class="uk-alert-warning uk-text-medium uk-float-left">
<span uk-icon="warning"></span> You have reached the maximum size of allowed registered services.
</p>
</c:if>
<div class="middle-box loginscreen animated fadeInDown ">
<div class="uk-width-1-1@m uk-width-1-1@s">
<c:if test="${empty registeredServices && showEmptyList}">
<p>You have not registered any service yet!</p>
<div class="uk-grid" uk-grid>
<div class="uk-width-expand@m">
<h4 class="uk-margin-remove-top uk-text-bold uk-text-primary">Registered services</h4>
<c:if test="${success != null}">
<div class="uk-text-success uk-margin-small-bottom">${success}</div>
<c:remove var="success" scope="session"/>
</c:if>
<c:if test="${registeredServices.size() > 0}">
<ul class="uk-list">
<div class="uk-alert-primary uk-flex uk-flex-middle">
<span uk-icon="info"></span>
<span class="uk-margin-small-left">You can register up to 5 services.</span>
</div>
<c:if test="${reachedLimit}">
<div class="uk-alert-warning uk-flex uk-flex-middle uk-margin-small-top">
<span uk-icon="warning"></span>
<span class="uk-margin-small-left">You have reached the maximum size of allowed registered services.</span>
</div>
</c:if>
</div>
<div class="uk-text-center uk-width-auto@m">
<c:choose>
<c:when test="${not reachedLimit}">
<a class="uk-button uk-button-primary" href="./registerService">
<span class="uk-icon" uk-icon="icon:plus-circle"></span>
<span class="uk-margin-small-left">New service</span>
</a>
</c:when>
<c:otherwise>
<button class="uk-button uk-button-default" disabled>
<span class="uk-icon" uk-icon="icon:plus-circle"></span>
<span class="uk-margin-small-left">New service</span>
</button>
</c:otherwise>
</c:choose>
<c:remove var="reachedLimit" scope="session"/>
</div>
</div>
<div class="uk-margin-medium-top">
<c:if test="${empty registeredServices && showEmptyList}">
<div class="uk-text-center">You have not registered any service yet!</div>
</c:if>
<c:if test="${registeredServices.size() > 0}">
<ul class="uk-list uk-list-divider">
<li>
<div class="uk-grid uk-child-width-1-3 uk-text-muted">
<div class="uk-grid uk-child-width-1-3 uk-text-muted" uk-grid>
<div>Name</div>
<div>Creation Date</div>
<div>Actions</div>
</div>
</li>
<c:forEach items="${registeredServices}" var="registeredService" varStatus="loop">
<c:set var="key" value="${registeredService.id}"/>
<li>
<hr class="uk-margin-remove-top">
<div class="uk-grid uk-child-width-1-3">
<div ><a uk-toggle="target: #details${registeredService.id}; animation: uk-animation-fade">${registeredService.name} <span uk-icon="icon:info;ratio:0.7"></span></a>
</div>
<div><fmt:formatDate value="${registeredService.date}" pattern="dd-MM-yyyy HH:mm" /></div>
<div>
<c:set var="key" value="${registeredService.id}"/>
<li>
<div class="uk-grid uk-child-width-1-3" uk-grid>
<div>
<a uk-toggle="target: #details${registeredService.id}; animation: uk-animation-fade">
<span>${registeredService.name}</span>
<span class="space" uk-icon="icon:info;ratio:0.7"></span>
</a>
</div>
<div><fmt:formatDate value="${registeredService.date}"
pattern="dd-MM-yyyy HH:mm"/>
</div>
<div>
<a href="./editRegisteredService?id=${registeredService.id}" class="uk-margin-small-right">
<span uk-icon="pencil"></span>
</a>
<a class="uk-text-danger" uk-icon="trash" uk-toggle="target: #modal${registeredService.id}"></a>
<a href="./editRegisteredService?id=${registeredService.id}"><span class="uk-margin-small-right" uk-icon="pencil" ></span>
<span class="uk-margin-small-right uk-text-danger" uk-icon="trash" uk-toggle="target: #modal${registeredService.id}"></span>
<!-- This is the modal -->
<div id="modal${registeredService.id}" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<form name="delete${registeredService.id}" id="delete${registeredService.id}" method="post">
<input type="hidden" name="id" value="${registeredService.id}"/>
<h2 class="uk-modal-title">Delete service</h2>
<p>Are you sure you want to delete the '${registeredService.name}' service? You cannot undo this action!</p>
<p class="uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-danger" type="button" onclick="document.delete${registeredService.id}.submit();document.getElementById('modal${registeredService.id}').style.visibility='hidden';">Delete</button>
</p>
</form>
</div>
<!-- This is the modal -->
<div id="modal${registeredService.id}" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<form name="delete${registeredService.id}"
id="delete${registeredService.id}" method="post">
<input type="hidden" name="id"
value="${registeredService.id}"/>
<h2 class="uk-margin-remove-top">Delete service</h2>
<div class="uk-margin-medium-bottom">
Are you sure you want to delete the
'${registeredService.name}' service? You cannot undo
this action!
</div>
<div class="uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel
</button>
<button class="uk-button uk-button-danger uk-margin-small-left" type="button"
onclick="document.delete${registeredService.id}.submit();document.getElementById('modal${registeredService.id}').style.visibility='hidden';">
Delete
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</li>
<li id="details${registeredService.id}" hidden="hidden" >
<div class="uk-alert">
<p><em>Name</em>: ${services[key].clientName}</p>
<p><em>Description</em>: ${services[key].clientDescription}</p>
<p><em>Scope</em>: openid</p>
<p><em>Grant type</em>: client credentials</p>
<p><em>Authentication Method</em>: Asymmetrically-signed JWT assertion</p>
<p><em>Token Endpoint Authentication Signing Algorithm</em>: RSASSA using SHA-256 hash algorithm</p>
<p><em>Public Key Set(*)</em>: <pre><code>${keys[key]}</code></pre></p>
<p><em>Creation Date</em>: ${services[key].createdAt}</p>
</p>
</div>
</li>
</li>
<li id="details${registeredService.id}" hidden="hidden">
<div class="uk-alert">
<p><span class="uk-text-primary">Name:</span> ${services[key].clientName}</p>
<p><span class="uk-text-primary">Description:</span> ${services[key].clientDescription}</p>
<p><span class="uk-text-primary">Scope:</span> openid</p>
<p><span class="uk-text-primary">Grant type:</span> client credentials</p>
<p><span class="uk-text-primary">Authentication Method</span> Asymmetrically-signed JWT assertion</p>
<p><span class="uk-text-primary">Token Endpoint Authentication Signing Algorithm</span> RSASSA using
SHA-256 hash algorithm</p>
<p><span class="uk-text-primary">Public Key Set</span>
<pre><code>${keys[key]}</code></pre>
</p>
<p><span class="uk-text-primary">Creation Date:</span>
<fmt:parseDate value="${services[key].createdAt}" var="date" pattern="yyyy-MM-dd'T'HH:mm:ssZ" />
<fmt:formatDate value="${date}"
pattern="dd-MM-yyyy HH:mm"/>
</p>
</div>
</li>
</c:forEach>
</ul>
</c:if>
<div class="uk-text-center">
<c:choose>
<c:when test="${not reachedLimit}">
<a class="uk-button uk-button-default uk-button-primary uk-margin-top" href="./registerService">
<span class="uk-icon" uk-icon="icon:plus-circle"></span> New service
</a>
</c:when>
<c:otherwise>
<button class="uk-button uk-button-default uk-margin-top" disabled>
<span class="uk-icon" uk-icon="icon:plus-circle"> New service</span>
</button>
</c:otherwise>
</c:choose>
<c:remove var="reachedLimit" scope="session"/>
</div>
</div>
</c:if>
</div>
</div>
<!-- END OF CENTER SIDE -->
</div>
</div>
<!-- CONTENT ENDS HERE -->
<!-- FOOTER STARTS HERE-->
<div class="custom-footer" style="z-index: 200;">
<div class="uk-section-primary uk-section uk-section-small">
<div class="uk-container">
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
<img alt="OpenAIRE" class="el-image" src="./images/Logo_Horizontal_white_small.png">
</div>
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
<div><a href="http://creativecommons.org/licenses/by/4.0/" target="_blank" rel="license"><img alt="Creative" src="./images/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
<div>OPENAIRE IS POWERED BY&nbsp;<a href="http://www.d-net.research-infrastructures.eu/">D-NET</a>.</div>
</div>
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop="">
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<c:import url="footer.jsp"/>
</div>
</body>
</html>