keycloak registration done

This commit is contained in:
Jottyfan
2022-12-09 22:23:54 +01:00
parent b6658655be
commit 29e8ff7798
10 changed files with 248 additions and 53 deletions

View File

@ -1,22 +1,22 @@
# database credentials from defined config file
spring.config.import=/etc/CampOrganizer2/prod.properties
spring.config.import = /etc/CampOrganizer2/prod.properties
# define overwriteable arguments
spring.datasource.driver-class-name=${spring.datasource.driver-class-name:org.postgresql.Driver}
spring.datasource.url=${spring.datasource.url}
spring.datasource.username=${spring.datasource.username}
spring.datasource.password=${spring.datasource.password}
spring.datasource.driver-class-name = ${spring.datasource.driver-class-name:org.postgresql.Driver}
spring.datasource.url = ${spring.datasource.url}
spring.datasource.username = ${spring.datasource.username}
spring.datasource.password = ${spring.datasource.password}
server.servlet.context-path=${server.servlet.context-path:/CampOrganizer2}
server.servlet.context-path = ${server.servlet.context-path:/CampOrganizer2}
keycloak.auth-server-url=${keycloak.auth-server-url}
keycloak.realm=${keycloak.realm:ow}
keycloak.resource=${keycloak.resource:biblecamp}
keycloak.public-client=${keycloak.public-client}
keycloak.use-resource-role-mappings=${keycloak.use-resource-role-mappings}
keycloak.auth-server-url = ${keycloak.auth-server-url}
keycloak.realm = ${keycloak.realm:ow}
keycloak.resource = ${keycloak.resource:biblecamp}
keycloak.public-client = ${keycloak.public-client}
keycloak.use-resource-role-mappings = ${keycloak.use-resource-role-mappings}
ow.keycloak.admin.name=${ow.keycloak.admin.name}
ow.keycloak.admin.password=${ow.keycloak.admin.password}
ow.keycloak.admin.name = ${ow.keycloak.admin.name}
ow.keycloak.admin.password = ${ow.keycloak.admin.password}
# for development only
server.port = 8081

View File

@ -28,7 +28,7 @@
</script>
<div class="accordion" id="acc">
<div class="accordion-item" th:each="b : ${mybookings}">
<h2 class="accordion-header" th:id="'acc-head-' + ${b.pk}">
<h2 class="accordion-header" th:id="'acc-head-' + ${b.pk}" th:if="${b.pk}">
<button th:class="'accordion-button collapsed acc_' + ${b.accept}" type="button" data-bs-toggle="collapse" th:data-bs-target="'#acc-body-' + ${b.pk}" aria-expanded="true"
th:aria-controls="'#acc-body-' + ${b.pk}">
<i class="fas fa-check framed framed-green" th:if="${b.accept}"></i> <i class="fas fa-ban framed framed-red" th:if="${b.accept} == false"></i> <i
@ -37,7 +37,7 @@
th:text="${b.locationName}"></span>
</button>
</h2>
<div th:id="'acc-body-' + ${b.pk}" class="accordion-collapse collapse" th:aria-labelledby="'acc-head-' + ${b.pk}">
<div th:id="'acc-body-' + ${b.pk}" class="accordion-collapse collapse" th:aria-labelledby="'acc-head-' + ${b.pk}" th:if="${b.pk}">
<div class="accordion-body">
<div class="card">
<div class="card-header">Freizeitdaten</div>
@ -112,7 +112,7 @@
</div>
<div class="row mb-2">
<div class="col-sm-2">Foto-Einverständnis:</div>
<span class="col-sm-10" th:text="${b.consentCatalogPhoto ? 'ja' : 'nein'}"></span>
<span class="col-sm-10"><span th:text="${b.consentCatalogPhoto ? 'ja' : 'nein'}" th:if="${b.consentCatalogPhoto}"></span></span>
</div>
<div class="row mb-2">
<div class="col-sm-2">Kommentar:</div>
@ -120,9 +120,12 @@
</div>
<div class="row mb-2">
<div class="col-sm-2"></div>
<div class="col-sm-10">
<div class="col-sm-8">
<input type="submit" class="btn btn-primary" value="Änderungen übernehmen" />
</div>
<div class="col-sm-2">
<a th:href="@{/registration/cancel/{id}(id=${b.pk})}" class="btn btn-outline-danger">stornieren</a>
</div>
</div>
</div>
</form>

