private static String resolve(final Integer permissionId) { String name = Permissions.getShortName(permissionId); ProjectPermissionKey key = systemProjectPermissionKeyByShortName(name); if (key == null) { throw new IllegalArgumentException("No permission for id : " + permissionId + " in system"); } return key.permissionKey(); } }
@Override protected String getLoginUrl(final HttpServletRequest httpServletRequest, final Set<String> missingRoles) { UserRole userRole = null; // Inform user that there is certain level of privileges required to access page // SecurityFilter is using roles-required attribute from actions.xml if (missingRoles.contains(Permissions.getShortName(Permissions.SYSTEM_ADMIN))) { userRole = UserRole.SYSADMIN; } else if(missingRoles.contains(Permissions.getShortName(Permissions.ADMINISTER))) { userRole = UserRole.ADMIN; } final SecurityConfig securityConfig = SecurityConfigFactory.getInstance(); String loginURL = securityConfig.getLoginURL(userRole != null, false); if(userRole != null) { loginURL = loginURL.replaceAll("\\$\\{userRole\\}", userRole.toString()); } return RedirectUtils.getLoginURL(loginURL, httpServletRequest); }