From 91c12cd802b3d68ce7f08797d477e02ed48536a1 Mon Sep 17 00:00:00 2001 From: unknown <89336274+huanis@users.noreply.github.com> Date: Sat, 11 Jun 2022 02:31:36 +0700 Subject: [PATCH] AdminAuth is now a utility class --- .../adminauth/model/AdminAuthorization.java | 13 ++++--------- .../id/ui/cs/deadliners/projects/model/Project.java | 6 +++--- .../templates/project-page/project_page.html | 6 ++++-- .../deadliners/adminauth/model/AdminAuthTest.java | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthorization.java b/src/main/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthorization.java index b06542d..329e0c0 100644 --- a/src/main/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthorization.java +++ b/src/main/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthorization.java @@ -3,33 +3,28 @@ package com.id.ui.cs.deadliners.adminauth.model; import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser; import com.id.ui.cs.deadliners.projects.model.dto.Response; import lombok.NoArgsConstructor; +import lombok.experimental.UtilityClass; import java.util.Set; -@NoArgsConstructor +@UtilityClass public class AdminAuthorization { - public static final AdminAuthorization instance = new AdminAuthorization(); - public static final String ERROR_MSG = "Failed to execute query"; - public static AdminAuthorization getInstance(){ - return instance; - } - private boolean checkAdmin(AppUser admin, AppUser currentUser){ return admin.getEmail().equals(currentUser.getEmail()); } public Response queryHandler(AppUser admin, AppUser currentUser, AppUser queriedUser, int query, Set<AppUser> memberList, Set<AppUser> pendingList){ - if (checkAdmin(admin, currentUser)){ + if (checkAdmin(admin, currentUser) && !checkAdmin(admin, queriedUser)){ switch(query){ case 1: return acceptUser(queriedUser, pendingList, memberList); case 2: return rejectUser(queriedUser, pendingList); default: - return kickMember(queriedUser, memberList); + kickMember(queriedUser, memberList); } } diff --git a/src/main/java/com/id/ui/cs/deadliners/projects/model/Project.java b/src/main/java/com/id/ui/cs/deadliners/projects/model/Project.java index 5c8d5ce..a5574df 100644 --- a/src/main/java/com/id/ui/cs/deadliners/projects/model/Project.java +++ b/src/main/java/com/id/ui/cs/deadliners/projects/model/Project.java @@ -59,7 +59,7 @@ public class Project implements Serializable { private Date createAt; private Response administrativeQuery(AppUser currentUser, AppUser queriedUser, int query){ - return AdminAuthorization.getInstance().queryHandler(admin, currentUser, queriedUser, query, members, pendingMembers); + return AdminAuthorization.queryHandler(admin, currentUser, queriedUser, query, members, pendingMembers); } public Response acceptUser(AppUser currentUser, AppUser queriedUser){ @@ -75,11 +75,11 @@ public class Project implements Serializable { } public Response addToPending(AppUser user){ - return AdminAuthorization.getInstance().addToPending(user, pendingMembers); + return AdminAuthorization.addToPending(user, pendingMembers); } public boolean isMember(AppUser user) { - return AdminAuthorization.getInstance().isMember(user, members); + return AdminAuthorization.isMember(user, members); } public boolean isAdmin(AppUser user){ diff --git a/src/main/resources/templates/project-page/project_page.html b/src/main/resources/templates/project-page/project_page.html index ba50233..0dfc1c3 100644 --- a/src/main/resources/templates/project-page/project_page.html +++ b/src/main/resources/templates/project-page/project_page.html @@ -144,7 +144,8 @@ <li class="list-group-item"> <div class="link-project-name subproject-content" th:text="${member.getFirstName() + ' ' + member.getLastName()}" style="display: inline-block; float: left;"></div> - <form th:if="${admin}" th:action="@{/member-management/kick}" method="GET" style="display: inline-block; float: right;"> + <div th:if="${!project.isAdmin(member)}"> + <form th:if="${admin}" th:action="@{/member-management/kick}" method="POST" style="display: inline-block; float: right;"> <input type="hidden" name="email" th:value="${member.getEmail()}" /> <input type="hidden" name="projectId" th:value="${project.getId()}" /> <button @@ -154,6 +155,7 @@ Kick </button> </form> + </div> </li> </ul> @@ -170,7 +172,7 @@ <li class="list-group-item"> <div class="link-project-name subproject-content" th:text="${pendingMember.getFirstName() + ' ' + pendingMember.getLastName()}" style="display: inline-block; float: left;"></div> - <form class="form-group" th:action="@{/member-management/reject}" method="GET" style="display: inline-block; float: right; margin-left: 10px; margin-right: 10px;"> + <form class="form-group" th:action="@{/member-management/reject}" method="POST" style="display: inline-block; float: right; margin-left: 10px; margin-right: 10px;"> <input type="hidden" name="email" th:value="${pendingMember.getEmail()}" /> <input type="hidden" name="projectId" th:value="${project.getId()}" /> <button diff --git a/src/test/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthTest.java b/src/test/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthTest.java index 60410a9..3f6ddcc 100644 --- a/src/test/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthTest.java +++ b/src/test/java/com/id/ui/cs/deadliners/adminauth/model/AdminAuthTest.java @@ -7,6 +7,6 @@ import org.junit.jupiter.api.Test; class AdminAuthTest { @Test void testAdminAuthIsSingleton(){ - assertSame(AdminAuthorization.getInstance(), AdminAuthorization.getInstance()); + } } -- GitLab