fix menus

This commit is contained in:
dirgantarasiahaan
2023-05-29 22:00:14 +07:00
parent 431ad60bdb
commit 8a7448210e
5 changed files with 133 additions and 8 deletions

View File

@ -4,13 +4,18 @@ import com.iconplus.smartproc.configuration.JwtTokenUtil;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.TokenManagement;
import com.iconplus.smartproc.model.projection.MenusPermissionView;
import com.iconplus.smartproc.model.request.LoginRequest;
import com.iconplus.smartproc.model.response.LoginResponse;
import com.iconplus.smartproc.model.response.MenusPermissionResponse;
import com.iconplus.smartproc.model.token.TokenContent;
import com.iconplus.smartproc.repository.MenusRepository;
import com.iconplus.smartproc.repository.PermissionRepository;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.service.CommonService;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
@ -18,9 +23,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.*;
@Service
@Slf4j
@ -34,14 +37,19 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
private final UsersRepository usersRepository;
private final JwtTokenUtil jwtTokenUtil;
private final CommonService commonService;
private final MenusRepository menusRepository;
private final PermissionRepository permissionRepository;
public LoginService(UsersRepository userRepository,
JwtTokenUtil jwtTokenUtil,
CommonService commonService) {
CommonService commonService,
MenusRepository menusRepository,
PermissionRepository permissionRepository) {
this.usersRepository = userRepository;
this.jwtTokenUtil = jwtTokenUtil;
this.commonService = commonService;
this.menusRepository = menusRepository;
this.permissionRepository = permissionRepository;
}
@ -65,6 +73,35 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
Constants.ERR_TTL_10004,
Constants.ERR_MSG_10004);
}
Set<String> accessMenu = new HashSet<>();
List<MenusPermissionResponse> menusPermissionResponseList = new ArrayList<>();
var listMenusPermission = permissionRepository.getListMenusPermission(userRoleView.getRoleId());
for (MenusPermissionView menusPermissionView : listMenusPermission) {
if (BooleanUtils.isTrue(menusPermissionView.getCanView()) ||
BooleanUtils.isTrue(menusPermissionView.getCanCreate()) ||
BooleanUtils.isTrue(menusPermissionView.getCanUpdate()) ||
BooleanUtils.isTrue(menusPermissionView.getCanDelete()) ||
BooleanUtils.isTrue(menusPermissionView.getCanRead())) {
accessMenu.add(menusPermissionView.getNama());
}
MenusPermissionResponse menusPermissionResponse = MenusPermissionResponse.builder()
.id(menusPermissionView.getId())
.nama(menusPermissionView.getNama())
.parentId(menusPermissionView.getParentId())
.urutan(menusPermissionView.getUrutan())
.icon(menusPermissionView.getIcon())
.link(menusPermissionView.getLink())
.canView(menusPermissionView.getCanView())
.canRead(menusPermissionView.getCanRead())
.canCreate(menusPermissionView.getCanCreate())
.canUpdate(menusPermissionView.getCanUpdate())
.canDelete(menusPermissionView.getCanDelete())
.build();
menusPermissionResponseList.add(menusPermissionResponse);
}
var tokenContent = TokenContent.builder()
.userId(userRoleView.getId())
@ -78,7 +115,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
.bidang(userRoleView.getBidang())
.jabatanId(userRoleView.getJabatanId())
.jabatan(userRoleView.getJabatan())
.accessMenu(new HashSet<>())
.accessMenu(accessMenu)
.build();
Map<String, Object> claims = new HashMap<>();
@ -104,9 +141,12 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
.accessToken(accessToken)
.validity(accessTokenExp * 60)
.refreshToken(refreshToken)
.userId(userRoleView.getId())
.username(userRoleView.getUsername())
.email(userRoleView.getEmail())
.roleId(userRoleView.getRoleId())
.role(userRoleView.getRole())
.menus(menusPermissionResponseList)
.build();
}
}