Index: src/main/resources/templates/common/navbar.html
===================================================================
--- src/main/resources/templates/common/navbar.html	(revision 194776a42ab45f74d99c7afd74d5674184e9d8ae)
+++ src/main/resources/templates/common/navbar.html	(revision 5306751d2d24af6bfb27078e1727d579fa8b5939)
@@ -9,6 +9,6 @@
     <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
         <div class="container-fluid">
-            <a class="navbar-brand" href="#">
-                <img th:src="@{image/charity.png}" class="bi me-2" width="40" height="32" />
+            <a class="navbar-brand" th:href="@{/}">
+                <img th:src="@{/image/charity.png}" class="bi me-2" width="40" height="32" />
                 <span class="fs-4">Charitable</span>
             </a>
@@ -20,11 +20,13 @@
                 <ul class="navbar-nav me-auto mb-2 mb-md-0">
                     <li class="nav-item">
-                        <a th:href="@{/}" class="nav-link px-2 text-white">Home</a>
+                        <a sec:authorize="isAnonymous() or hasAuthority('USER')" th:href="@{/}" class="nav-link px-2 text-white">Home</a>
                     </li>
                     <li class="nav-item">
-                        <a th:href="@{/album?page=1}" class="nav-link px-2 text-white">Posts</a>
+                        <a sec:authorize="isAnonymous() or hasAuthority('USER')" th:href="@{/album?page=1}" class="nav-link px-2 text-white">Posts</a>
+                        <a sec:authorize="hasAuthority('MODERATOR')" th:href="@{/moderator/approval}" class="nav-link px-2 text-white">Posts for approval</a>
                     </li>
                     <li class="nav-item">
-                        <a th:href="@{/upload}" class="nav-link px-2 text-white">Upload</a>
+                        <a sec:authorize="hasAuthority('USER')" th:href="@{/upload}" class="nav-link px-2 text-white">Upload</a>
+                        <a sec:authorize="hasAuthority('MODERATOR')" th:href="@{/moderator/report}" class="nav-link px-2 text-white">Reported posts</a>
                     </li>
                 </ul>
