Index: src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -1,4 +1,5 @@
 package com.db.finki.www.build_board.controller.thread_controller;
 
+import com.db.finki.www.build_board.entity.blacklisted_user.BlacklistedUser;
 import com.db.finki.www.build_board.entity.entity_enum.Status;
 import com.db.finki.www.build_board.entity.thread.Project;
@@ -7,4 +8,5 @@
 import com.db.finki.www.build_board.entity.user_type.Moderator;
 import com.db.finki.www.build_board.service.BlacklistedUserService;
+import com.db.finki.www.build_board.service.BlacklistedUserType;
 import com.db.finki.www.build_board.service.ReportService;
 import com.db.finki.www.build_board.service.thread.impl.DiscussionService;
@@ -19,4 +21,7 @@
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import org.springframework.web.servlet.view.RedirectView;
+
+import java.util.List;
+import java.util.Map;
 
 @Controller
@@ -173,5 +178,5 @@
         reportService.deny(reqId, feedbackDesc, user);
         return new RedirectView(
-                String.format("/topics/{id}/reports", topicId)
+                String.format("/topics/%s/reports", topicId)
         );
     }
@@ -179,6 +184,21 @@
     @GetMapping("{id}/blacklisted")
     public String getBlacklistedUsers(@PathVariable(name = "id") long topicId, Model model){
-
-        return "show-blacklisted-users.html";
+        Map<BlacklistedUserType, List<BlacklistedUser>> tmp = topicService.getBlacklistedUsersForTopicById(topicId);
+
+        model.addAttribute("current",  tmp.get(BlacklistedUserType.CURRENT));
+        model.addAttribute("previous",  tmp.get(BlacklistedUserType.PREVIOUS));
+
+        return "show-blacklisted-users";
+    }
+
+    @PostMapping("{id}/blacklisted/{userId}")
+    public RedirectView revokeBlacklistedUser(
+            @PathVariable(name = "id") long topicId,
+            @PathVariable(name = "userId") int blacklistedUserId
+                                             ){
+        blacklistedUserService.revoke(topicId,blacklistedUserId);
+        return new RedirectView(
+                String.format("/topics/%s/blacklisted", topicId)
+        );
     }
 }
Index: src/main/java/com/db/finki/www/build_board/repository/BlacklistedUserRepo.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/repository/BlacklistedUserRepo.java	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/java/com/db/finki/www/build_board/repository/BlacklistedUserRepo.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -3,5 +3,7 @@
 import com.db.finki.www.build_board.entity.blacklisted_user.BlacklistedUser;
 import com.db.finki.www.build_board.entity.blacklisted_user.BlacklistedUserId;
+import jakarta.transaction.Transactional;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
@@ -13,7 +15,17 @@
                 select *
                 from blacklisted_user bu
