1 package org.usermanagement.service;
5 import java.util.stream.Collectors;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Propagation;
14 import org.springframework.transaction.annotation.Transactional;
27 @Transactional(propagation = Propagation.REQUIRED, readOnly =
true)
30 private static final Logger LOGGER = LoggerFactory.getLogger(
PermissionService.class);
47 @Transactional(propagation = Propagation.REQUIRED, readOnly =
false)
49 permissionValidator.validatePermission(permission);
52 permissionRepository.save(permissionEntity);
55 LOGGER.info(
"Permission with name '" + permission.getName() +
"' created successfully.");
59 @Transactional(propagation = Propagation.REQUIRED, readOnly =
false)
60 public List<
Permission> getAllPermission(final
long loggedInUserId) {
61 List<PermissionEntity> permissionEntities = permissionRepository.findAll();
64 permissionEntities.stream().filter(permission ->
65 loggedInUserId == 1 || !permission.getIsAdminPermission()).collect(Collectors.toList());
70 @Transactional(propagation = Propagation.REQUIRED, readOnly =
false)
71 public
Permission getPermissionById(final Long permissionId) {
72 PermissionEntity permissionEntity = permissionRepository.findByPermissionId(permissionId);
75 LOGGER.error(
"Permission with permissionId '" + permissionId +
"' not found. Error: " 76 + messageUtil.getAttributeInvalid(
"permission_id", permissionId +
""));
79 Set<RoleEntity> roleEntityList = roleRepository.findByPermissions_permissionId(permissionId);
83 @Transactional(propagation = Propagation.REQUIRED, readOnly =
false)
84 public
void deletePermissionById(final Long permissionId) {
86 PermissionEntity permissionEntity = permissionRepository.findByPermissionId(permissionId);
90 Set<RoleEntity> roleEntityList = roleRepository.findByPermissions_permissionId(permissionId);
91 if (roleEntityList.size() > 0) {
94 roles += !
"".equals(roles) ?
"," + roleEntity.getName() : roleEntity.getName();
96 LOGGER.error(
"Permission with permissionId '" + permissionId +
"' not allowed to delete. Error: " 97 + messageUtil.getAttributeDeletionNotAllowed(permissionEntity.
getName(), roles));
99 messageUtil.getAttributeDeletionNotAllowed(permissionEntity.
getName(), roles));
101 permissionRepository.delete(permissionEntity);
102 LOGGER.info(
"Permission(permissionId: " + permissionId +
") deleted successfully.");
106 @Transactional(propagation = Propagation.REQUIRED, readOnly =
false)
109 permissionValidator.validateUpdatePermission(permission, permissionId);
111 PermissionEntity permissionEntity = permissionRepository.findByPermissionId(permissionId);
113 LOGGER.error(
"Permission with permissionId '" + permissionId +
"' not found. Error: " 114 + messageUtil.getAttributeInvalid(
"permission_id", permissionId +
""));
119 permissionRepository.save(permissionEntity);
121 LOGGER.info(
"Permission(permissionId: " + permissionId +
") updated successfully.");
static PermissionEntity toUpatePermissionEntity(final Permission permission, final PermissionEntity permissionEntity)
static Permission toPermission(final PermissionEntity permissionEntity, final Set< RoleEntity > roleEntities)
static boolean isNull(final Object obj)
static PermissionEntity toPermissionEntity(final Permission permission)
static List< Permission > toAllPermissionResponse(final List< PermissionEntity > permissionList)