diff --git a/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitEntity.java b/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitEntity.java index 01c4f55..125b83d 100644 --- a/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitEntity.java +++ b/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitEntity.java @@ -47,4 +47,6 @@ public class UnitEntity { @Column @JdbcTypeCode(SqlTypes.JSON) private String tokenSettings; + @Column + private Boolean adminEditable; } diff --git a/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitRepository.java b/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitRepository.java index 9f539e3..6be9c57 100644 --- a/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitRepository.java +++ b/src/main/java/ru/vyatsu/qr_access_admin/unit/entity/UnitRepository.java @@ -3,6 +3,9 @@ package ru.vyatsu.qr_access_admin.unit.entity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface UnitRepository extends JpaRepository { + List findAllByAdminEditableIsTrue(); } diff --git a/src/main/java/ru/vyatsu/qr_access_admin/unit/mapper/UnitEntityUnitModelMapper.java b/src/main/java/ru/vyatsu/qr_access_admin/unit/mapper/UnitEntityUnitModelMapper.java index ed6f366..2c363f3 100644 --- a/src/main/java/ru/vyatsu/qr_access_admin/unit/mapper/UnitEntityUnitModelMapper.java +++ b/src/main/java/ru/vyatsu/qr_access_admin/unit/mapper/UnitEntityUnitModelMapper.java @@ -1,8 +1,8 @@ package ru.vyatsu.qr_access_admin.unit.mapper; +import org.springframework.stereotype.Component; import ru.vyatsu.qr_access_admin.unit.entity.UnitEntity; import ru.vyatsu.qr_access_admin.unit.model.UnitModel; -import org.springframework.stereotype.Component; import java.util.Collection; import java.util.List; @@ -32,6 +32,7 @@ public class UnitEntityUnitModelMapper { entity.setTokenSettings(DEFAULT_TOKEN_SETTINGS); entity.setRedirectUris(""); entity.setPostLogoutRedirectUris(""); + entity.setAdminEditable(true); return entity; } @@ -42,6 +43,7 @@ public class UnitEntityUnitModelMapper { unitModel.setClientSecret(entity.getClientSecret()); unitModel.setClientName(entity.getClientName()); unitModel.setClientSecretExpiresAt(entity.getClientSecretExpiresAt()); + unitModel.setAdminEditable(entity.getAdminEditable()); return unitModel; } diff --git a/src/main/java/ru/vyatsu/qr_access_admin/unit/model/UnitModel.java b/src/main/java/ru/vyatsu/qr_access_admin/unit/model/UnitModel.java index 30c7f7b..bd7ac73 100644 --- a/src/main/java/ru/vyatsu/qr_access_admin/unit/model/UnitModel.java +++ b/src/main/java/ru/vyatsu/qr_access_admin/unit/model/UnitModel.java @@ -1,11 +1,11 @@ package ru.vyatsu.qr_access_admin.unit.model; -import ru.vyatsu.qr_access_admin.common.validation.IsAfter; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import ru.vyatsu.qr_access_admin.common.validation.IsAfter; import java.time.LocalDateTime; @@ -26,4 +26,6 @@ public class UnitModel { @NotBlank @Size(max = 255) private String clientName; + + private boolean adminEditable; } diff --git a/src/main/java/ru/vyatsu/qr_access_admin/unit/view/UnitView.java b/src/main/java/ru/vyatsu/qr_access_admin/unit/view/UnitView.java index da0fdd2..7e41217 100644 --- a/src/main/java/ru/vyatsu/qr_access_admin/unit/view/UnitView.java +++ b/src/main/java/ru/vyatsu/qr_access_admin/unit/view/UnitView.java @@ -31,6 +31,7 @@ public class UnitView extends VerticalLayout { var addButton = new Button("Добавить устройство", VaadinIcon.PLUS.create()); grid = new Grid<>(UnitModel.class); + grid.setColumns("clientId", "clientName", "clientSecretExpiresAt"); editor = new UnitEditor(); var actionsLayout = new HorizontalLayout(addButton); @@ -47,7 +48,7 @@ public class UnitView extends VerticalLayout { } private void refreshUnitsGrid() { - List entities = unitRepository.findAll(); + List entities = unitRepository.findAllByAdminEditableIsTrue(); grid.setItems(entityModelMapper.mapEntityToModel(entities)); } @@ -72,9 +73,11 @@ public class UnitView extends VerticalLayout { }); editor.setDeleteListener(unit -> { - unitRepository.deleteById(unit.getId()); - refreshUnitsGrid(); - editUnit(null); + if (unit.isAdminEditable()) { + unitRepository.deleteById(unit.getId()); + refreshUnitsGrid(); + editUnit(null); + } }); editor.setCancelListener(() -> editUnit(null));