528f1bbbb5f467f9cd26ab17da8bc064cf74e838
[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 import org.springframework.transaction.annotation.Transactional;
18
19 @Transactional
20 public class UrlAccessCentalizedImpl implements UrlAccessService {
21         
22         @Autowired
23         AppService appService;  
24         
25         @Autowired
26         RoleService roleService;
27
28
29         @Override
30         public boolean isUrlAccessible(HttpServletRequest request, String currentUrl) {
31                 
32                 boolean isAccessible = false;
33                 User user = UserUtils.getUserSession(request);
34                 
35                 
36                 HttpSession session = AppUtils.getSession(request);
37
38                 if (session == null) {
39                         throw new SessionExpiredException();
40                 }
41
42                 @SuppressWarnings("unchecked")
43                 List<RoleFunction> allRoleFunctionsList  = (List<RoleFunction>) session.getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTION_LIST));
44                                 
45                 List<String> allUrls = new ArrayList<String>();
46
47                 for (int i = 0; i < allRoleFunctionsList.size(); i++) {
48                         if (allRoleFunctionsList.get(i).getCode() != null && ((String) allRoleFunctionsList.get(i).getCode()).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
49                                 String functionCd = ((String) allRoleFunctionsList.get(i).getCode()).substring(4).toUpperCase();
50                                 allUrls.add(functionCd);
51                         }
52                 }
53
54                 @SuppressWarnings("unchecked")
55                 Set<RoleFunction> roleFunction = UserUtils.getRoleFunctions(request);
56                 List list = new ArrayList<>(roleFunction);
57                 List<String> UserURLlist = new ArrayList<String>();
58                 
59                 if (list != null && list.size() > 0) {
60                         for (int i = 0; i < list.size(); i++) {
61                                 if (list.get(i) != null && ((String) list.get(i)).substring(0, 4).toUpperCase().equals("url_".toUpperCase())) {
62                                         String functionCd = ((String) list.get(i)).substring(4).toUpperCase();
63                                         UserURLlist.add(functionCd);
64                                 }
65                         }
66                 }
67                 
68                 if((!UserURLlist.contains(currentUrl) && !allUrls.contains(currentUrl)) || (UserURLlist.contains(currentUrl) && allUrls.contains(currentUrl)))
69                 {
70                          isAccessible = true;
71                 }else {
72                          isAccessible = false;
73              }
74         return isAccessible;
75
76         }
77         
78         
79 }