Merge pull request #137 from Kitzanos/new-role-changes

Introduced new role- Instructor Manager
This commit is contained in:
rajeshkhore
2024-12-19 20:33:17 +05:30
committed by GitHub
4 changed files with 65 additions and 5 deletions

View File

@@ -7,7 +7,8 @@ public enum RoleStatusEnum {
ROLE_BENEFICIARY("ROLE_BENEFICIARY"),
ROLE_SUPER_ADMIN("ROLE_SUPER_ADMIN"),
ROLE_PRE_INSTRUCTOR("ROLE_PRE_INSTRUCTOR"),
ROLE_GEPAFIN_OPERATOR("ROLE_GEPAFIN_OPERATOR");
ROLE_GEPAFIN_OPERATOR("ROLE_GEPAFIN_OPERATOR"),
ROLE_INSTRUCTOR_MANAGER("ROLE_INSTRUCTOR_MANAGER");
private String value;

View File

@@ -90,6 +90,8 @@ public class Validator {
validateHubId(request, companyEntity.getHub().getId());
if (checkIsSuperAdmin()) {
return companyEntity;
} else if (checkIsInstructorManager()) {
return companyEntity;
}
Map<String, Object> userInfo = tokenProvider.getUserInfoAndUserIdFromToken(request);
companyService.validateUserWithCompny(getUserId(userInfo), companyId);
@@ -127,8 +129,11 @@ public class Validator {
UserEntity requestedUser = userService.validateUser(userId);
validateHubId(request, requestedUser.getHub().getId());
if (Boolean.FALSE.equals(user.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_SUPER_ADMIN.getValue()))
&& Boolean.FALSE.equals(user.getId().equals(userId))) {
// if (Boolean.FALSE.equals(user.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_SUPER_ADMIN.getValue()))
// && Boolean.FALSE.equals(user.getId().equals(userId)))
if (checkIsSuperAdmin() || checkIsInstructorManager()) {
} else if(Boolean.FALSE.equals(user.getId().equals(userId))) {
throw new ForbiddenAccessException(Status.FORBIDDEN,
Translator.toLocale(GepafinConstant.PERMISSION_DENIED));
}
@@ -164,6 +169,11 @@ public class Validator {
validateHubId(request, preInstructorUser.getHub().getId());
}
return preInstructorUser;
} else if (checkIsInstructorManager()) {
if (preInstructorUserId != null) {
validateHubId(request, preInstructorUser.getHub().getId());
}
return preInstructorUser;
} else if (checkIsPreInstructor()) {
return validateUserId(request, preInstructorUserId);
} else {
@@ -171,5 +181,18 @@ public class Validator {
Translator.toLocale(GepafinConstant.PERMISSION_DENIED));
}
}
public Boolean checkIsInstructorManager() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.isAuthenticated()) {
// Check if the user has the ROLE_INSTRUCTOR_MANAGER authority
for (GrantedAuthority authority : authentication.getAuthorities()) {
if (RoleStatusEnum.ROLE_INSTRUCTOR_MANAGER.getValue().equals(authority.getAuthority())) {
return true;
}
}
}
return false;
}
}

View File

@@ -32,7 +32,7 @@ public interface AssignedApplicationsApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
})
@PostMapping(value = "/application/{applicationId}")
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')|| hasRole('ROLE_INSTRUCTOR_MANAGER')")
public ResponseEntity<Response<AssignedApplicationsResponse>> createAssignedApplications(
HttpServletRequest request,
@Parameter(description = "ID of the application", required = true) @PathVariable Long applicationId,

View File

@@ -2029,4 +2029,40 @@
<column name="amendment_document" type="TEXT"></column>
</addColumn>
</changeSet>
<changeSet id="19-12-2024_1" author="Nisha kashyap">
<!-- Insert data for Intructor manager role -->
<insert tableName="role">
<column name="role_name" value="instructor manager"/>
<column name="role_type" value="ROLE_INSTRUCTOR_MANAGER"/>
<column name="description"
value="They will manage the instructor"/>
<column name="created_date" value="2024-12-19 15:30:00"/>
<column name="updated_date" value="2024-12-19 15:30:00"/>
<column name="permissions" value="EVALUATE_APPLICATIONS,MANAGE_PRELIMINARY_RELIEF,ASSIGED_APPLICATION"/>
<column name="region_id" valueComputed="1"/>
</insert>
</changeSet>
<changeSet id="19-12-2024_2" author="Nisha kashyap">
<insert tableName="gepafin_user">
<column name="password" value="$2a$10$doUyOcEm8WPuFfpFT5y18.1DvZzF7exbqgy9X0P27cUBK7YWbfzzS"/>
<column name="email" value="instructorManager@test.test"/>
<column name="first_name" value="instructor"/>
<column name="last_name" value="Manager"/>
<column name="phone_number" value="98768526440"/>
<column name="role_id" valueComputed="5"/>
<column name="status" value="ACTIVE"/>
<column name="last_login" value="2024-12-19 00:00:00"/>
<column name="created_date" value="2024-12-19 00:00:00"/>
<column name="updated_date" value="2024-12-19 00:00:00"/>
<column name="organization" value="InstructorManagerOrg"/>
<column name="address" value="789 Victory Road"/>
<column name="city" value="Naples"/>
<column name="country" value="Italy"/>
<column name="hub_id" value="1"/>
</insert>
</changeSet>
</databaseChangeLog>