forked from BLC/sgeUpdated
Merge pull request 'Default Area added, Add datacenter 404 error fixed' (#6) from backbr into main
Fixed issue BLC/sgeUpdated#2 (comment)
This commit is contained in:
@@ -2,6 +2,8 @@ package com.sgs;
|
|||||||
|
|
||||||
import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
|
import com.sgs.graphql.activitySubUnit.domain.ActivitySubUnit;
|
||||||
import com.sgs.graphql.activitySubUnit.service.ActivitySubUnitService;
|
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.domain.City;
|
||||||
import com.sgs.graphql.city.repo.CityRepo;
|
import com.sgs.graphql.city.repo.CityRepo;
|
||||||
import com.sgs.graphql.city.service.CityService;
|
import com.sgs.graphql.city.service.CityService;
|
||||||
@@ -73,6 +75,7 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
private final PermissionService permissionService;
|
private final PermissionService permissionService;
|
||||||
private final RoleService roleService;
|
private final RoleService roleService;
|
||||||
private final RoleRepo roleRepo;
|
private final RoleRepo roleRepo;
|
||||||
|
private final AreaService areaService;
|
||||||
private final NeighborhoodRepo neighborhoodRepo;
|
private final NeighborhoodRepo neighborhoodRepo;
|
||||||
private final NeighborhoodService neighborhoodService;
|
private final NeighborhoodService neighborhoodService;
|
||||||
private final CityService cityService;
|
private final CityService cityService;
|
||||||
@@ -118,7 +121,7 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public SgsApplication(RoleService roleService, PermissionService permissionService, RoleRepo roleRepo,
|
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,
|
CityRepo cityRepo, DistrictRepo districtRepo, DistrictService districtService, CountryRepo countryRepo,
|
||||||
CountryService countryService, OrganizationService organizationService, UserService userService,
|
CountryService countryService, OrganizationService organizationService, UserService userService,
|
||||||
PasswordEncoder passwordEncoder, SectorService sectorService, SubSectorService subSectorService,
|
PasswordEncoder passwordEncoder, SectorService sectorService, SubSectorService subSectorService,
|
||||||
@@ -133,6 +136,7 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
this.roleService = roleService;
|
this.roleService = roleService;
|
||||||
this.permissionService = permissionService;
|
this.permissionService = permissionService;
|
||||||
this.roleRepo = roleRepo;
|
this.roleRepo = roleRepo;
|
||||||
|
this.areaService = areaService;
|
||||||
this.neighborhoodRepo = neighborhoodRepo;
|
this.neighborhoodRepo = neighborhoodRepo;
|
||||||
this.neighborhoodService = neighborhoodService;
|
this.neighborhoodService = neighborhoodService;
|
||||||
this.cityService = cityService;
|
this.cityService = cityService;
|
||||||
@@ -426,6 +430,10 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
data_center_read.setTag(PermissionName.DATA_CENTER_READ);
|
data_center_read.setTag(PermissionName.DATA_CENTER_READ);
|
||||||
data_center_read.setDescription(PermissionDescription.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(
|
permissionService.saveAll(List.of(
|
||||||
show_graphics, activities_get, paginate_user_histories, activity_sub_units_get, sub_sectors_get,
|
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,
|
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,
|
question_create, question_delete, question_update, paginate_questions_get,
|
||||||
published_survey_create, surveys_get, paginate_surveys_get,
|
published_survey_create, surveys_get, paginate_surveys_get,
|
||||||
survey_add, survey_delete, survey_update, settings_access, data_center_create, data_center_delete,
|
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() {
|
public void createDefaultRole() {
|
||||||
@@ -771,6 +779,27 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
mailInfoService.save(mailInfo);
|
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
|
@Override
|
||||||
public void run(String... args) throws Exception {
|
public void run(String... args) throws Exception {
|
||||||
if (mailInfoService.findAll().isEmpty()) {
|
if (mailInfoService.findAll().isEmpty()) {
|
||||||
@@ -816,6 +845,8 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
if (roleService.findAll().isEmpty()) {
|
if (roleService.findAll().isEmpty()) {
|
||||||
createDefaultRole();
|
createDefaultRole();
|
||||||
}
|
}
|
||||||
|
// Ensure all permissions are created and assigned to SUPER_ADMIN
|
||||||
|
ensureMissingPermissions();
|
||||||
if (organizationService.findAll().isEmpty()) {
|
if (organizationService.findAll().isEmpty()) {
|
||||||
createDefaultOrganization();
|
createDefaultOrganization();
|
||||||
}
|
}
|
||||||
@@ -834,18 +865,34 @@ public class SgsApplication implements CommandLineRunner {
|
|||||||
if (neighborhoodService.findAll().isEmpty()) {
|
if (neighborhoodService.findAll().isEmpty()) {
|
||||||
createNeighborhoodsFromJson();
|
createNeighborhoodsFromJson();
|
||||||
}
|
}
|
||||||
// Add new permission if it doesn't exist
|
if (areaService.findAll().isEmpty()) {
|
||||||
// [Remove Later]
|
createDefaultArea();
|
||||||
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);
|
void createDefaultArea() {
|
||||||
settingsAccess.setDefault_permission(false);
|
// Check if default area already exists
|
||||||
settingsAccess.setDeleted(false);
|
List<Area> existingAreas = areaService.findAll();
|
||||||
permissionService.save(settingsAccess);
|
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_DELETE = "Veri Merkezi Silme";
|
||||||
public static final String DATA_CENTER_UPDATE = "Veri Merkezi Güncelleme";
|
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 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_DELETE = "data_center_delete";
|
||||||
public static final String DATA_CENTER_UPDATE = "data_center_update";
|
public static final String DATA_CENTER_UPDATE = "data_center_update";
|
||||||
public static final String DATA_CENTER_READ = "data_center_read";
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class PermissionService extends BaseService<Permission, PermissionRepo, PermissionCriteria, PermissionCriteriaSpec> {
|
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) {
|
public PermissionService(PermissionRepo repository, PermissionCriteriaSpec criteriaSpec) {
|
||||||
super(repository, criteriaSpec);
|
super(repository, criteriaSpec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<Permission> findByTag(String tag) {
|
||||||
|
return getRepository().findByTag(tag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user