-                where bu.user_id=:userId and bu.topic_id = :topicId
+                where bu.end_date is NULL and bu.user_id=:userId and bu.topic_id = :topicId 
         ) 
     """)
     boolean isUserInBlacklist(@Param("userId") long userId, @Param("topicId") long topicId);
+
+    @Modifying
+    @Transactional
+    @Query(nativeQuery = true,
+    value = """
+    update blacklisted_user
+    set end_date = now()
+    where topic_id=:topic and user_id = :user
+""")
+    void revoke(@Param("topic") long topicId, @Param("user") int blacklistedUserId);
 }
Index: src/main/java/com/db/finki/www/build_board/service/BlacklistedUserService.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/BlacklistedUserService.java	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/java/com/db/finki/www/build_board/service/BlacklistedUserService.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -13,3 +13,7 @@
         return blacklistedUserRepo.isUserInBlacklist(userId, topicId);
     }
+
+    public void revoke(long topicId, int blacklistedUserId) {
+        blacklistedUserRepo.revoke(topicId,blacklistedUserId);
+    }
 }
Index: src/main/java/com/db/finki/www/build_board/service/BlacklistedUserType.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/BlacklistedUserType.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
+++ src/main/java/com/db/finki/www/build_board/service/BlacklistedUserType.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -0,0 +1,6 @@
+package com.db.finki.www.build_board.service;
+
+public enum BlacklistedUserType {
+    CURRENT,
+    PREVIOUS
+}
Index: src/main/java/com/db/finki/www/build_board/service/thread/impl/TopicServiceImpl.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/thread/impl/TopicServiceImpl.java	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/java/com/db/finki/www/build_board/service/thread/impl/TopicServiceImpl.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -9,9 +9,14 @@
 import com.db.finki.www.build_board.repository.thread.TagRepository;
 import com.db.finki.www.build_board.repository.thread.TopicRepository;
+import com.db.finki.www.build_board.service.BlacklistedUserType;
 import com.db.finki.www.build_board.service.thread.itf.TopicService;
 import jakarta.transaction.Transactional;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
@@ -29,15 +34,15 @@
     public Topic create(String title, String description, BBUser user) {
         Topic topic = new Topic();
-        
+
         topic.setTitle(title);
         topic.setContent(description);
         topic.setUser(user);
-        
+
         return topicRepository.save(topic);
     }
 
-    public Topic create(String title, String description, BBUser user, Project parent){
+    public Topic create(String title, String description, BBUser user, Project parent) {
         Topic topic = new Topic();
-        
+
         topic.setTitle(title);
         topic.setContent(description);
@@ -70,5 +75,7 @@
     @Override
     public Topic getById(Long id) {
-        return topicRepository.findById(id).orElse(null);
+        return topicRepository
+                .findById(id)
+                .orElse(null);
     }
 
@@ -76,16 +83,28 @@
     @Transactional
     public void addTagToTopic(Topic topic, String tagName, BBUser user) {
-        tagRepository.findByName(tagName).ifPresentOrElse(tag -> {
-            topic.getTags().add(tag);
-            tag.getThreads().add(topic);
-            topicRepository.save(topic);
-            tagRepository.save(tag);
-        },() -> {
-            Tag tag = new Tag(tagName,user);
-            tagRepository.save(tag);
-            topic.getTags().add(tag);
-            tag.getThreads().add(topic);
-            topicRepository.save(topic);
-        });
+        tagRepository
+                .findByName(tagName)
+                .ifPresentOrElse(tag -> {
+                            topic
+                                    .getTags()
+                                    .add(tag);
+                            tag
+                                    .getThreads()
+                                    .add(topic);
+                            topicRepository.save(topic);
+                            tagRepository.save(tag);
+                        },
+                        () -> {
+                            Tag tag = new Tag(tagName,
+                                    user);
+                            tagRepository.save(tag);
+                            topic
+                                    .getTags()
+                                    .add(tag);
+                            tag
+                                    .getThreads()
+                                    .add(topic);
+                            topicRepository.save(topic);
+                        });
     }
 
@@ -101,12 +120,23 @@
     public Topic deleteTagFromTopic(long id, String tagName) {
         Topic t = getById(id);
-        boolean removed = t.getTags().removeIf(tag -> tag.getName().equals(tagName));
-        if(!removed) throw new IllegalArgumentException("Tag not found");
+        boolean removed = t
+                .getTags()
+                .removeIf(tag -> tag
+                        .getName()
+                        .equals(tagName));
+        if (!removed) throw new IllegalArgumentException("Tag not found");
         return topicRepository.save(t);
     }
 
-    public List<BlacklistedUser> getBlacklistedUsersForTopicById(long id) {
-
+    public Map<BlacklistedUserType, List<BlacklistedUser>> getBlacklistedUsersForTopicById(long id) {
+        return topicRepository
+                .findById(id)
+                .getBlacklistedUsers()
+                .stream()
+                .collect(Collectors.groupingBy(
+                        b -> b.getEndTime() == null
+                                ? BlacklistedUserType.CURRENT
+                                : BlacklistedUserType.PREVIOUS
+                                              ));
     }
-
 }
Index: src/main/java/com/db/finki/www/build_board/service/thread/itf/TopicService.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/thread/itf/TopicService.java	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/java/com/db/finki/www/build_board/service/thread/itf/TopicService.java	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -1,10 +1,14 @@
 package com.db.finki.www.build_board.service.thread.itf;
 
+import com.db.finki.www.build_board.entity.blacklisted_user.BlacklistedUser;
 import com.db.finki.www.build_board.entity.thread.Project;
 import com.db.finki.www.build_board.entity.user_type.BBUser;
 import com.db.finki.www.build_board.entity.thread.BBThread;
 import com.db.finki.www.build_board.entity.thread.Topic;
+import com.db.finki.www.build_board.service.BlacklistedUserType;
 
 import java.util.List;
+import java.util.Map;
+
 public interface TopicService {
     Topic create(String title, String description, BBUser user);
@@ -18,3 +22,4 @@
     Topic edit(Topic t, String title, String description);
     Topic deleteTagFromTopic(long id, String tagName);
+    Map<BlacklistedUserType,List<BlacklistedUser>> getBlacklistedUsersForTopicById(long id);
 }
Index: src/main/resources/templates/show-blacklisted-users.html
===================================================================
--- src/main/resources/templates/show-blacklisted-users.html	(revision a3e93dd697cb8499a03e68113508a7c583f12f13)
+++ src/main/resources/templates/show-blacklisted-users.html	(revision eeaf5110d9fae7b25d85712436c597d2578a5209)
@@ -2,23 +2,94 @@
 <head>
     <meta charset="UTF-8">
-    <title>Reports</title>
+    <title>
+        Reports</title>
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
           rel="stylesheet">
 </head>
 <body>
-<div class="list-group-item d-flex gap-2 justify-content-between align-items-center ps-4 pe-4"
-     th:each="blacklistedUser : ${blacklistedUsers}">
-    <div class="d-flex flex-row align-items-center gap-3">
-        <img class="rounded-circle border border-1 border-info"
-             style="width: 5em; height: 5em"
-             th:src="${blacklistedUser.getAvatarUrl()}">
-        <h5 class="mb-1 d-flex">
-            <a th:href="@{/{username}/profile (username=${blacklistedUser.getUsername()})}"
-               th:text="${blacklistedUser.getUsername()}"
-               class="text-decoration-none"
-            ></a>
-        </h5>
+<header>
+    <div th:replace="/home_pages/home :: navigation"></div>
+</header>
+<main class="d-flex align-items-center mt-5 flex-column">
+    <div class="list-group w-75">
+        <h1 class="text-center">
+            Latest</h1>
+        <div class="row fs-4" th:if="${!#lists.isEmpty(current)}">
+            <div class="col"></div>
+            <div class="col-auto "
+                 style="width: 7em">
+                <span>Start time</span>
+            </div>
+        </div>
+        <div class="list-group-item d-flex gap-2 justify-content-between align-items-center ps-4 pe-4"
+             th:each="blacklisted : ${current}">
+            <div class="d-flex flex-row align-items-center gap-3">
+                <img class="rounded-circle border border-1 border-info"
+                     style="width: 5em; height: 5em"
+                     th:src="${blacklisted.getRefersTo().getAvatarUrl()}">
+                <h5 class="mb-1 d-flex">
+                    <a th:href="@{/{username}/profile (username=${blacklisted.getRefersTo().getUsername()})}"
+                       th:text="${blacklisted.getRefersTo().getUsername()}"
+                       class="text-decoration-none"
+                    ></a>
+                    </a>
+                </h5>
+            </div>
+            <div class="d-flex gap-3 align-items-center">
+                <form method="post"
+                      th:action="@{/topics/{id}/blacklisted/{userId}(
+          id=${blacklisted.topic.getId()},
+          userId=${blacklisted.getRefersTo().getId()}
+      )}">
+                    <button class="btn btn-outline-danger btn-sm px-3">
+                        <i class="bi bi-x-circle me-1"></i>
+                        Revoke
+                    </button>
+                </form>
+                <p class="mb-0"
+                   th:text="${#temporals.format(blacklisted.getStartTime(), 'dd MMM yyyy')}"
+                   style="width: 7em">
+                    Start
+                    time</p>
+            </div>
+        </div>
     </div>
-    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
-</div>
+    <div class="mt-2 w-75">
+        <h1 class="text-center mb-0 mt-2">
+            Previous</h1>
+        <div class="list-group w-full">
+            <div class="d-flex fs-4 justify-content-end">
+                <span style="margin-right: 1em">Start time</span>
+                <span style="margin-right: 2em">End time</span>
+            </div>
+            <div class="list-group-item d-flex gap-2 justify-content-between align-items-center ps-4 pe-4"
+                 th:each="prev : ${previous}">
+                <div class="d-flex flex-row align-items-center gap-3">
+                    <img class="rounded-circle border border-1 border-info"
+                         style="width: 5em; height: 5em"
+                         th:src="${prev.getRefersTo().getAvatarUrl()}">
+                    <h5 class="mb-1 d-flex">
+                        <a th:href="@{/{username}/profile (username=${prev.getRefersTo().getUsername()})}"
+                           th:text="${prev.getRefersTo().getUsername()}"
+                           class="text-decoration-none"
+                        ></a>
+                    </h5>
+                </div>
+                <div class="d-flex gap-3 align-items-center">
+                    <p class="mb-0"
+                       style="width: 7em"
+                       th:text="${#temporals.format(prev.getStartTime(), 'dd MMM yyyy')}">
+                        Start
+                        time</p>
+                    <p class="mb-0"
+                       style="width: 7em"
+                       th:text="${#temporals.format(prev.getEndTime(), 'dd MMM yyyy')}">
+                        End
+                        time</p>
+                </div>
+            </div>
+        </div>
+    </div>
+</main>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
 </body>