Index: src/main/resources/templates/moderatorPost.html
===================================================================
--- src/main/resources/templates/moderatorPost.html	(revision 5306751d2d24af6bfb27078e1727d579fa8b5939)
+++ src/main/resources/templates/moderatorPost.html	(revision 5306751d2d24af6bfb27078e1727d579fa8b5939)
@@ -0,0 +1,97 @@
+<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml" xmlns:sec="http://www.w3.org/1999/xhtml">
+<head>
+    <meta charset="UTF-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1"/>
+    <title>Register</title>
+    <!-- Bootstrap core CSS -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet"/>
+    <link href="/css/carousel.css" rel="stylesheet"/>
+    <meta name="theme-color" content="#7952b3"/>
+</head>
+<body>
+<header th:replace="common/navbar :: navbar"></header>
+<br/>
+<br/>
+<br/>
+<div th:if="${notFound}">
+    Post not found
+</div>
+<div th:unless="${notFound}">
+    <div class="row">
+        <div class="col-md-6" style="margin-left: 5px">
+            <div class="col-md-12">
+
+                <div id="myCarousel" class="carousel carousel-dark slide card" data-bs-ride="carousel">
+                    <div class="carousel-indicators">
+                        <button th:each="image, itrStat : ${post.moderatorPath}" type="button" data-bs-target="#myCarousel"
+                                th:data-bs-slide-to="${itrStat.index}" th:classappend="${itrStat.index} == 0 ? active"></button>
+                    </div>
+                    <div class="carousel-inner">
+                        <div th:each="image, itrStat : ${post.moderatorPath}" th:classappend="${itrStat.index} == 0 ? active"
+                             class="carousel-item">
+                            <img class="card-img" th:src="${image}" style="object-fit: contain">
+                        </div>
+                    </div>
+                    <button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">
+                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+                        <span class="visually-hidden">Previous</span>
+                    </button>
+                    <button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">
+                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
+                        <span class="visually-hidden">Next</span>
+                    </button>
+                </div>
+            </div>
+        </div>
+        <div class="col-md-5" style="margin-left: 5px">
+            <div class="col-md-12">
+                <h1 th:text="${post.title}"></h1>
+                <h5>Description:</h5>
+                <p th:text="${post.description}"></p>
+                <h5>Funds needed:</h5>
+                <p><span th:text="${total}"></span>/<span th:text="${post.fundsNeeded}"></span> - <span th:text="${post.currency}"></span></p>
+                <h5>Date due:</h5>
+                <p th:text="${post.dateDue}"></p>
+                <h5>Bank account:</h5>
+                <p th:text="${post.bankAccount}"></p>
+                <h5>Phone numbers:</h5>
+                <p><span th:text="${post.phoneNumbers[0]}"></span> - Telekom</p>
+                <p><span th:text="${post.phoneNumbers[1]}"></span> - A1</p>
+                <h5>Created by:</h5>
+                <p><span th:text="${createdByFirstName}"></span> <span th:text="${createdByLastName}"></span></p>
+
+                <a class="btn btn-success" th:href="@{/moderator/approvePost(postid=${post.id})}">Approve</a>
+                <button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#staticBackdrop">
+                    Dont Approve
+                </button>
+
+                <!-- Modal -->
+                <div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
+                    <div class="modal-dialog modal-dialog-centered">
+                        <div class="modal-content">
+                            <div class="modal-header">
+                                <h5 class="modal-title" id="staticBackdropLabel">Donate</h5>
+                                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
+                            </div>
+                            <div class="modal-body">
+                                <div class="card-body">
+                                    <form th:action="@{/moderator/dontApprove(postid=${post.id})}" method="post" id="myForm">
+                                        <label for="description">Description</label>
+                                        <textarea class="form-control" id="description" name="description" rows="5"></textarea>
+                                    </form>
+                                </div>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
+                                <input type="submit" class="btn btn-primary" form="myForm" value="Confirm">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="/js/bootstrap.min.js"></script>
+</body>
+</html>
Index: src/main/resources/templates/postApproval.html
===================================================================
--- src/main/resources/templates/postApproval.html	(revision 5306751d2d24af6bfb27078e1727d579fa8b5939)
+++ src/main/resources/templates/postApproval.html	(revision 5306751d2d24af6bfb27078e1727d579fa8b5939)
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
+<head>
+    <meta charset="UTF-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1"/>
+    <title>Album</title>
+    <!-- Bootstrap core CSS -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet"/>
+</head>
+<body>
+<header th:replace="common/navbar :: navbar"></header>
+<hr class="dropdown-divider">
+<br/>
+<br/>
+<main>
+    <p th:if="${noPosts}">No posts</p>
+    <div th:unless="${noPosts}" class="album py-5 bg-light">
+        <div class="container">
+
+            <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
+                <div class="col" th:each="post : ${postList}">
+                    <div class="card shadow-sm">
+                        <img class="card-img" style="object-fit: contain" width="100%" height="225"
+                             th:src="${post.imagesPath[0]}">
+                        <div class="card-body overflow-hidden">
+                            <h4 th:text="${post.title}" style="height: 60px"></h4>
+                            <p class="card-text text-truncate" style="height: 45px" th:text="${post.description}"></p>
+                            <div class="d-flex justify-content-between align-items-center">
+                                <div class="btn-group">
+                                    <a class="btn btn-sm btn-outline-secondary" th:href="@{/moderator/post(postid=${post.id})}">Open</a>
+                                </div>
+                                <span class="text-muted">Date due: <small th:text="${post.dateDue}"></small></span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <hr class="ui-menu-divider" />
+    </div>
+
+</main>
+<script src="/js/bootstrap.min.js"></script>
+</body>
+</html>
