adding mongodb dump
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
package com.realnet.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.realnet.fnd.entity1.GrpMenuAccess;
|
||||
import com.realnet.fnd.entity1.MenuDet;
|
||||
import com.realnet.fnd.repository1.GrpMenuAccessRepository;
|
||||
import com.realnet.fnd.repository1.MenuDetRepository;
|
||||
import com.realnet.users.entity.Role;
|
||||
import com.realnet.users.entity.Sys_Accounts;
|
||||
import com.realnet.users.entity1.AppUser;
|
||||
import com.realnet.users.entity1.AppUserRole;
|
||||
import com.realnet.users.repository.RoleRepo;
|
||||
import com.realnet.users.repository.SysAccountRepo;
|
||||
import com.realnet.users.repository1.AppUserRepository;
|
||||
import com.realnet.users.repository1.AppUserRoleRepository;
|
||||
|
||||
@Component
|
||||
public class MongoDataInitializer implements CommandLineRunner {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MongoDataInitializer.class);
|
||||
|
||||
@Autowired
|
||||
private RoleRepo roleRepo;
|
||||
|
||||
@Autowired
|
||||
private AppUserRoleRepository appUserRoleRepository;
|
||||
|
||||
@Autowired
|
||||
private SysAccountRepo sysAccountRepo;
|
||||
|
||||
@Autowired
|
||||
private AppUserRepository appUserRepository;
|
||||
|
||||
@Autowired
|
||||
private MenuDetRepository menuDetRepository;
|
||||
|
||||
@Autowired
|
||||
private GrpMenuAccessRepository grpMenuAccessRepository;
|
||||
|
||||
@Autowired
|
||||
private BCryptPasswordEncoder bcryptEncoder;
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
LOGGER.info("[MongoDataInitializer] Checking and initializing baseline data...");
|
||||
|
||||
// 1. Initialize Roles
|
||||
Role adminRole = initRole("ROLE_ADMIN", "ADMIN");
|
||||
Role devRole = initRole("ROLE_Developer", "Developer");
|
||||
initRole("ROLE_USER", "USER");
|
||||
initRole("ROLE_DEVEOPS", "DEVEOPS");
|
||||
|
||||
// 2. Initialize User Groups (AppUserRole)
|
||||
AppUserRole adminGrp = initUserGroup(1L, "sysadmin", "System Administrator", 30L);
|
||||
AppUserRole userGrp = initUserGroup(41L, "users", "Default Users", 20L);
|
||||
AppUserRole devGrp = initUserGroup(42L, "Developer", "Developers", 25L);
|
||||
|
||||
// 3. Initialize Sys_Accounts
|
||||
Sys_Accounts defaultAccount = initAccount(1L, "Default Account");
|
||||
|
||||
// 4. Initialize Default Admin User (sysadmin)
|
||||
initAdminUser(adminRole, devRole, adminGrp, defaultAccount);
|
||||
|
||||
// 5. Initialize Core Navigation Menus
|
||||
initMenusAndAccess(adminGrp, userGrp);
|
||||
|
||||
LOGGER.info("[MongoDataInitializer] Baseline data initialization check complete.");
|
||||
}
|
||||
|
||||
private Role initRole(String name, String description) {
|
||||
Role r = roleRepo.findByName(name);
|
||||
if (r == null) {
|
||||
r = new Role();
|
||||
r.setName(name);
|
||||
r.setDescription(description);
|
||||
r = roleRepo.save(r);
|
||||
LOGGER.info("[MongoDataInitializer] Created default Role: {}", name);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
private AppUserRole initUserGroup(Long usrGrpId, String name, String desc, Long level) {
|
||||
AppUserRole g = appUserRoleRepository.findById(usrGrpId);
|
||||
if (g == null) {
|
||||
g = new AppUserRole();
|
||||
g.setUsrGrp(usrGrpId);
|
||||
g.setGroupName(name);
|
||||
g.setGroupDesc(desc);
|
||||
g.setGroupLevel(level);
|
||||
g.setStatus("E");
|
||||
g.setCreatedate(new Date());
|
||||
g = appUserRoleRepository.save(g);
|
||||
LOGGER.info("[MongoDataInitializer] Created default AppUserRole group: {} ({})", name, usrGrpId);
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
private Sys_Accounts initAccount(Long accountId, String companyName) {
|
||||
Sys_Accounts acc = sysAccountRepo.findById(accountId);
|
||||
if (acc == null) {
|
||||
acc = new Sys_Accounts();
|
||||
acc.setAccount_id(accountId);
|
||||
acc.setCompanyName(companyName);
|
||||
acc = sysAccountRepo.save(acc);
|
||||
LOGGER.info("[MongoDataInitializer] Created default Sys_Accounts with ID: {}", accountId);
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
|
||||
private void initAdminUser(Role adminRole, Role devRole, AppUserRole adminGrp, Sys_Accounts account) {
|
||||
AppUser existing = appUserRepository.findByEmail("sysadmin");
|
||||
if (existing == null) {
|
||||
existing = appUserRepository.findByEmail("admin");
|
||||
}
|
||||
if (existing == null) {
|
||||
AppUser adminUser = new AppUser();
|
||||
adminUser.setUsername("sysadmin");
|
||||
adminUser.setEmail("sysadmin@domain.com");
|
||||
adminUser.setFullName("System Admin");
|
||||
adminUser.setUserPassw(bcryptEncoder.encode("sysadmin"));
|
||||
adminUser.setChangePassw("sysadmin");
|
||||
adminUser.setActive(true);
|
||||
adminUser.setIsComplete(true);
|
||||
adminUser.setUsrGrp(adminGrp);
|
||||
adminUser.setAccount(account);
|
||||
adminUser.setCreatedate(java.time.LocalDateTime.now());
|
||||
|
||||
Set<Role> roles = new HashSet<>();
|
||||
if (adminRole != null) roles.add(adminRole);
|
||||
if (devRole != null) roles.add(devRole);
|
||||
adminUser.setRoles(roles);
|
||||
|
||||
appUserRepository.save(adminUser);
|
||||
LOGGER.info("[MongoDataInitializer] Created default Admin user: sysadmin / sysadmin");
|
||||
}
|
||||
}
|
||||
|
||||
private void initMenusAndAccess(AppUserRole adminGrp, AppUserRole userGrp) {
|
||||
// Only seed menus if the menu table is empty
|
||||
if (menuDetRepository.findAll().isEmpty()) {
|
||||
LOGGER.info("[MongoDataInitializer] Seeding core navigation menus...");
|
||||
|
||||
// Root: Security
|
||||
MenuDet sec = createMenu(1116L, 0L, 3000L, "Security", "security", "sec3000", "lock");
|
||||
MenuDet uMaint = createMenu(1117L, 1116L, 3010L, "User Maintance", "usermaintance", "U1000", null);
|
||||
MenuDet uGrpMaint = createMenu(1118L, 1116L, 3020L, "User Group Maintance", "usergrpmaintance", "U2000", null);
|
||||
MenuDet mMaint = createMenu(1523L, 1116L, 3030L, "Menu Maintance", "menumaintance", "M3000", null);
|
||||
MenuDet mAccess = createMenu(1524L, 1116L, 3040L, "Menu Access Control", "menuaccess", "MA4000", null);
|
||||
MenuDet sysParam = createMenu(1525L, 1116L, 3050L, "System Parameters", "systemparameters", "SP5000", null);
|
||||
MenuDet accType = createMenu(1526L, 1116L, 3060L, "Access Type", "accesstype", "A6000", null);
|
||||
|
||||
// Root: Transactions
|
||||
MenuDet trans = createMenu(1577L, 0L, 7000L, "Transactions", "Transactions", "Transactions", "King");
|
||||
|
||||
// Root: Masters
|
||||
MenuDet masters = createMenu(1601L, 0L, 9000L, "Masters", "Masters", "Masters", "data-cluster");
|
||||
|
||||
List<MenuDet> allMenus = new ArrayList<>();
|
||||
allMenus.add(sec);
|
||||
allMenus.add(uMaint);
|
||||
allMenus.add(uGrpMaint);
|
||||
allMenus.add(mMaint);
|
||||
allMenus.add(mAccess);
|
||||
allMenus.add(sysParam);
|
||||
allMenus.add(accType);
|
||||
allMenus.add(trans);
|
||||
allMenus.add(masters);
|
||||
|
||||
// Grant access to admin group (1) and user group (41)
|
||||
for (MenuDet m : allMenus) {
|
||||
grantAccess(adminGrp, m);
|
||||
grantAccess(userGrp, m);
|
||||
}
|
||||
LOGGER.info("[MongoDataInitializer] Core menus and permissions initialized successfully.");
|
||||
}
|
||||
}
|
||||
|
||||
private MenuDet createMenu(Long menuItemId, Long menuId, Long seq, String desc, String modName, String action, String icon) {
|
||||
MenuDet m = new MenuDet();
|
||||
m.setMenuItemId(menuItemId);
|
||||
m.setMenuId(menuId);
|
||||
m.setItemSeq(seq);
|
||||
m.setMenuItemDesc(desc);
|
||||
m.setModuleName(modName);
|
||||
m.setMain_menu_action_name(action);
|
||||
m.setMain_menu_icon_name(icon);
|
||||
m.setStatus("Enable");
|
||||
return menuDetRepository.save(m);
|
||||
}
|
||||
|
||||
private void grantAccess(AppUserRole grp, MenuDet menu) {
|
||||
try {
|
||||
GrpMenuAccess a = new GrpMenuAccess();
|
||||
a.setUsrGrp(grp);
|
||||
a.setMenuItemId(menu);
|
||||
a.setMenuId(menu.getMenuId());
|
||||
a.setMVisible("true");
|
||||
a.setMCreate("true");
|
||||
a.setMEdit("true");
|
||||
a.setMDelete("true");
|
||||
a.setMQuery("true");
|
||||
a.setMexport("true");
|
||||
a.setCreatedAt(new Date());
|
||||
grpMenuAccessRepository.save(a);
|
||||
} catch (Exception e) {
|
||||
LOGGER.warn("[MongoDataInitializer] Could not grant access for menu {}: {}", menu.getMenuItemId(), e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -143,16 +143,12 @@ public class SessionController {
|
||||
MDC.put("USER", loggedInUser.getUsername());
|
||||
// System.out.println("/session logged in user -> " + loggedInUser);
|
||||
|
||||
// List<String> loggedInUserRoles = new ArrayList<String>();
|
||||
StringBuilder roleString = new StringBuilder();
|
||||
roleString.append(loggedInUser.getUsrGrp().getGroupName());
|
||||
// .forEach(role -> {
|
||||
//// loggedInUserRoles.add(role.getName());
|
||||
// roleString.append(role.getName() + ", ");
|
||||
// });
|
||||
// String role = roleString.toString().substring(0,
|
||||
// roleString.toString().lastIndexOf(","));
|
||||
// List<String> roleList = Arrays.asList(role.split("\\s*,\\s*"));
|
||||
if (loggedInUser.getUsrGrp() != null && loggedInUser.getUsrGrp().getGroupName() != null) {
|
||||
roleString.append(loggedInUser.getUsrGrp().getGroupName());
|
||||
} else {
|
||||
roleString.append("users");
|
||||
}
|
||||
|
||||
SessionResponse resp = new SessionResponse();
|
||||
SessionItem sessionItem = new SessionItem();
|
||||
@@ -162,11 +158,19 @@ public class SessionController {
|
||||
sessionItem.setFirstName(loggedInUser.getFullName());
|
||||
// sessionItem.setUsername(loggedInUser.getUsername());
|
||||
sessionItem.setEmail(loggedInUser.getEmail());
|
||||
// sessionItem.setRoles(roleList);
|
||||
Set<Role> roles = loggedInUser.getRoles();
|
||||
List<String> roleList = new ArrayList<>();
|
||||
for (Role ro : roles) {
|
||||
roleList.add(ro.getDescription());
|
||||
if (roles != null) {
|
||||
for (Role ro : roles) {
|
||||
if (ro != null && ro.getDescription() != null) {
|
||||
roleList.add(ro.getDescription());
|
||||
} else if (ro != null && ro.getName() != null) {
|
||||
roleList.add(ro.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (roleList.isEmpty()) {
|
||||
roleList.add("ROLE_USER");
|
||||
}
|
||||
sessionItem.setRoles(roleList);
|
||||
// sessionItem.setRoles(loggedInUser.getUsrGrp().getGroupName());
|
||||
|
||||
@@ -55,15 +55,21 @@ public class AppUserPrinciple implements UserDetails{
|
||||
// authorities.add(new SimpleGrantedAuthority("ROLE_"+role));
|
||||
// return authorities;
|
||||
|
||||
Set<Role> roles = u.getRoles();
|
||||
List<SimpleGrantedAuthority> authorities = new ArrayList<>();
|
||||
|
||||
for (Role role : roles) {
|
||||
// authorities.add(new SimpleGrantedAuthority(role.getName().getDeclaringClass().getName()));
|
||||
authorities.add(new SimpleGrantedAuthority(role.getName()));
|
||||
}
|
||||
|
||||
return authorities;
|
||||
Set<Role> roles = u.getRoles();
|
||||
List<SimpleGrantedAuthority> authorities = new ArrayList<>();
|
||||
|
||||
if (roles != null) {
|
||||
for (Role role : roles) {
|
||||
if (role != null && role.getName() != null) {
|
||||
authorities.add(new SimpleGrantedAuthority(role.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (authorities.isEmpty()) {
|
||||
authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
|
||||
}
|
||||
|
||||
return authorities;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -87,12 +87,14 @@ public class AppUserServiceImpl implements UserDetailsService, AppUserService {
|
||||
@Override
|
||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
||||
Optional<AppUser> user = appUserRepository.findByUsername(username);
|
||||
if (user.get() == null) {
|
||||
throw new UsernameNotFoundException("Invalid Email or password.");
|
||||
if (!user.isPresent()) {
|
||||
AppUser userByEmail = appUserRepository.findByEmail(username);
|
||||
if (userByEmail == null) {
|
||||
throw new UsernameNotFoundException("Invalid Email or password: " + username);
|
||||
}
|
||||
return new AppUserPrinciple(userByEmail);
|
||||
}
|
||||
AppUserPrinciple appUserPrinciple = new AppUserPrinciple(user.get());
|
||||
|
||||
return appUserPrinciple;
|
||||
return new AppUserPrinciple(user.get());
|
||||
}
|
||||
|
||||
public List<AppUser> getAllAppUsers(Pageable page) {
|
||||
@@ -137,13 +139,23 @@ public class AppUserServiceImpl implements UserDetailsService, AppUserService {
|
||||
if (reg.getUsrGrpId() != null) {
|
||||
r = appUserRoleRepository.findById(usrGrpId);
|
||||
}
|
||||
|
||||
if (r != null) {
|
||||
appUser.setUsrGrp(r);
|
||||
if (r == null) {
|
||||
r = new AppUserRole();
|
||||
r.setUsrGrp(usrGrpId != null ? usrGrpId : 41L);
|
||||
r.setGroupName("users");
|
||||
r.setGroupDesc("Default Users");
|
||||
r = appUserRoleRepository.save(r);
|
||||
}
|
||||
Long account_id = reg.getAccount_id();
|
||||
appUser.setUsrGrp(r);
|
||||
|
||||
Sys_Accounts account = sysAccountRepo.findById(account_id);
|
||||
Long account_id = reg.getAccount_id();
|
||||
Sys_Accounts account = null;
|
||||
if (account_id != null) {
|
||||
account = sysAccountRepo.findById(account_id);
|
||||
}
|
||||
if (account == null) {
|
||||
account = sysAccountRepo.findById(1L);
|
||||
}
|
||||
appUser.setAccount(account);
|
||||
appUser.setFullName(reg.getFirst_name() + " " + reg.getLast_name());
|
||||
appUser.setMob_no(reg.getMob_no());
|
||||
@@ -156,14 +168,15 @@ public class AppUserServiceImpl implements UserDetailsService, AppUserService {
|
||||
Set<Role> strRoles = appUser.getRoles();
|
||||
Set<Role> roles = new HashSet<>();
|
||||
|
||||
if (strRoles == null || strRoles.isEmpty()) {
|
||||
if (strRoles == null || strRoles.isEmpty()) {
|
||||
String role1 = "ROLE_ADMIN";
|
||||
// Role role = new Role();
|
||||
// role.setId(1l);
|
||||
// role.setName(role1);
|
||||
// role.setDescription(role1);
|
||||
// roleRepo.save(role);
|
||||
Role userRole = roleRepo.findByName(role1);
|
||||
if (userRole == null) {
|
||||
userRole = new Role();
|
||||
userRole.setName(role1);
|
||||
userRole.setDescription("ADMIN");
|
||||
userRole = roleRepo.save(userRole);
|
||||
}
|
||||
roles.add(userRole);
|
||||
appUser.setRoles(roles);
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user