View File

@ -13,7 +13,7 @@
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item">
<a class="btn btn-icon-silent menufont" href="http://anmeldung.onkelwernerfreizeiten.de">Unsere Freizeiten</a>
<a class="btn btn-icon-silent menufont" th:href="@{/}">Unsere Freizeiten</a>
</li>
</ul>
</th:block>
@ -56,7 +56,7 @@
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<a class="btn btn-primary buttonfont" href="http://anmeldung.onkelwernerfreizeiten.de">jetzt anmelden</a>
<a class="btn btn-primary buttonfont" th:href="@{/registration/{id}(id=${c.pk})}">jetzt anmelden</a>
</div>
</div>
</div>

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<title>Camp Organizer 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<th:block layout:fragment="header">
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{${keycloakProfileUrl}}" class="btn btn-secondary btn-icon-silent" target="_blank">Profil</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/business}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business')">Abrechnung</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('registrator')">Bestätigung</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent" target="_blank">Nextcloud</a></li>
</ul>
</th:block>
<th:block layout:fragment="content">
<div class="mainpage">
<div class="alert alert-warning">
<span th:if="${bean.isStudent}">Willst du deine Anmeldung wirklich stornieren und damit den Freizeitplatz für einen anderen Teilnehmer freigeben? Diese Stornierung kann nicht
rückgängig gemacht werden.</span> <span th:if="${!bean.isStudent}">Willst du deine Anmeldung wirklich stornieren?</span>
</div>
<div class="card">
<div class="card-header">
<span th:text="${bean.campName + ' ' + #temporals.format(bean.arrive, 'dd.MM.') + ' - ' + #temporals.format(bean.depart, 'dd.MM.yyyy')}"
th:if="${bean.arrive != null and bean.depart != null}"></span>
</div>
<div class="card-body">
<span th:text="${bean.forename + ' ' + bean.surname}"></span>,&nbsp;<span th:if="${bean.isStudent}">Teilnehmer</span><span th:if="${bean.isTeacher}">Mitarbeiter</span> <span
th:if="${bean.isDirector}">Leiter</span><span th:if="${bean.isFeeder}">Küchenhilfe</span>
</div>
<div class="card-footer">
<a th:href="@{/registration/remove/{id}(id=${bean.pk})}" class="btn btn-danger">Ja, stornieren</a> &nbsp;<a th:href="@{/dashboard}" class="btn btn-outline-success">Stornierung abbrechen</a>
</div>
</div>
</div>
</th:block>
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<title>Camp Organizer 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<th:block layout:fragment="header">
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{${keycloakProfileUrl}}" class="btn btn-secondary btn-icon-silent" target="_blank">Profil</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/business}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('business')">Abrechnung</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a th:href="@{/confirmation}" class="btn btn-secondary btn-icon-silent" sec:authorize="hasRole('registrator')">Bestätigung</a></li>
</ul>
<ul class="navbar-nav mb-2 mb-lg-0">
<li class="nav-item"><a href="https://www.onkelwernerfreizeiten.de/cloud" class="btn btn-secondary btn-icon-silent" target="_blank">Nextcloud</a></li>
</ul>
</th:block>
<th:block layout:fragment="content">
<div class="mainpage">
<div class="alert alert-success">
Deine Anmeldung wurde entgegengenommen. Falls du dir auch ein Login eingerichtet hast, kannst du dich jetzt oben rechts einloggen und deine Anmeldung bearbeiten.
</div>
<div><a th:href="@{/}" class="btn btn-outline-secondary">zur Hauptseite</a></div>
</div>
</th:block>
</body>
</html>