Package com.zycus.pm.client

Source Code of com.zycus.pm.client.PermissionManagementClient$MyResolver

package com.zycus.pm.client;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.zycus.pm.api.IPermissionManagerAPI;
import com.zycus.pm.api.IPermissionResolver;
import com.zycus.pm.api.IPermissionRightsAPI;
import com.zycus.pm.api.IPermissionStoreAPI;
import com.zycus.pm.api.bo.BaseRight;
import com.zycus.pm.api.bo.IPermisibleResource;
import com.zycus.pm.api.bo.IPermissionEntity;
import com.zycus.pm.api.bo.RightsGroup;
import com.zycus.pm.excpection.DuplicateNameException;
import com.zycus.pm.excpection.PermissionAccessException;
import com.zycus.pm.factory.PermissionAPIsFactory;
@SuppressWarnings("PMD")
public class PermissionManagementClient {
  private IPermissionRightsAPI  permissionRights  = PermissionAPIsFactory.getPermissionRightsAPI();
  private IPermissionManagerAPI  permissionManager  = PermissionAPIsFactory.getPermissionManagerAPI();

  public void createRights() {

    try {
      // this will add rights with same priority
      RightsGroup grp1 = permissionRights.addRights("Add-Edit-Delete", "Add", "Edit", "Delete");
      RightsGroup grp3 = permissionRights.addRights("Add-Edit-Delete2", "Add", "Edit", "Delete");
     
      // this shows how to add rights with different priority
      Map<String, Integer> rights = new LinkedHashMap<String, Integer>();
      rights.put("Can add 5 files", 1);
      rights.put("Can add 10 files", 2);
      rights.put("Can add 20 files", 3);

      RightsGroup grp2 = permissionRights.addRights("File count permissions", rights);

    } catch (DuplicateNameException a_excp) {
      a_excp.printStackTrace();
    }
  }
 
  public void associateRights() {
    IPermisibleResource resource = getDummyResource();
    try {
      // Getting required rights from the API at the beginning
      RightsGroup addEditDeleteGrp = permissionRights.getRightsGroup("Add-Edit-Delete");
     
      // explicitly deny add right for the specific entity to the specific resource
      permissionManager.associateRightGroup(resource, addEditDeleteGrp);

    } catch (Throwable a_excp) {
      a_excp.printStackTrace();
    }
  }
 
  public void removeAssociationRights() {
    IPermisibleResource resource = getDummyResource();
    try {
      // Getting required rights from the API at the beginning
      RightsGroup addEditDeleteGrp = permissionRights.getRightsGroup("Add-Edit-Delete");
     
      // explicitly deny add right for the specific entity to the specific resource
      permissionManager.removeAssociation(resource, addEditDeleteGrp);

    } catch (Throwable a_excp) {
      a_excp.printStackTrace();
    }
  }
 
  public void printAssociatedRights() {
    IPermisibleResource resource = getDummyResource();
    List<RightsGroup> lstRightGroup = permissionManager.getAllAssociatedGroups(resource);
    System.out.println(lstRightGroup);
  }

  public void assignRights() {
    IPermissionEntity entity = getDummyEntity();
    IPermisibleResource resource = getDummyResource();

    try {
      // Getting required rights from the API at the beginning
      BaseRight editRight = permissionRights.getBaseRight("Add-Edit-Delete", "Edit");
      BaseRight addRight = permissionRights.getBaseRight("Add-Edit-Delete", "Add");
     
     
      // explicitly deny add right for the specific entity to the specific resource
      permissionManager.upsertRight(addRight, entity, resource, false);

      // explicitly allow edit right for the specific entity to the specific resource
      permissionManager.upsertRight(editRight, entity, resource, true);

    } catch (PermissionAccessException a_excp) {
      a_excp.printStackTrace();
    }
  }
 
