package com.PFE.ServerManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Component; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; import javax.annotation.PostConstruct; import java.io.*; @Component public class AppConfig { @Autowired CustomerRepository customerRepository; @Autowired RoleRepository roleRepository; @Autowired TeamRepository teamRepository; @Autowired BCryptPasswordEncoder bCryptPasswordEncoder; @PostConstruct public void init() { System.out.println("============= Configuration de l'application ============="); /* Ajout des rôles si non présent */ if(roleRepository.count() != 2) { roleRepository.deleteAll(); Role roleAdmin = new Role(); roleAdmin.setRoleId(1); roleAdmin.setRole("ADMIN"); roleRepository.save(roleAdmin); Role roleUser = new Role(); roleUser.setRoleId(2); roleUser.setRole("USER"); roleRepository.save(roleUser); } /* Ajout d'un utilisateur ADMIN avec les informations du fichier de conf*/ Yaml yaml = new Yaml(new Constructor(ConfYAML.class)); InputStream inputStream = null; try { inputStream = new FileInputStream(new File("app.conf")); } catch (FileNotFoundException e) { e.printStackTrace(); } ConfYAML conf = yaml.load(inputStream); Customer n = new Customer(); n.setEmail(conf.getAdminEmail()); n.setPassword(bCryptPasswordEncoder.encode(conf.getAdminPassword())); n.setCustomerId((int)(customerRepository.count() + 1)); n.setActive(1); Customer temp = customerRepository.findByEmail(conf.getAdminEmail()); Role userRole = roleRepository.findByRole("ADMIN"); n.addRole(userRole); if(temp == null) { customerRepository.save(n); } /* Partie sur les groupes */ Team g = new Team(); g.setTeamId((int)(teamRepository.count() +1)); g.setTeam("Labo1"); g.addCustomer(n); teamRepository.save(g); } }