/** * @param resourcePolicy resource policy * @return action text or 'null' if action row empty */ @Override public String getActionText(ResourcePolicy resourcePolicy) { int myAction = resourcePolicy.getAction(); if (myAction == -1) { return "..."; } else { return Constants.actionText[myAction]; } }
@Override public void inheritPolicies(Context c, DSpaceObject src, DSpaceObject dest) throws SQLException, AuthorizeException { // find all policies for the source object List<ResourcePolicy> policies = getPolicies(c, src); //Only inherit non-ADMIN policies (since ADMIN policies are automatically inherited) List<ResourcePolicy> nonAdminPolicies = new ArrayList<ResourcePolicy>(); for (ResourcePolicy rp : policies) { if (rp.getAction() != Constants.ADMIN) { nonAdminPolicies.add(rp); } } addPolicies(c, nonAdminPolicies, dest); }
@Override public boolean isAnIdenticalPolicyAlreadyInPlace(Context c, DSpaceObject o, ResourcePolicy rp) throws SQLException { return isAnIdenticalPolicyAlreadyInPlace(c, o, rp.getGroup(), rp.getAction(), rp.getID()); }
protected void grantSubmitterReadPolicies(Context context, Item item) throws SQLException, AuthorizeException { //A list of policies the user has for this item List<Integer> userHasPolicies = new ArrayList<Integer>(); List<ResourcePolicy> itempols = authorizeService.getPolicies(context, item); EPerson submitter = item.getSubmitter(); for (ResourcePolicy resourcePolicy : itempols) { if (submitter.equals(resourcePolicy.getEPerson())) { //The user has already got this policy so add it to the list userHasPolicies.add(resourcePolicy.getAction()); } } //Make sure we don't add duplicate policies if (!userHasPolicies.contains(Constants.READ)) { addPolicyToItem(context, item, Constants.READ, submitter, ResourcePolicy.TYPE_SUBMISSION); } }
public void grantUserAllItemPolicies(Context context, Item item, EPerson epa) throws AuthorizeException, SQLException { if (epa != null) { //A list of policies the user has for this item List<Integer> userHasPolicies = new ArrayList<Integer>(); List<ResourcePolicy> itempols = authorizeService.getPolicies(context, item); for (ResourcePolicy resourcePolicy : itempols) { if (epa.equals(resourcePolicy.getEPerson())) { //The user has already got this policy so it it to the list userHasPolicies.add(resourcePolicy.getAction()); } } //Make sure we don't add duplicate policies if (!userHasPolicies.contains(Constants.READ)) { addPolicyToItem(context, item, Constants.READ, epa); } if (!userHasPolicies.contains(Constants.WRITE)) { addPolicyToItem(context, item, Constants.WRITE, epa); } if (!userHasPolicies.contains(Constants.DELETE)) { addPolicyToItem(context, item, Constants.DELETE, epa); } if (!userHasPolicies.contains(Constants.ADD)) { addPolicyToItem(context, item, Constants.ADD, epa); } if (!userHasPolicies.contains(Constants.REMOVE)) { addPolicyToItem(context, item, Constants.REMOVE, epa); } } }
protected void grantGroupAllItemPolicies(Context context, Item item, Group group) throws AuthorizeException, SQLException { if (group != null) { //A list of policies the user has for this item List<Integer> groupHasPolicies = new ArrayList<Integer>(); List<ResourcePolicy> itempols = authorizeService.getPolicies(context, item); for (ResourcePolicy resourcePolicy : itempols) { if (group.equals(resourcePolicy.getGroup())) { //The user has already got this policy so it it to the list groupHasPolicies.add(resourcePolicy.getAction()); } } //Make sure we don't add duplicate policies if (!groupHasPolicies.contains(Constants.READ)) { addGroupPolicyToItem(context, item, Constants.READ, group); } if (!groupHasPolicies.contains(Constants.WRITE)) { addGroupPolicyToItem(context, item, Constants.WRITE, group); } if (!groupHasPolicies.contains(Constants.DELETE)) { addGroupPolicyToItem(context, item, Constants.DELETE, group); } if (!groupHasPolicies.contains(Constants.ADD)) { addGroupPolicyToItem(context, item, Constants.ADD, group); } if (!groupHasPolicies.contains(Constants.REMOVE)) { addGroupPolicyToItem(context, item, Constants.REMOVE, group); } } }
/** * Return a hash code for this object. * * @return int hash of object */ @Override public int hashCode() { int hash = 7; hash = 19 * hash + this.getAction(); if (this.getGroup() != null) { hash = 19 * hash + this.getGroup().hashCode(); } else { hash = 19 * hash + -1; } if (this.getEPerson() != null) { hash = 19 * hash + this.getEPerson().hashCode(); } else { hash = 19 * hash + -1; } hash = 19 * hash + (this.getStartDate() != null ? this.getStartDate().hashCode() : 0); hash = 19 * hash + (this.getEndDate() != null ? this.getEndDate().hashCode() : 0); return hash; }
public ResourcePolicy(org.dspace.authorize.ResourcePolicy dspacePolicy) { this.id = dspacePolicy.getID(); switch (dspacePolicy.getAction()) { case org.dspace.core.Constants.READ: this.action = Action.READ;
@Override public void addPolicies(Context c, List<ResourcePolicy> policies, DSpaceObject dest) throws SQLException, AuthorizeException { // now add them to the destination object List<ResourcePolicy> newPolicies = new LinkedList<>(); for (ResourcePolicy srp : policies) { ResourcePolicy rp = resourcePolicyService.create(c); // copy over values rp.setdSpaceObject(dest); rp.setAction(srp.getAction()); rp.setEPerson(srp.getEPerson()); rp.setGroup(srp.getGroup()); rp.setStartDate(srp.getStartDate()); rp.setEndDate(srp.getEndDate()); rp.setRpName(srp.getRpName()); rp.setRpDescription(srp.getRpDescription()); rp.setRpType(srp.getRpType()); // and add policy to list of new policies newPolicies.add(rp); } resourcePolicyService.update(c, newPolicies); }
int action = policy.getAction();
actionID = policy.getAction();