feat: v2.0 – réorg docker/scripts, prod, résas, abonnements Wave, Flyway base vierge
This commit is contained in:
59
src/main/java/com/lions/dev/config/SuperAdminStartup.java
Normal file
59
src/main/java/com/lions/dev/config/SuperAdminStartup.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.lions.dev.config;
|
||||
|
||||
import com.lions.dev.entity.users.Users;
|
||||
import com.lions.dev.repository.UsersRepository;
|
||||
import com.lions.dev.util.UserRoles;
|
||||
import io.quarkus.runtime.StartupEvent;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.enterprise.event.Observes;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.transaction.Transactional;
|
||||
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
/**
|
||||
* Crée le super administrateur au démarrage de l'application si aucun n'existe.
|
||||
* Email et mot de passe configurables (variables d'environnement en production).
|
||||
*/
|
||||
@ApplicationScoped
|
||||
public class SuperAdminStartup {
|
||||
|
||||
private static final Logger LOG = Logger.getLogger(SuperAdminStartup.class);
|
||||
|
||||
@Inject
|
||||
UsersRepository usersRepository;
|
||||
|
||||
@ConfigProperty(name = "afterwork.super-admin.email", defaultValue = "superadmin@afterwork.lions.dev")
|
||||
String superAdminEmail;
|
||||
|
||||
@ConfigProperty(name = "afterwork.super-admin.password", defaultValue = "SuperAdmin2025!")
|
||||
String superAdminPassword;
|
||||
|
||||
@ConfigProperty(name = "afterwork.super-admin.first-name", defaultValue = "Super")
|
||||
String superAdminFirstName;
|
||||
|
||||
@ConfigProperty(name = "afterwork.super-admin.last-name", defaultValue = "Administrator")
|
||||
String superAdminLastName;
|
||||
|
||||
@Transactional
|
||||
void onStart(@Observes StartupEvent event) {
|
||||
if (usersRepository.findByEmail(superAdminEmail).isPresent()) {
|
||||
LOG.info("Super administrateur déjà présent (email: " + superAdminEmail + "). Aucune création.");
|
||||
return;
|
||||
}
|
||||
|
||||
Users superAdmin = new Users();
|
||||
superAdmin.setFirstName(superAdminFirstName);
|
||||
superAdmin.setLastName(superAdminLastName);
|
||||
superAdmin.setEmail(superAdminEmail);
|
||||
superAdmin.setPassword(superAdminPassword);
|
||||
superAdmin.setRole(UserRoles.SUPER_ADMIN);
|
||||
superAdmin.setProfileImageUrl("https://placehold.co/150x150.png");
|
||||
superAdmin.setBio("Super administrateur AfterWork");
|
||||
superAdmin.setLoyaltyPoints(0);
|
||||
superAdmin.setVerified(true);
|
||||
|
||||
usersRepository.persist(superAdmin);
|
||||
LOG.info("Super administrateur créé au démarrage : " + superAdminEmail + " (role: " + UserRoles.SUPER_ADMIN + ")");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user