From 6cb1b91e057d951f3ee18ddbdfe8504ae00872e7 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Sat, 30 Mar 2024 09:42:23 +0700 Subject: [PATCH] Fixed using admin connection for all users --- .../dragonestia/picker/cp/page/NodeDetailsPage.java | 10 +++++++++- .../java/ru/dragonestia/picker/cp/page/NodesPage.java | 5 ++--- .../dragonestia/picker/cp/page/RoomDetailsPage.java | 10 +++++++++- .../dragonestia/picker/cp/page/UserDetailsPage.java | 11 ++++++++++- .../ru/dragonestia/picker/cp/page/UserSearchPage.java | 6 +++--- .../picker/service/impl/AccountServiceImpl.java | 2 ++ 6 files changed, 35 insertions(+), 9 deletions(-) diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodeDetailsPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodeDetailsPage.java index ef9eabd..2f7c986 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodeDetailsPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodeDetailsPage.java @@ -8,6 +8,7 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import jakarta.annotation.PostConstruct; import jakarta.annotation.security.RolesAllowed; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -16,6 +17,7 @@ import ru.dragonestia.picker.api.model.node.INode; import ru.dragonestia.picker.cp.component.RoomList; import ru.dragonestia.picker.cp.component.NavPath; import ru.dragonestia.picker.cp.component.RegisterRoom; +import ru.dragonestia.picker.cp.service.SecurityService; import ru.dragonestia.picker.cp.util.RouteParamsExtractor; @Getter @@ -25,13 +27,19 @@ import ru.dragonestia.picker.cp.util.RouteParamsExtractor; @Route(value = "/nodes/:nodeId", layout = MainLayout.class) public class NodeDetailsPage extends VerticalLayout implements BeforeEnterObserver { - private final RoomPickerClient client; + private final SecurityService securityService; private final RouteParamsExtractor paramsExtractor; + private RoomPickerClient client; private INode node; private RegisterRoom registerRoom; private RoomList roomList; + @PostConstruct + void postConstruct() { + client = securityService.getAuthenticatedAccount().getClient(); + } + @Override public void beforeEnter(BeforeEnterEvent event) { node = paramsExtractor.extractNode(event); diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodesPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodesPage.java index a6b7dd1..e1d69cf 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodesPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/NodesPage.java @@ -8,7 +8,6 @@ import com.vaadin.flow.router.RouteAlias; import jakarta.annotation.security.RolesAllowed; import org.springframework.beans.factory.annotation.Autowired; import ru.dragonestia.picker.api.exception.ApiException; -import ru.dragonestia.picker.api.impl.RoomPickerClient; import ru.dragonestia.picker.api.repository.NodeRepository; import ru.dragonestia.picker.cp.component.NavPath; import ru.dragonestia.picker.cp.component.NodeList; @@ -25,8 +24,8 @@ public class NodesPage extends VerticalLayout { private final NodeList nodeList; @Autowired - public NodesPage(RoomPickerClient client, SecurityService securityService) { - this.nodeRepository = client.getNodeRepository(); + public NodesPage(SecurityService securityService) { + this.nodeRepository = securityService.getAuthenticatedAccount().getClient().getNodeRepository(); add(NavPath.rootNodes()); diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/RoomDetailsPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/RoomDetailsPage.java index 5d471d1..d91b978 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/RoomDetailsPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/RoomDetailsPage.java @@ -13,6 +13,7 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import jakarta.annotation.PostConstruct; import jakarta.annotation.security.RolesAllowed; import lombok.RequiredArgsConstructor; import ru.dragonestia.picker.api.impl.RoomPickerClient; @@ -25,6 +26,7 @@ import ru.dragonestia.picker.cp.component.AddUsers; import ru.dragonestia.picker.cp.component.NavPath; import ru.dragonestia.picker.cp.component.Notifications; import ru.dragonestia.picker.cp.component.UserList; +import ru.dragonestia.picker.cp.service.SecurityService; import ru.dragonestia.picker.cp.util.RouteParamsExtractor; import java.util.Collection; @@ -37,15 +39,21 @@ import java.util.stream.Collectors; @Route(value = "/nodes/:nodeId/rooms/:roomId", layout = MainLayout.class) public class RoomDetailsPage extends VerticalLayout implements BeforeEnterObserver { - private final RoomPickerClient client; + private final SecurityService securityService; private final RouteParamsExtractor paramsExtractor; + private RoomPickerClient client; private INode node; private ResponseRoom room; private UserList userList; private Button lockRoomButton; private VerticalLayout roomInfo; + @PostConstruct + void postConstruct() { + client = securityService.getAuthenticatedAccount().getClient(); + } + @Override public void beforeEnter(BeforeEnterEvent event) { node = paramsExtractor.extractNode(event); diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserDetailsPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserDetailsPage.java index cbb921c..85552f2 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserDetailsPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserDetailsPage.java @@ -11,6 +11,7 @@ import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import jakarta.annotation.PostConstruct; import jakarta.annotation.security.RolesAllowed; import lombok.RequiredArgsConstructor; import ru.dragonestia.picker.api.impl.RoomPickerClient; @@ -19,6 +20,7 @@ import ru.dragonestia.picker.api.model.room.ShortResponseRoom; import ru.dragonestia.picker.api.model.user.IUser; import ru.dragonestia.picker.api.repository.query.user.FindRoomsLinkedWithUser; import ru.dragonestia.picker.cp.component.RefreshableTable; +import ru.dragonestia.picker.cp.service.SecurityService; import ru.dragonestia.picker.cp.util.RouteParamsExtractor; import java.util.List; @@ -30,11 +32,18 @@ import java.util.Objects; @Route(value = "/users/:userId", layout = MainLayout.class) public class UserDetailsPage extends VerticalLayout implements BeforeEnterObserver, RefreshableTable { - private final RoomPickerClient client; + private final SecurityService securityService; private final RouteParamsExtractor paramsExtractor; + + private RoomPickerClient client; private IUser user; private Grid gridRooms; + @PostConstruct + void postConstruct() { + client = securityService.getAuthenticatedAccount().getClient(); + } + @Override public void beforeEnter(BeforeEnterEvent event) { user = paramsExtractor.extractUser(event); diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java index e3dbd3a..a8120b2 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java @@ -15,13 +15,13 @@ import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import jakarta.annotation.security.RolesAllowed; import org.springframework.beans.factory.annotation.Autowired; -import ru.dragonestia.picker.api.impl.RoomPickerClient; import ru.dragonestia.picker.api.model.user.IUser; import ru.dragonestia.picker.api.model.user.UserDetails; import ru.dragonestia.picker.api.repository.UserRepository; import ru.dragonestia.picker.api.repository.query.user.SearchUsers; import ru.dragonestia.picker.api.repository.type.UserIdentifier; import ru.dragonestia.picker.cp.component.RefreshableTable; +import ru.dragonestia.picker.cp.service.SecurityService; import java.util.LinkedList; import java.util.List; @@ -39,8 +39,8 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable { private List cachedUsers = new LinkedList<>(); @Autowired - public UserSearchPage(RoomPickerClient client) { - this.userRepository = client.getUserRepository(); + public UserSearchPage(SecurityService securityService) { + this.userRepository = securityService.getAuthenticatedAccount().getClient().getUserRepository(); foundUsers = new Span(); add(fieldUsername = createUsernameInputField()); diff --git a/server/src/main/java/ru/dragonestia/picker/service/impl/AccountServiceImpl.java b/server/src/main/java/ru/dragonestia/picker/service/impl/AccountServiceImpl.java index 2ed282f..6eb3020 100644 --- a/server/src/main/java/ru/dragonestia/picker/service/impl/AccountServiceImpl.java +++ b/server/src/main/java/ru/dragonestia/picker/service/impl/AccountServiceImpl.java @@ -28,6 +28,8 @@ public class AccountServiceImpl implements AccountService { void init() { var account = createNewAccount("admin", "qwerty123"); account.setAuthorities(Arrays.stream(Permission.values()).collect(Collectors.toSet())); + + createNewAccount("test", "qwerty123"); } public @NotNull Account createNewAccount(@NotNull String username, @NotNull String password) {