1   package org.kuali.ole.catalog.rule;
2   
3   import org.kuali.ole.OLEConstants;
4   import org.kuali.rice.kim.api.identity.Person;
5   import org.kuali.rice.kim.api.permission.PermissionService;
6   import org.kuali.rice.kim.api.services.KimApiServiceLocator;
7   import org.kuali.rice.krad.maintenance.MaintenanceViewAuthorizerBase;
8   import org.kuali.rice.krad.uif.field.Field;
9   import org.kuali.rice.krad.uif.view.View;
10  import org.kuali.rice.krad.uif.view.ViewModel;
11  import org.kuali.rice.krad.util.KRADConstants;
12  
13  
14  
15  
16  public class OleLocationLevelAuthoriser extends MaintenanceViewAuthorizerBase {
17  
18      
19  
20  
21  
22  
23  
24  
25  
26  
27       @Override
28      public  boolean canEditField(View view, ViewModel model, Field field, String propertyName, Person user) {
29          PermissionService service= KimApiServiceLocator.getPermissionService();
30          
31          boolean canEdit=service.hasPermission(user.getPrincipalId(),KRADConstants.KRAD_NAMESPACE, OLEConstants.OleLocationLevel.Edit_Location_Level_perm);
32  
33          
34  
35          if(!field.getComponentSecurity().isEditAuthz() && field.getLabelField()!=null && field.getLabelField().getLabelText()!=null){
36                  String fieldName = field.getLabelField().getLabelText();
37                      if(fieldName.equalsIgnoreCase(OLEConstants.OleLocationLevel.CODE) || fieldName.equalsIgnoreCase(OLEConstants.OleLocationLevel.PARENT_ID))
38                           return false;
39                           }
40          else if(field.getComponentSecurity().isEditAuthz() && canEdit){
41              return true;
42          }
43          else{
44              return false;
45          }
46          return true;
47      }
48  
49  }
50  
51