View Javadoc

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   * OleLocationLevelAuthoriser  class authorises permission for Location Level Maintenance Document
15   */
16  public class OleLocationLevelAuthoriser extends MaintenanceViewAuthorizerBase {
17  
18      /**
19       *  This method  is used to check whether that particular field is editable or not.
20       * @param view
21       * @param model
22       * @param field
23       * @param propertyName
24       * @param user
25       * @return boolean
26       */
27       @Override
28      public  boolean canEditField(View view, ViewModel model, Field field, String propertyName, Person user) {
29          PermissionService service= KimApiServiceLocator.getPermissionService();
30          // Checking whether the user has permission
31          boolean canEdit=service.hasPermission(user.getPrincipalId(),KRADConstants.KRAD_NAMESPACE, OLEConstants.OleLocationLevel.Edit_Location_Level_perm);
32  
33          //for disabling the code and parent level id
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