@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); }
public ResourcePolicy(org.dspace.authorize.ResourcePolicy dspacePolicy) { this.id = dspacePolicy.getID(); switch (dspacePolicy.getAction()) { case org.dspace.core.Constants.READ: this.action = Action.READ; EPerson ePerson = dspacePolicy.getEPerson(); if (ePerson != null) { this.epersonId = ePerson.getID().toString(); Group group = dspacePolicy.getGroup(); if (group != null) { this.groupId = group.getID().toString(); this.resourceId = dspacePolicy.getdSpaceObject().getID().toString(); this.rpDescription = dspacePolicy.getRpDescription(); this.rpName = dspacePolicy.getRpName(); this.rpType = dspacePolicy.getRpType(); this.startDate = dspacePolicy.getStartDate(); this.endDate = dspacePolicy.getEndDate(); switch (dspacePolicy.getdSpaceObject().getType()) { case org.dspace.core.Constants.BITSTREAM: this.resourceType = "bitstream";
@Override public ResourcePolicy clone(Context context, ResourcePolicy resourcePolicy) throws SQLException, AuthorizeException { ResourcePolicy clone = create(context); clone.setGroup(resourcePolicy.getGroup()); clone.setEPerson(resourcePolicy.getEPerson()); clone.setStartDate((Date) ObjectUtils.clone(resourcePolicy.getStartDate())); clone.setEndDate((Date) ObjectUtils.clone(resourcePolicy.getEndDate())); clone.setRpType((String) ObjectUtils.clone(resourcePolicy.getRpType())); clone.setRpDescription((String) ObjectUtils.clone(resourcePolicy.getRpDescription())); update(context, clone); return clone; }
@Override public ResourcePolicy createResourcePolicy(Context context, DSpaceObject dso, Group group, EPerson eperson, int type, String rpType, String rpName, String rpDescription, Date startDate, Date endDate) throws SQLException, AuthorizeException { if (group == null && eperson == null) { throw new IllegalArgumentException( "We need at least an eperson or a group in order to create a resource policy."); } ResourcePolicy myPolicy = resourcePolicyService.create(context); myPolicy.setdSpaceObject(dso); myPolicy.setAction(type); myPolicy.setGroup(group); myPolicy.setEPerson(eperson); myPolicy.setRpType(rpType); myPolicy.setRpName(rpName); myPolicy.setRpDescription(rpDescription); myPolicy.setEndDate(endDate); myPolicy.setStartDate(startDate); resourcePolicyService.update(context, myPolicy); return myPolicy; }
/** * Add policy(org.dspace.rest.common.ResourcePolicy) to bitstream. * * @param context Context to create DSpace ResourcePolicy. * @param policy Policy which will be added to bitstream. * @param dspaceBitstream DSpace Bitstream object. * @throws SQLException An exception that provides information on a database access error or other errors. * @throws AuthorizeException Exception indicating the current user of the context does not have permission * to perform a particular action. */ private void addPolicyToBitstream(org.dspace.core.Context context, ResourcePolicy policy, org.dspace.content.Bitstream dspaceBitstream) throws SQLException, AuthorizeException { org.dspace.authorize.ResourcePolicy dspacePolicy = resourcePolicyService.create(context); dspacePolicy.setAction(policy.getActionInt()); dspacePolicy.setGroup(groupService.findByIdOrLegacyId(context, policy.getGroupId())); dspacePolicy.setdSpaceObject(dspaceBitstream); dspacePolicy.setStartDate(policy.getStartDate()); dspacePolicy.setEndDate(policy.getEndDate()); dspacePolicy.setRpDescription(policy.getRpDescription()); dspacePolicy.setRpName(policy.getRpName()); resourcePolicyService.update(context, dspacePolicy); }
if (policy != null) { List<ResourcePolicy> duplicates = resourcePolicyService .findByTypeGroupActionExceptId(context, dso, group, action, policy.getID()); if (!duplicates.isEmpty()) { policy = duplicates.get(0); policy.setRpType(ResourcePolicy.TYPE_CUSTOM); policy = createResourcePolicy(context, dso, group, ePerson, action, ResourcePolicy.TYPE_CUSTOM); policy.setGroup(group); policy.setEPerson(ePerson); policy.setStartDate(embargoDate); } else { policy.setStartDate(null); policy.setEndDate(null); policy.setRpName(name); policy.setRpDescription(reason); return policy;
/** * 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; }
boolean added = false; ResourcePolicy policy = ResourcePolicy.find(context, policyID); policy = ResourcePolicy.create(context); policy.setResource(policyParent); added = true; policy.setAction(actionID); policy.setGroup(group); policy.update(); context.commit(); result.setParameter("policyID", policy.getID());
ResourcePolicy policy = ResourcePolicy.create(c); policy.setResource(item); policy.update(); policy = ResourcePolicy.find(c, policyId); ResourcePolicy policy = ResourcePolicy.create(c); policy.setResource(bundle); policy.update(); ResourcePolicy policy = ResourcePolicy.create(c); policy.setResource(bitstream); policy.update(); ResourcePolicy policy = ResourcePolicy.find(c, UIUtil .getIntParameter(request, "policy_id")); policy.delete(); ResourcePolicy policy = ResourcePolicy.create(c); policy.setResource(collection); policy.update(); ResourcePolicy policy = ResourcePolicy.find(c, UIUtil .getIntParameter(request, "policy_id")); policy.delete(); ResourcePolicy policy = ResourcePolicy.find(c, UIUtil
Group group = policy.getGroup(); EPerson person = policy.getEPerson(); String rpName = policy.getRpName(); if (rpName != null) { rightsContext.setAttribute("rpName", rpName); Date now = new Date(); SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd"); if (policy.getStartDate() != null) { rightsContext.setAttribute("start-date", iso8601.format(policy.getStartDate())); if (policy.getStartDate().after(now)) { rightsContext.setAttribute("in-effect", "false"); if (policy.getEndDate() != null) { rightsContext.setAttribute("end-date", iso8601.format(policy.getEndDate())); if (policy.getEndDate().before(now)) { rightsContext.setAttribute("in-effect", "false"); log.error("Policy " + String.valueOf(policy.getID()) + " is neither user nor group! Omitted from package.");
/** * Add the default policies, which have not been already added to the given DSpace object * * @param context The relevant DSpace Context. * @param dso The DSpace Object to add policies to * @param defaultCollectionPolicies list of policies * @throws SQLException An exception that provides information on a database access error or other errors. * @throws AuthorizeException Exception indicating the current user of the context does not have permission * to perform a particular action. */ protected void addDefaultPoliciesNotInPlace(Context context, DSpaceObject dso, List<ResourcePolicy> defaultCollectionPolicies) throws SQLException, AuthorizeException { for (ResourcePolicy defaultPolicy : defaultCollectionPolicies) { if (!authorizeService .isAnIdenticalPolicyAlreadyInPlace(context, dso, defaultPolicy.getGroup(), Constants.READ, defaultPolicy.getID())) { ResourcePolicy newPolicy = resourcePolicyService.clone(context, defaultPolicy); newPolicy.setdSpaceObject(dso); newPolicy.setAction(Constants.READ); newPolicy.setRpType(ResourcePolicy.TYPE_INHERITED); resourcePolicyService.update(context, newPolicy); } } }
r.setdSpaceObject(item); r.setGroup(group); r.setAction(Constants.READ); resourcePolicyService.update(context, r); r.setdSpaceObject(item); r.setGroup(group); r.setAction(Constants.WRITE); resourcePolicyService.update(context, r); r.setdSpaceObject(item); r.setGroup(group); r.setAction(Constants.ADD); resourcePolicyService.update(context, r); r.setdSpaceObject(item); r.setGroup(group); r.setAction(Constants.READ); resourcePolicyService.update(context, r);
rp.setRpName(element.getAttributeValue("rpName")); rp.setStartDate(sdf.parse(element.getAttributeValue("start-date"))); rp.setEndDate(sdf.parse(element.getAttributeValue("end-date"))); rp.setGroup(anonGroup); } else if (ADMIN_CONTEXTCLASS.equals(contextClass)) { rp.setGroup(adminGroup); } else if (GROUP_CONTEXTCLASS.equals(contextClass)) { rp.setGroup(group); } catch (PackageException pe) { rp.setEPerson(person); } else { log.error("Unrecognized CONTEXTCLASS: " + contextClass); rp.setAction(parsePermissions(permsElement)); policies.add(rp);
.ResourcePolicy>(); for (org.dspace.authorize.ResourcePolicy policy : bitstreamsPolicies) { if (policy.getdSpaceObject().getID().equals(dspaceBitstream.getID())) { policiesToRemove.add(policy); dspacePolicy.setAction(org.dspace.core.Constants.READ); dspacePolicy.setGroup(groupService.findByIdOrLegacyId(context, groupId)); dspacePolicy.setdSpaceObject(dspaceBitstream); if ((year != null) || (month != null) || (day != null)) { Date date = new Date(); date.setMinutes(0); date.setSeconds(0); dspacePolicy.setStartDate(date);
private boolean willChangeStatus(Item item) throws SQLException { List<ResourcePolicy> policies = authorizeService.getPoliciesActionFilter(context, item, Constants.READ); for (ResourcePolicy policy : policies) { if ((policy.getGroup() != null) && (policy.getGroup().getName().equals("Anonymous"))) { if (policy.getStartDate() != null && policy.getStartDate().after(new Date())) { return true; } if (policy.getEndDate() != null && policy.getEndDate().after(new Date())) { return true; } } } return false; }
ResourcePolicy policy = ResourcePolicy.find(context, policyID); currentGroup = policy.getGroup(); actionID = policy.getAction(); objectID = policy.getResourceID(); objectType = policy.getResourceType(); main.setHead(T_main_head_edit.parameterize(policyID,Constants.typeText[objectType],objectID));
if (policy.getID() == highlightID) select.setLabel(String.valueOf(policy.getID())); select.addOption(String.valueOf(policy.getID())); Group policyGroup = policy.getGroup(); row.addCell().addXref(baseURL + "&submit_edit&policy_id=" + policy.getID() + "&object_id=" + objectID + "&object_type=" + objectType, String.valueOf(policy.getID())); row.addCell().addXref(baseURL + "&submit_edit&policy_id=" + policy.getID() + "&object_id=" + objectID + "&object_type=" + objectType, policy.getActionText()); if (policyGroup != null) { Cell groupCell = row.addCell(1,2);
for (String id : idsString.split(",")) ResourcePolicy policy = ResourcePolicy.find(context,Integer.valueOf(id)); policies.add(policy); row.addCell().addContent(policy.getID()); row.addCell().addContent(policy.getActionText()); if (policy.getGroup() != null) row.addCell().addContent(policy.getGroup().getName());
if (rp.getStartDate() == null) { System.out.println("CHECK WARNING: Item " + item.getHandle() + ", Bundle " + bn .getName() + " allows READ by " + ((rp.getEPerson() != null) ? "Group " + rp.getGroup().getName() : "EPerson " + rp.getEPerson().getFullName())); for (ResourcePolicy rp : getAuthorizeService() .getPoliciesActionFilter(context, bs, Constants.READ)) { if (rp.getStartDate() == null) { System.out.println("CHECK WARNING: Item " + item.getHandle() + ", Bitstream " + bs .getName() + " (in Bundle " + bn.getName() + ") allows READ by " + ((rp.getEPerson() != null) ? "Group " + rp.getGroup().getName() : "EPerson " + rp.getEPerson().getFullName()));