Compare commits

..

No commits in common. "7dbfd775472b1b3a007b0140d554d1ff83cb998d" and "c847830a7eb5d6d4cfc5309d9a00bc10c2994b83" have entirely different histories.

14 changed files with 34 additions and 93 deletions

View File

@ -1,51 +1,49 @@
plugins {
java
id("org.springframework.boot") version "3.4.1"
id("io.spring.dependency-management") version "1.1.7"
id("com.vaadin") version "24.6.0"
java
id("org.springframework.boot") version "3.4.1"
id("io.spring.dependency-management") version "1.1.7"
id("com.vaadin") version "24.6.0"
}
group = "ru.vyatsu"
version = "1.0.0"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
repositories {
mavenCentral()
mavenCentral()
}
extra["vaadinVersion"] = "24.6.0"
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.vaadin:vaadin-spring-boot-starter")
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
implementation("org.yaml:snakeyaml")
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
runtimeOnly("org.postgresql:postgresql")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.vaadin:vaadin-spring-boot-starter")
implementation("org.yaml:snakeyaml")
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
runtimeOnly("org.postgresql:postgresql")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
dependencyManagement {
imports {
mavenBom("com.vaadin:vaadin-bom:${property("vaadinVersion")}")
}
imports {
mavenBom("com.vaadin:vaadin-bom:${property("vaadinVersion")}")
}
}
tasks.withType<Test> {
useJUnitPlatform()
useJUnitPlatform()
}

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.client.component.ClientEditor;
import ru.vyatsu.qr_access_admin.client.entity.ClientEntity;
import ru.vyatsu.qr_access_admin.client.entity.ClientRepository;
@ -17,7 +16,6 @@ import java.util.List;
@Route(value = "clients", layout = MainLayout.class)
@PageTitle("Клиенты")
@PermitAll
public class ClientView extends VerticalLayout {
private final ClientRepository repository;
private final Grid<ClientEntity> grid;

View File

@ -1,17 +0,0 @@
package ru.vyatsu.qr_access_admin.common.config;
import com.vaadin.flow.spring.security.VaadinWebSecurity;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends VaadinWebSecurity {
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.oauth2Login(c -> c.loginProcessingUrl("/login/oauth2/code/own"));
}
}

View File

@ -1,14 +1,12 @@
package ru.vyatsu.qr_access_admin.common.view;
import ru.vyatsu.qr_access_admin.common.MainLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.common.MainLayout;
@Route(value = "", layout = MainLayout.class)
@PageTitle("Start")
@PermitAll
public class MainView extends VerticalLayout {
}

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Query;
@ -23,7 +22,6 @@ import java.util.List;
@Route(value = "doors", layout = MainLayout.class)
@PageTitle("Двери")
@PermitAll
public class DoorView extends VerticalLayout {
private final Grid<DoorEntity> grid;
private final DoorRepository repository;

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.common.MainLayout;
import ru.vyatsu.qr_access_admin.partner.component.PartnerEditor;
import ru.vyatsu.qr_access_admin.partner.entity.PartnerEntity;
@ -17,7 +16,6 @@ import java.util.List;
@Route(value = "partners", layout = MainLayout.class)
@PageTitle("Партнеры")
@PermitAll
public class PartnerView extends VerticalLayout {
private final PartnerRepository repository;
private final Grid<PartnerEntity> grid;

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.common.MainLayout;
import ru.vyatsu.qr_access_admin.door.entity.DoorRepository;
import ru.vyatsu.qr_access_admin.qr.component.QrEditor;
@ -18,7 +17,6 @@ import java.util.List;
@Route(value = "qrs", layout = MainLayout.class)
@PageTitle("Коды")
@PermitAll
public class QrView extends VerticalLayout {
private final QrRepository repository;
private final Grid<QrEntity> grid;

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.common.MainLayout;
import ru.vyatsu.qr_access_admin.slot.component.SlotEditor;
import ru.vyatsu.qr_access_admin.slot.entity.SlotEntity;
@ -17,7 +16,6 @@ import java.util.List;
@Route(value = "slots", layout = MainLayout.class)
@PageTitle("Слоты")
@PermitAll
public class SlotView extends VerticalLayout {
private final SlotRepository repository;
private final Grid<SlotEntity> grid;

View File

@ -47,6 +47,4 @@ public class UnitEntity {
@Column
@JdbcTypeCode(SqlTypes.JSON)
private String tokenSettings;
@Column
private Boolean adminEditable;
}

View File

@ -3,9 +3,6 @@ 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<UnitEntity, String> {
List<UnitEntity> findAllByAdminEditableIsTrue();
}

View File

@ -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,7 +32,6 @@ public class UnitEntityUnitModelMapper {
entity.setTokenSettings(DEFAULT_TOKEN_SETTINGS);
entity.setRedirectUris("");
entity.setPostLogoutRedirectUris("");
entity.setAdminEditable(true);
return entity;
}
@ -43,7 +42,6 @@ public class UnitEntityUnitModelMapper {
unitModel.setClientSecret(entity.getClientSecret());
unitModel.setClientName(entity.getClientName());
unitModel.setClientSecretExpiresAt(entity.getClientSecretExpiresAt());
unitModel.setAdminEditable(entity.getAdminEditable());
return unitModel;
}

View File

@ -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,6 +26,4 @@ public class UnitModel {
@NotBlank
@Size(max = 255)
private String clientName;
private boolean adminEditable;
}

View File

@ -7,7 +7,6 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import ru.vyatsu.qr_access_admin.common.MainLayout;
import ru.vyatsu.qr_access_admin.unit.component.UnitEditor;
import ru.vyatsu.qr_access_admin.unit.entity.UnitEntity;
@ -19,7 +18,6 @@ import java.util.List;
@Route(value = "units", layout = MainLayout.class)
@PageTitle("Устройства")
@PermitAll
public class UnitView extends VerticalLayout {
private final UnitRepository unitRepository;
@ -33,7 +31,6 @@ 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);
@ -50,7 +47,7 @@ public class UnitView extends VerticalLayout {
}
private void refreshUnitsGrid() {
List<UnitEntity> entities = unitRepository.findAllByAdminEditableIsTrue();
List<UnitEntity> entities = unitRepository.findAll();
grid.setItems(entityModelMapper.mapEntityToModel(entities));
}
@ -75,11 +72,9 @@ public class UnitView extends VerticalLayout {
});
editor.setDeleteListener(unit -> {
if (unit.isAdminEditable()) {
unitRepository.deleteById(unit.getId());
refreshUnitsGrid();
editUnit(null);
}
unitRepository.deleteById(unit.getId());
refreshUnitsGrid();
editUnit(null);
});
editor.setCancelListener(() -> editUnit(null));

View File

@ -9,20 +9,6 @@ spring:
password: 123
security:
oauth2:
client:
registration:
own:
clientId: ${CLIENT_ID:admin}
clientSecret: ${CLIENT_SECRET:}
authorizationGrantType: authorization_code
clientAuthenticationMethod: none
scope:
- admin
- openid
redirectUri: "{baseUrl}/login/oauth2/code/{registrationId}"
provider:
own:
issuerUri: http://127.0.0.1:8081
jwkSetUri: http://127.0.0.1:8081/oauth2/jwks
tokenUri: http://127.0.0.1:8081/oauth2/token
authorizationUri: http://127.0.0.1:8081/oauth2/authorize
resourceserver:
jwt:
jwk-set-uri: http://localhost:8081/oauth2/jwks