forked from BLC/sgeUpdated
Default Area added, Add datacenter 404 error fixed
This commit is contained in:
@@ -2,6 +2,8 @@ package com.sgs;
|
||||
|
||||
import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
|
||||
import com.sgs.graphql.activitySubUnit.service.ActivitySubUnitService;
|
||||
import com.sgs.graphql.area.domain.Area;
|
||||
import com.sgs.graphql.area.service.AreaService;
|
||||
import com.sgs.graphql.city.domain.City;
|
||||
import com.sgs.graphql.city.repo.CityRepo;
|
||||
import com.sgs.graphql.city.service.CityService;
|
||||
@@ -73,6 +75,7 @@ public class SgsApplication implements CommandLineRunner {
|
||||
private final PermissionService permissionService;
|
||||
private final RoleService roleService;
|
||||
private final RoleRepo roleRepo;
|
||||
private final AreaService areaService;
|
||||
private final NeighborhoodRepo neighborhoodRepo;
|
||||
private final NeighborhoodService neighborhoodService;
|
||||
private final CityService cityService;
|
||||
@@ -118,7 +121,7 @@ public class SgsApplication implements CommandLineRunner {
|
||||
|
||||
@Autowired
|
||||
public SgsApplication(RoleService roleService, PermissionService permissionService, RoleRepo roleRepo,
|
||||
NeighborhoodRepo neighborhoodRepo, NeighborhoodService neighborhoodService, CityService cityService,
|
||||
AreaService areaService, NeighborhoodRepo neighborhoodRepo, NeighborhoodService neighborhoodService, CityService cityService,
|
||||
CityRepo cityRepo, DistrictRepo districtRepo, DistrictService districtService, CountryRepo countryRepo,
|
||||
CountryService countryService, OrganizationService organizationService, UserService userService,
|
||||
PasswordEncoder passwordEncoder, SectorService sectorService, SubSectorService subSectorService,
|
||||
@@ -133,6 +136,7 @@ public class SgsApplication implements CommandLineRunner {
|
||||
this.roleService = roleService;
|
||||
this.permissionService = permissionService;
|
||||
this.roleRepo = roleRepo;
|
||||
this.areaService = areaService;
|
||||
this.neighborhoodRepo = neighborhoodRepo;
|
||||
this.neighborhoodService = neighborhoodService;
|
||||
this.cityService = cityService;
|
||||
@@ -426,6 +430,10 @@ public class SgsApplication implements CommandLineRunner {
|
||||
data_center_read.setTag(PermissionName.DATA_CENTER_READ);
|
||||
data_center_read.setDescription(PermissionDescription.DATA_CENTER_READ);
|
||||
|
||||
Permission paginate_datacenters_get = new Permission();
|
||||
paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
|
||||
paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
|
||||
|
||||
permissionService.saveAll(List.of(
|
||||
show_graphics, activities_get, paginate_user_histories, activity_sub_units_get, sub_sectors_get,
|
||||
sectors_get, deleted_items, undelete_items, user_create, user_update, user_delete, paginate_users_get,
|
||||
@@ -442,7 +450,7 @@ public class SgsApplication implements CommandLineRunner {
|
||||
question_create, question_delete, question_update, paginate_questions_get,
|
||||
published_survey_create, surveys_get, paginate_surveys_get,
|
||||
survey_add, survey_delete, survey_update, settings_access, data_center_create, data_center_delete,
|
||||
data_center_update, data_center_read));
|
||||
data_center_update, data_center_read, paginate_datacenters_get));
|
||||
}
|
||||
|
||||
public void createDefaultRole() {
|
||||
@@ -771,6 +779,27 @@ public class SgsApplication implements CommandLineRunner {
|
||||
mailInfoService.save(mailInfo);
|
||||
}
|
||||
|
||||
public void ensureMissingPermissions() {
|
||||
// Check if paginate_datacenters_get permission exists
|
||||
Optional<Permission> datacenterPermission = permissionService.findByTag("paginate_datacenters_get");
|
||||
if (!datacenterPermission.isPresent()) {
|
||||
// Create the missing permission
|
||||
Permission paginate_datacenters_get = new Permission();
|
||||
paginate_datacenters_get.setTag(PermissionName.PAGINATE_DATACENTERS_GET);
|
||||
paginate_datacenters_get.setDescription(PermissionDescription.PAGINATE_DATACENTERS_GET);
|
||||
permissionService.save(paginate_datacenters_get);
|
||||
}
|
||||
|
||||
// Ensure SUPER_ADMIN has all permissions
|
||||
Optional<Role> superAdminRole = roleRepo.findByTag("SUPER_ADMIN");
|
||||
if (superAdminRole.isPresent()) {
|
||||
Role role = superAdminRole.get();
|
||||
List<Permission> allPermissions = permissionService.findAll();
|
||||
role.setPermissions(allPermissions);
|
||||
roleService.save(role);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
if (mailInfoService.findAll().isEmpty()) {
|
||||
@@ -816,6 +845,8 @@ public class SgsApplication implements CommandLineRunner {
|
||||
if (roleService.findAll().isEmpty()) {
|
||||
createDefaultRole();
|
||||
}
|
||||
// Ensure all permissions are created and assigned to SUPER_ADMIN
|
||||
ensureMissingPermissions();
|
||||
if (organizationService.findAll().isEmpty()) {
|
||||
createDefaultOrganization();
|
||||
}
|
||||
@@ -834,18 +865,34 @@ public class SgsApplication implements CommandLineRunner {
|
||||
if (neighborhoodService.findAll().isEmpty()) {
|
||||
createNeighborhoodsFromJson();
|
||||
}
|
||||
// Add new permission if it doesn't exist
|
||||
// [Remove Later]
|
||||
if (permissionService.findAll().stream().noneMatch(p -> PermissionName.SETTINGS_ACCESS.equals(p.getTag()))) {
|
||||
Permission settingsAccess = new Permission();
|
||||
settingsAccess.setTag(PermissionName.SETTINGS_ACCESS);
|
||||
settingsAccess.setDescription(PermissionDescription.SETTINGS_ACCESS);
|
||||
settingsAccess.setDefault_permission(false);
|
||||
settingsAccess.setDeleted(false);
|
||||
permissionService.save(settingsAccess);
|
||||
if (areaService.findAll().isEmpty()) {
|
||||
createDefaultArea();
|
||||
}
|
||||
}
|
||||
|
||||
void createDefaultArea() {
|
||||
// Check if default area already exists
|
||||
List<Area> existingAreas = areaService.findAll();
|
||||
boolean defaultAreaExists = existingAreas.stream()
|
||||
.anyMatch(area -> "Turkiye".equals(area.getTag()) && area.isDefaultArea());
|
||||
|
||||
if (!defaultAreaExists) {
|
||||
Area defaultArea = new Area();
|
||||
defaultArea.setTag("Turkiye");
|
||||
defaultArea.setDefaultArea(true);
|
||||
defaultArea.setDeleted(false);
|
||||
|
||||
// Get all cities to add to the default area
|
||||
List<City> allCities = cityService.findAll();
|
||||
defaultArea.setCities(allCities);
|
||||
|
||||
// Get the Turkey country to add to the default area
|
||||
List<Country> countries = countryService.findAll();
|
||||
if (!countries.isEmpty()) {
|
||||
defaultArea.setCountries(countries);
|
||||
}
|
||||
|
||||
areaService.save(defaultArea);
|
||||
}
|
||||
Permission settings_access = new Permission();
|
||||
settings_access.setTag(PermissionName.SETTINGS_ACCESS);
|
||||
settings_access.setDescription(PermissionDescription.SETTINGS_ACCESS);
|
||||
}
|
||||
}
|
||||
@@ -74,4 +74,5 @@ public class PermissionDescription {
|
||||
public static final String DATA_CENTER_DELETE = "Veri Merkezi Silme";
|
||||
public static final String DATA_CENTER_UPDATE = "Veri Merkezi Güncelleme";
|
||||
public static final String DATA_CENTER_READ = "Veri Merkezi Görüntüleme";
|
||||
public static final String PAGINATE_DATACENTERS_GET = "Veri Merkezleri Listesi Görüntüleme";
|
||||
}
|
||||
|
||||
@@ -84,5 +84,6 @@ public class PermissionName {
|
||||
public static final String DATA_CENTER_DELETE = "data_center_delete";
|
||||
public static final String DATA_CENTER_UPDATE = "data_center_update";
|
||||
public static final String DATA_CENTER_READ = "data_center_read";
|
||||
public static final String PAGINATE_DATACENTERS_GET = "paginate_datacenters_get";
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.sgs.lib.dao.service.BaseService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class PermissionService extends BaseService<Permission, PermissionRepo, PermissionCriteria, PermissionCriteriaSpec> {
|
||||
|
||||
@@ -16,4 +18,8 @@ public class PermissionService extends BaseService<Permission, PermissionRepo, P
|
||||
public PermissionService(PermissionRepo repository, PermissionCriteriaSpec criteriaSpec) {
|
||||
super(repository, criteriaSpec);
|
||||
}
|
||||
|
||||
public Optional<Permission> findByTag(String tag) {
|
||||
return getRepository().findByTag(tag);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user