Clean code update 1 #1
@@ -18,37 +18,37 @@ import org.springframework.security.crypto.password.PasswordEncoder;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Route(value = "admin/users", layout = MainLayout.class)
|
@Route(value = "admin/user-management", layout = MainLayout.class)
|
||||||
@PageTitle("Benutzerverwaltung")
|
@PageTitle("User Management")
|
||||||
@RolesAllowed("ROLE_ADMIN")
|
@RolesAllowed("ROLE_ADMIN")
|
||||||
public class UserAdminView extends VerticalLayout {
|
public class UserManagementView extends VerticalLayout {
|
||||||
|
|
||||||
private final UserRepository userRepository;
|
private final UserRepository userRepository;
|
||||||
private final PasswordEncoder passwordEncoder;
|
private final PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
private final Grid<User> userGrid = new Grid<>(User.class, false);
|
private final Grid<User> userGrid = new Grid<>(User.class, false);
|
||||||
private final TextField usernameField = new TextField("Benutzername");
|
private final TextField usernameField = new TextField("Username");
|
||||||
private final PasswordField passwordField = new PasswordField("Passwort");
|
private final PasswordField passwordField = new PasswordField("Password");
|
||||||
private final MultiSelectComboBox<String> rolesField = new MultiSelectComboBox<>("Rollen");
|
private final MultiSelectComboBox<String> rolesField = new MultiSelectComboBox<>("Roles");
|
||||||
|
|
||||||
private final Button saveButton = new Button("Speichern");
|
private final Button saveButton = new Button("Save");
|
||||||
private final Button deleteButton = new Button("Löschen");
|
private final Button deleteButton = new Button("Delete");
|
||||||
|
|
||||||
private User selectedUser;
|
private User selectedUser;
|
||||||
|
|
||||||
public UserAdminView(UserRepository userRepository, PasswordEncoder passwordEncoder) {
|
public UserManagementView(UserRepository userRepository, PasswordEncoder passwordEncoder) {
|
||||||
this.userRepository = userRepository;
|
this.userRepository = userRepository;
|
||||||
this.passwordEncoder = passwordEncoder;
|
this.passwordEncoder = passwordEncoder;
|
||||||
|
|
||||||
add(new H2("Benutzerverwaltung"));
|
add(new H2("User Management"));
|
||||||
configureGrid();
|
setupUserGrid();
|
||||||
configureForm();
|
setupFormLayout();
|
||||||
refreshGrid();
|
loadUsersToGrid();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configureGrid() {
|
private void setupUserGrid() {
|
||||||
userGrid.addColumn(User::getUsername).setHeader("Benutzername");
|
userGrid.addColumn(User::getUsername).setHeader("Username");
|
||||||
userGrid.addColumn(user -> String.join(", ", user.getRoles())).setHeader("Rollen");
|
userGrid.addColumn(user -> String.join(", ", user.getRoles())).setHeader("Roles");
|
||||||
userGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
userGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
||||||
userGrid.setWidthFull();
|
userGrid.setWidthFull();
|
||||||
|
|
||||||
@@ -64,10 +64,18 @@ public class UserAdminView extends VerticalLayout {
|
|||||||
add(userGrid);
|
add(userGrid);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configureForm() {
|
private void setupFormLayout() {
|
||||||
rolesField.setItems("ROLE_USER", "ROLE_ADMIN");
|
rolesField.setItems("ROLE_USER", "ROLE_ADMIN");
|
||||||
|
|
||||||
saveButton.addClickListener(e -> {
|
saveButton.addClickListener(e -> saveOrUpdateUser());
|
||||||
|
deleteButton.addClickListener(e -> deleteUser());
|
||||||
|
|
||||||
|
HorizontalLayout formLayout = new HorizontalLayout(usernameField, passwordField, rolesField, saveButton, deleteButton);
|
||||||
|
formLayout.setWidthFull();
|
||||||
|
add(formLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveOrUpdateUser() {
|
||||||
if (selectedUser != null) {
|
if (selectedUser != null) {
|
||||||
selectedUser.setUsername(usernameField.getValue());
|
selectedUser.setUsername(usernameField.getValue());
|
||||||
selectedUser.setRoles(rolesField.getValue());
|
selectedUser.setRoles(rolesField.getValue());
|
||||||
@@ -85,29 +93,25 @@ public class UserAdminView extends VerticalLayout {
|
|||||||
.build();
|
.build();
|
||||||
userRepository.save(newUser);
|
userRepository.save(newUser);
|
||||||
}
|
}
|
||||||
clearForm();
|
|
||||||
refreshGrid();
|
|
||||||
});
|
|
||||||
|
|
||||||
deleteButton.addClickListener(e -> {
|
resetFormFields();
|
||||||
|
loadUsersToGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteUser() {
|
||||||
if (selectedUser != null) {
|
if (selectedUser != null) {
|
||||||
userRepository.delete(selectedUser);
|
userRepository.delete(selectedUser);
|
||||||
clearForm();
|
resetFormFields();
|
||||||
refreshGrid();
|
loadUsersToGrid();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
HorizontalLayout formLayout = new HorizontalLayout(usernameField, passwordField, rolesField, saveButton, deleteButton);
|
|
||||||
formLayout.setWidthFull();
|
|
||||||
add(formLayout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshGrid() {
|
private void loadUsersToGrid() {
|
||||||
List<User> users = userRepository.findAll();
|
List<User> users = userRepository.findAll();
|
||||||
userGrid.setItems(users);
|
userGrid.setItems(users);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearForm() {
|
private void resetFormFields() {
|
||||||
selectedUser = null;
|
selectedUser = null;
|
||||||
usernameField.clear();
|
usernameField.clear();
|
||||||
passwordField.clear();
|
passwordField.clear();
|
||||||
Reference in New Issue
Block a user