c0275b870468993101c571d8520d86b4496eae9a
[portal/sdk.git] /
1 package org.openecomp.portalsdk.core.service;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Set;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpSession;
9
10 import org.openecomp.portalsdk.core.domain.RoleFunction;
11 import org.openecomp.portalsdk.core.domain.User;
12 import org.openecomp.portalsdk.core.exception.SessionExpiredException;
13 import org.openecomp.portalsdk.core.util.SystemProperties;
14 import org.openecomp.portalsdk.core.web.support.AppUtils;
15 import org.openecomp.portalsdk.core.web.support.UserUtils;
16 import org.springframework.beans.factory.annotation.Autowired;
17
18 public class UrlAccessCentalizedImpl implements UrlAccessService {
19         
20         @Autowired
21         AppService appService;  
22         
23         @Autowired
24         RoleService roleService;
25
26
27         @Override
28         public boolean isUrlAccessible(HttpServletRequest request, String currentUrl) {
29                 
30                 boolean isAccessible = false;
31                 User user = UserUtils.getUserSession(request);
32                 
33                 
34                 HttpSession session = AppUtils.getSession(request);
35
36                 if (session == null) {
37                         throw new SessionExpiredException();
38                 }
39
40                 @SuppressWarnings("unchecked")
41                 List<RoleFunction> allRoleFunctionsList  = (List<RoleFunction>) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTION_LIST));
42                                 
43                 List<String> allUrls = new ArrayList<String>();
44
45                 for (int i = 0; i < allRoleFunctionsList.size(); i++) {
46                         if (allRoleFunctionsList.get(i).getCode() != null && ((String) allRoleFunctionsList.get(i).getCode()).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
47                                 String functionCd = ((String) allRoleFunctionsList.get(i).getCode()).substring(4).toUpperCase();
48                                 allUrls.add(functionCd);
49                         }
50                 }
51
52                 @SuppressWarnings("unchecked")
53                 Set<RoleFunction> roleFunction = UserUtils.getRoleFunctions(request);
54                 List list = new ArrayList<>(roleFunction);
55                 List<String> UserURLlist = new ArrayList<String>();
56                 
57                 if (list != null && list.size() > 0) {
58                         for (int i = 0; i < list.size(); i++) {
59                                 if (list.get(i) != null && ((String) list.get(i)).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
60                                         String functionCd = ((String) list.get(i)).substring(4).toUpperCase();
61                                         UserURLlist.add(functionCd);
62                                 }
63                         }
64                 }
65                 
66                 if((!UserURLlist.contains(currentUrl) && !allUrls.contains(currentUrl)) || (UserURLlist.contains(currentUrl) && allUrls.contains(currentUrl)))
67                 {
68                          isAccessible = true;
69                 }else {
70                          isAccessible = false;
71              }
72         return isAccessible;
73
74         }
75         
76         
77 }