Skip to content

Commit

Permalink
sso patches to stay up to date with outside code changes
Browse files Browse the repository at this point in the history
  • Loading branch information
CalebSLane committed Oct 8, 2024
1 parent e2b289a commit 8e7c3d3
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ protected void setSuccessFlag(HttpServletRequest request) {
}

protected boolean userHasPermissionForModule(HttpServletRequest request, String module) {
if (!userModuleService.isUserAdmin(request)
&& ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (!userModuleService.isUserAdmin(request) && ConfigurationProperties.getInstance()
.getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
@SuppressWarnings("rawtypes")
HashSet accessMap = (HashSet) request.getSession().getAttribute(IActionConstants.PERMITTED_ACTIONS_MAP);
return accessMap.contains(module);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void postHandle(HttpServletRequest request, HttpServletResponse response,
}

protected boolean hasPermission(Errors errors, HttpServletRequest request) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
return hasPermissionForUrl(request, USE_PARAMETERS) || userModuleService.isUserAdmin(request);
} else {
return userModuleService.isVerifyUserModule(request) || userModuleService.isUserAdmin(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,6 @@ public UserSession getSesssionDetails(HttpServletRequest request, CsrfToken toke
}
}
setLabunitRolesForExistingUser(request, session);
// setLabunitRolesForExistingUser(session);
Set<String> roles = new HashSet<>();
for (String roleId : userRoleService.getRoleIdsForUser(user.getId())) {
roles.add(roleService.getRoleById(roleId).getName().trim());
}
session.setRoles(roles);

}
return session;
}
Expand All @@ -168,6 +161,11 @@ private void setLabunitRolesForExistingUser(HttpServletRequest request, UserSess
Object principal = authentication.getPrincipal();
if (principal instanceof UserDetails) {
setLabunitRolesForExistingUserFromDB(session);
Set<String> roles = new HashSet<>();
for (String roleId : userRoleService.getRoleIdsForUser(session.getUserId())) {
roles.add(roleService.getRoleById(roleId).getName().trim());
}
session.setRoles(roles);
} else if (principal instanceof DefaultSaml2AuthenticatedPrincipal) {
setLabunitRolesForExistingUserFromGrantedAuthorities(session, authentication);
} else if (principal instanceof DefaultOAuth2User) {
Expand All @@ -180,15 +178,17 @@ private void setLabunitRolesForExistingUserFromGrantedAuthorities(UserSession se
Authentication authentication) {
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
Map<String, List<String>> userLabRolesMap = new HashMap<>();
Set<String> roles = new HashSet<>();
for (GrantedAuthority authority : authorities) {
String[] authorityExplode = authority.getAuthority().split("-");
if (authorityExplode.length == 3) {
List<String> roles = userLabRolesMap.getOrDefault(authorityExplode[2], new ArrayList<>());
List<String> userLabRoles = userLabRolesMap.getOrDefault(authorityExplode[2], new ArrayList<>());
userLabRoles.add(authorityExplode[1]);
roles.add(authorityExplode[1]);
userLabRolesMap.put(authorityExplode[2], roles);
userLabRolesMap.put(authorityExplode[2], userLabRoles);
}
}

session.setRoles(roles);
session.setUserLabRolesMap(userLabRolesMap);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ public synchronized void createActiveList() {
curItem.setMessageKey("plugin.menu.list.plugins");
adminMenuItems.add(curItem);

if (permissionBase.equals("ROLE")) {
if (permissionBase.equalsIgnoreCase("ROLE")) {
curItem = new AdminMenuItem();
curItem.setPath("/UnifiedSystemUserMenu");
curItem.setMessageKey("unifiedSystemUser.browser.title");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ private void setupUserRequest(HttpServletRequest request, LoginUser loginInfo) {
request.getSession().setAttribute(IActionConstants.USER_SESSION_DATA, usd);

// get permitted actions map (available modules for the current user)
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
Set<String> permittedPages = getPermittedForms(usd.getSystemUserId());
request.setAttribute(IActionConstants.PERMITTED_ACTIONS_MAP, permittedPages);
// showAdminMenu |= permittedPages.contains("MasterList");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ private void setupUserSession(HttpServletRequest request, LoginUser loginInfo) {
request.getSession().setAttribute("timezone", timezone);

// get permitted actions map (available modules for the current user)
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
Set<String> permittedPages = getPermittedForms(usd.getSystemUserId());
request.getSession().setAttribute(IActionConstants.PERMITTED_ACTIONS_MAP, permittedPages);
// showAdminMenu |= permittedPages.contains("MasterList");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.openelisglobal.common.util.ConfigurationProperties;
import org.openelisglobal.common.util.validator.GenericValidator;
import org.openelisglobal.common.validator.BaseErrors;
import org.openelisglobal.login.service.LoginUserService;
import org.openelisglobal.login.valueholder.LoginUser;
import org.openelisglobal.login.valueholder.UserSessionData;
import org.openelisglobal.role.service.RoleService;
Expand All @@ -29,7 +28,6 @@
import org.openelisglobal.systemuser.valueholder.SystemUser;
import org.openelisglobal.systemusermodule.service.PermissionModuleService;
import org.openelisglobal.systemusermodule.valueholder.PermissionModule;
import org.openelisglobal.test.service.TestSectionService;
import org.openelisglobal.userrole.service.UserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
Expand All @@ -47,9 +45,6 @@
@Component
public class CustomSSOAuthenticationSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler
implements IActionConstants {

@Autowired
private LoginUserService loginService;
@Autowired
private UserRoleService userRoleService;
@Autowired
Expand All @@ -58,8 +53,6 @@ public class CustomSSOAuthenticationSuccessHandler extends SavedRequestAwareAuth
private SystemUserService systemUserService;
@Autowired
private RoleService roleService;
@Autowired
private TestSectionService testSectionService;

@Value("${org.openelisglobal.timezone:}")
private String timezone;
Expand Down Expand Up @@ -246,7 +239,7 @@ private void setupUserSession(HttpServletRequest request, DefaultSaml2Authentica
request.getSession().setAttribute("timezone", timezone);

// get permitted actions map (available modules for the current user)
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
Set<String> permittedPages = getPermittedForms(authorities);
request.getSession().setAttribute(IActionConstants.PERMITTED_ACTIONS_MAP, permittedPages);
// showAdminMenu |= permittedPages.contains("MasterList");
Expand Down Expand Up @@ -293,7 +286,7 @@ private void setupUserSession(HttpServletRequest request, DefaultOAuth2User prin
request.getSession().setAttribute("timezone", timezone);

// get permitted actions map (available modules for the current user)
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equals("ROLE")) {
if (ConfigurationProperties.getInstance().getPropertyValue("permissions.agent").equalsIgnoreCase("ROLE")) {
Set<String> permittedPages = getPermittedForms(authorities);
request.getSession().setAttribute(IActionConstants.PERMITTED_ACTIONS_MAP, permittedPages);
// showAdminMenu |= permittedPages.contains("MasterList");
Expand All @@ -316,6 +309,7 @@ private Set<String> getPermittedForms(Collection<? extends GrantedAuthority> aut
}
}
}

for (String roleId : roleIds) {
Set<String> permittedPagesForRole = permissionModuleService
.getAllPermittedPagesFromAgentId(Integer.parseInt(roleId));
Expand Down

0 comments on commit 8e7c3d3

Please sign in to comment.