Browse Source

Role policies, custom login form and custom handlers

dagarcos 2 years ago
parent
commit
eeccdf6c10

+ 11 - 19
src/main/resources/templates/admin.html

@@ -8,30 +8,22 @@
 </head>
 <body>
 	<header>
-	  <div class="collapse bg-dark" id="navbarHeader">
-	    <div class="container">
-	    </div>
-	  </div>
-	  <div class="navbar navbar-dark bg-dark shadow-sm">
-	    <div class="container">
-	    	<div class="dropdown">
-			  <button th:text="#{index.lang}" class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"></button>
-			  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
-			    <li><a class="dropdown-item" href="/?lang=en">EN</a></li>
-			    <li><a class="dropdown-item" href="/?lang=es">ES</a></li>
-			  </ul>
-			</div>
-	    </div>
-	  </div>
+	  <div class="navbar navbar-dark bg-dark box-shadow">
+	        <div class="container d-flex justify-content-between">
+	          <a href="/" class="navbar-brand d-flex align-items-center">
+	            <strong>Messages</strong>
+	          </a>
+	        </div> 
+	        <a th:if="${#authentication.isAuthenticated()}" href="/logout" class="navbar-brand d-flex align-items-center" style="float:right;font-size:90%;">
+	            <strong>Logout</strong>
+	        </a>
+      </div>
 	</header>
 	<main>
 		<section class="py-5 text-center container">
 		  <div class="row py-lg-5">
 		    <div class="col-lg-6 col-md-8 mx-auto">
-		      <h1 class="fw-light" th:text="#{index.title}">Meetup</h1>
-		      <p>
-		        <span class="btn btn-primary my-2" data-bs-toggle="modal" data-bs-target="#newMeetingModal" th:text="#{index.btn.add}">Add Meeting</span>
-		      </p>
+		      <h1 class="fw-light">Messages</h1>
 		    </div>
 		  </div>
 		</section>

+ 3 - 30
src/main/resources/templates/index.html

@@ -14,6 +14,9 @@
 	            <strong>Messages</strong>
 	          </a>
 	        </div>
+	        <a th:if="${#authorization.expression('isAuthenticated()')}" href="/logout" class="navbar-brand d-flex align-items-center" style="float:right;font-size:90%;">
+	            <strong>Logout</strong>
+	        </a>
       </div>
 	</header>
 	<main>
@@ -35,36 +38,6 @@
 
 	</main>
 	
-	<div class="modal fade" id="newMeetingModal" role="dialog" aria-labelledby="newMeetingModal" aria-hidden="true">
-	  <div class="modal-dialog modal-lg">
-	    <div class="modal-content">
-		    <div class="modal-header">
-		        <h5 class="modal-title">New Meeting</h5>
-		        <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
-		        	<span aria-hidden="true">&times;</span>
-		        </button>
-	        </div>
-	        <div class="modal-body">
-	        	<div class="container-fluid">
-			    	<form id="newMeetingForm" enctype='multipart/form-data' method="POST" action="/" style="margin-top:25px;">
-						<div class="form-group">
-							<label>Subject</label>
-							<input class="form-control" type="text" value="" name="subject">
-						</div>
-						<div class="form-group">
-							<label>Date</label>
-							<input class="form-control" type="text" value="" name="date" placeholder="DD/MM/YYYY HH:MM">
-						</div>
-					</form>
-				</div>
-			</div>
-			<div class="modal-footer">
-		        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
-		        <button class="btn btn-success" type="submit" form="newMeetingForm">Confirm</button>
-	        </div>
-	    </div>
-	  </div>
-	</div>
 	
     <script src="/dist/js/bootstrap.bundle.min.js"></script>   
 </body>

+ 8 - 1
src/main/resources/templates/messages.html

@@ -13,16 +13,23 @@
 	          <a href="/" class="navbar-brand d-flex align-items-center">
 	            <strong>Messages</strong>
 	          </a>
-	          <span class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#newMeetingModal" style="float:right;top:0;">New Message</span>
 	        </div>
+	        <a th:if="${#authentication.isAuthenticated()}" href="/logout" class="navbar-brand d-flex align-items-center" style="float:right;font-size:90%;">
+	            <strong>Logout</strong>
+	        </a>
       </div>
 	</header>
 	<main>
 		<section class="py-5 text-center container">
+			<span class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#newMeetingModal" style="float:right;top:0;">New Message</span>
 		  <div class="row py-lg-5">
 		    <div class="col-lg-6 col-md-8 mx-auto">
 		      <h1 class="fw-light">Messages</h1>
 		      <p>Welcome <span th:text="${#authentication.name}">Username</span></p>
+		      <p>You are logged in with the following authorities: <span th:text="${#authentication.authorities}">Authorities</span></p>
+		      <p>
+		      	<a th:if="${#authorization.expression('hasRole(''ROLE_ADMIN'')')}" href="/admin">Admin panel</a>
+		      </p>
 		    </div>
 		  </div>
 		</section>