diff options
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UrlAccessCentalizedImpl.java')
-rw-r--r-- | ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UrlAccessCentalizedImpl.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UrlAccessCentalizedImpl.java b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UrlAccessCentalizedImpl.java new file mode 100644 index 00000000..c0275b87 --- /dev/null +++ b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/UrlAccessCentalizedImpl.java @@ -0,0 +1,77 @@ +package org.openecomp.portalsdk.core.service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.openecomp.portalsdk.core.domain.RoleFunction; +import org.openecomp.portalsdk.core.domain.User; +import org.openecomp.portalsdk.core.exception.SessionExpiredException; +import org.openecomp.portalsdk.core.util.SystemProperties; +import org.openecomp.portalsdk.core.web.support.AppUtils; +import org.openecomp.portalsdk.core.web.support.UserUtils; +import org.springframework.beans.factory.annotation.Autowired; + +public class UrlAccessCentalizedImpl implements UrlAccessService { + + @Autowired + AppService appService; + + @Autowired + RoleService roleService; + + + @Override + public boolean isUrlAccessible(HttpServletRequest request, String currentUrl) { + + boolean isAccessible = false; + User user = UserUtils.getUserSession(request); + + + HttpSession session = AppUtils.getSession(request); + + if (session == null) { + throw new SessionExpiredException(); + } + + @SuppressWarnings("unchecked") + List<RoleFunction> allRoleFunctionsList = (List<RoleFunction>) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTION_LIST)); + + List<String> allUrls = new ArrayList<String>(); + + for (int i = 0; i < allRoleFunctionsList.size(); i++) { + if (allRoleFunctionsList.get(i).getCode() != null && ((String) allRoleFunctionsList.get(i).getCode()).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) { + String functionCd = ((String) allRoleFunctionsList.get(i).getCode()).substring(4).toUpperCase(); + allUrls.add(functionCd); + } + } + + @SuppressWarnings("unchecked") + Set<RoleFunction> roleFunction = UserUtils.getRoleFunctions(request); + List list = new ArrayList<>(roleFunction); + List<String> UserURLlist = new ArrayList<String>(); + + if (list != null && list.size() > 0) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i) != null && ((String) list.get(i)).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) { + String functionCd = ((String) list.get(i)).substring(4).toUpperCase(); + UserURLlist.add(functionCd); + } + } + } + + if((!UserURLlist.contains(currentUrl) && !allUrls.contains(currentUrl)) || (UserURLlist.contains(currentUrl) && allUrls.contains(currentUrl))) + { + isAccessible = true; + }else { + isAccessible = false; + } + return isAccessible; + + } + + +} |