  public void checkRights() {
    IPermissionEntity entity = getDummyEntity();
    IPermisibleResource resource = getDummyResource();
   
    try {
      //Getting required rights from the API at the beginning
      BaseRight addRight = permissionRights.getBaseRight("Add-Edit-Delete", "Add");
      BaseRight editRight = permissionRights.getBaseRight("Add-Edit-Delete", "Edit");
     
      //checking whether the specified entity have add right on the specified resource or not
      if(permissionManager.getRight(entity, resource).isRightPermitted(addRight)) {
        System.out.println("Add right permitted");
      }else {
        System.out.println("Add right not permitted");
      }
     
      //checking whether the specified entity have edit right on the specified resource or not
      if(permissionManager.getRight(entity, resource).isRightPermitted(editRight)) {
        System.out.println("Edit right permitted");
      }else {
        System.out.println("Edit right not permitted");
      }
     
      //custom resolver
      if(permissionManager.getRight(entity, resource, new MyResolver()).isRightPermitted(editRight)) {
        System.out.println("Edit right permitted");
      }else {
        System.out.println("Edit right not permitted");
      }
    } catch (PermissionAccessException a_excp) {
      a_excp.printStackTrace();
    }
  }
 
  public void checkRightsHirerchy() {
    IPermissionEntity entity = getDummyChildEntity();
    IPermisibleResource resource = getDummyResource();
    IPermisibleResource childResource = getDummyChildResource();
   
    try {
      //Getting required rights from the API at the beginning
      BaseRight editRight = permissionRights.getBaseRight("Add-Edit-Delete", "Edit");
     
           
      //checking whether the specified entity have edit right on the specified resource or not
      if(permissionManager.getRight(entity, resource).isRightPermitted(editRight)) {
        System.out.println("Edit right permitted");
      }else {
        System.out.println("Edit right not permitted");
     
      System.out.println("PermissionManagementClient.checkRightsHirerchy(==============================)");
      if(permissionManager.getRight(entity, childResource).isRightPermitted(editRight)) {
        System.out.println("Edit right permitted");
      }else {
        System.out.println("Edit right not permitted");
      }
    } catch (PermissionAccessException a_excp) {
      a_excp.printStackTrace();
    }
  }

  class MyResolver implements IPermissionResolver {
    private IPermissionStoreAPI permissionStore = null;
    public boolean isRightPermitted(BaseRight right, IPermissionEntity entity, IPermisibleResource resource) {
      if(permissionStore == null) {
        throw new NullPointerException("IPermissionStoreAPI is not set");
      }
      System.out.println("MyResolver.isRightPermitted(" + right + ", " + entity + ", " + resource + ")");
      return false;
    }

    public void setPermissionStore(IPermissionStoreAPI a_permissionStore) {
      System.out.println("MyResolver.setPermissionStore(" + a_permissionStore + ")");
      this.permissionStore = a_permissionStore;
    }
  }
 
  private IPermissionEntity getDummyChildEntity() {
    IPermissionEntity entity = new IPermissionEntity() {

      public long getEntityID() {
        return 44;
      }

      public String getEntityName() {
        return null;
      }

      public long getEntityTypeID() {
        return 5;
      }

      public IPermissionEntity getParent() {
        return getDummyEntity();
      }

      public int compareTo(IPermissionEntity o) {
        return 0;
      }
     
    };   
    return entity;
  }
 
  private IPermissionEntity getDummyEntity() {
    IPermissionEntity entity = new IPermissionEntity() {

      public long getEntityID() {
        return 43;
      }

      public String getEntityName() {
        return null;
      }

      public long getEntityTypeID() {
        return 4;
      }

      public IPermissionEntity getParent() {
        return null;
      }

      public int compareTo(IPermissionEntity o) {
        return 0;
      }
     
    };   
    return entity;
  }
 
  private IPermisibleResource getDummyChildResource() {
    IPermisibleResource resource = new IPermisibleResource() {

      public IPermisibleResource getParent() {
        return getDummyResource();
      }

      public long getResourceID() {
        return 23;
      }

      public String getResourceName() {
        return "Dummy Resource child";
      }

      public long getResourceTypeID() {
        return 11;
      }

      public int compareTo(IPermisibleResource o) {
        // TODO Auto-generated method stub
        return 0;
      }
     
    };
    return resource;
  }
 
  private IPermisibleResource getDummyResource() {
    IPermisibleResource resource = new IPermisibleResource() {

      public IPermisibleResource getParent() {
        return null;
      }

      public long getResourceID() {
        return 1;
      }

      public String getResourceName() {
        return "Dummy Resource";
      }

      public long getResourceTypeID() {
        return 1;
      }

      public int compareTo(IPermisibleResource o) {
        // TODO Auto-generated method stub
        return 0;
      }
     
    };
    return resource;
  }
}
TOP

Related Classes of com.zycus.pm.client.PermissionManagementClient$MyResolver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.