org.onap migration
[vid.git] / vid-app-common / src / main / java / org / onap / vid / roles / RoleValidator.java
1 package org.onap.vid.roles;
2
3 import org.onap.vid.mso.rest.RequestDetails;
4
5 import java.util.List;
6 import java.util.Map;
7
8 /**
9  * Created by Oren on 7/12/17.
10  */
11 public class RoleValidator {
12
13     private List<Role> userRoles;
14
15     public RoleValidator(List<Role> roles) {
16         this.userRoles = roles;
17     }
18
19     public boolean isSubscriberPermitted(String subscriberName) {
20         for (Role role : userRoles) {
21             if (role.getSubscribeName().equals(subscriberName))
22                 return true;
23         }
24         return false;
25     }
26
27     public boolean isServicePermitted(String subscriberName, String serviceType) {
28         for (Role role : userRoles) {
29             if (role.getSubscribeName().equals(subscriberName) && role.getServiceType().equals(serviceType))
30                 return true;
31         }
32         return false;
33     }
34
35     public boolean isMsoRequestValid(RequestDetails mso_request) {
36         try {
37             String globalSubscriberIdRequested = (String) ((Map) ((Map) mso_request.getAdditionalProperties().get("requestDetails")).get("subscriberInfo")).get("globalSubscriberId");
38             String serviceType = (String) ((Map) ((Map) mso_request.getAdditionalProperties().get("requestDetails")).get("requestParameters")).get("subscriptionServiceType");
39             return isServicePermitted(globalSubscriberIdRequested, serviceType);
40         } catch (Exception e) {
41             //Until we'll get the exact information regarding the tenants and the global customer id, we'll return true on unknown requests to mso
42             return true;
43         }
44 //        return false;
45     }
46
47     public boolean isTenantPermitted(String globalCustomerId, String serviceType, String tenantName) {
48         for (Role role : userRoles) {
49             if (role.getSubscribeName().equals(globalCustomerId)
50                     && role.getServiceType().equals(serviceType)
51                     && (role.getTenant() == null || role.getTenant().equalsIgnoreCase(tenantName))) {
52                 return true;
53             }
54         }
55         return false;
56     }
57 }