@Test(expected=AuthorizeException.class) public void testWithdrawNoAuth() throws Exception { new NonStrictExpectations() { AuthorizeUtil authManager; { AuthorizeUtil.authorizeWithdrawItem((Context) any, (Item) any); result = new AuthorizeException(); } }; it.withdraw(); fail("Exception expected"); }
public void withdraw() throws SQLException, AuthorizeException, IOException { AuthorizeUtil.authorizeWithdrawItem(ourContext, this); String timestamp = DCDate.getCurrent().toString(); EPerson e = ourContext.getCurrentUser(); StringBuilder prov = new StringBuilder(); prov.append("Item withdrawn by ").append(e.getFullName()).append(" (") .append(e.getEmail()).append(") on ").append(timestamp).append("\n") .append("Item was in collections:\n"); Collection[] colls = getCollections(); for (int i = 0; i < colls.length; i++) { prov.append(colls[i].getMetadata("name")).append(" (ID: ").append(colls[i].getID()).append(")\n"); } itemRow.setColumn("withdrawn", true); itemRow.setColumn("in_archive", false); prov.append(InstallItem.getBitstreamProvenanceMessage(this)); addDC("description", "provenance", "en", prov.toString()); update(); ourContext.addEvent(new Event(Event.MODIFY, Constants.ITEM, getID(), "WITHDRAW")); AuthorizeManager.removeAllPolicies(ourContext, this); log.info(LogManager.getHeader(ourContext, "withdraw_item", "user=" + e.getEmail() + ",item_id=" + getID())); }
Item extends DSpaceObject { public void withdraw() throws SQLException, AuthorizeException, IOException { AuthorizeUtil.authorizeWithdrawItem(ourContext, this); String timestamp = DCDate.getCurrent().toString(); EPerson e = ourContext.getCurrentUser(); StringBuilder prov = new StringBuilder(); prov.append("Item withdrawn by ").append(e.getFullName()).append(" (") .append(e.getEmail()).append(") on ").append(timestamp).append("\n") .append("Item was in collections:\n"); Collection[] colls = getCollections(); for (int i = 0; i < colls.length; i++) { prov.append(colls[i].getMetadata("name")).append(" (ID: ").append(colls[i].getID()).append(")\n"); } itemRow.setColumn("withdrawn", true); itemRow.setColumn("in_archive", false); prov.append(InstallItem.getBitstreamProvenanceMessage(this)); addDC("description", "provenance", "en", prov.toString()); update(); ourContext.addEvent(new Event(Event.MODIFY, Constants.ITEM, getID(), "WITHDRAW")); AuthorizeManager.removeAllPolicies(ourContext, this); log.info(LogManager.getHeader(ourContext, "withdraw_item", "user=" + e.getEmail() + ",item_id=" + getID())); } }
Item extends DSpaceObject { public void withdraw() throws SQLException, AuthorizeException, IOException { AuthorizeUtil.authorizeWithdrawItem(ourContext, this); String timestamp = DCDate.getCurrent().toString(); EPerson e = ourContext.getCurrentUser(); StringBuilder prov = new StringBuilder(); prov.append("Item withdrawn by ").append(e.getFullName()).append(" (") .append(e.getEmail()).append(") on ").append(timestamp).append("\n") .append("Item was in collections:\n"); Collection[] colls = getCollections(); for (int i = 0; i < colls.length; i++) { prov.append(colls[i].getMetadata("name")).append(" (ID: ").append(colls[i].getID()).append(")\n"); } itemRow.setColumn("withdrawn", true); itemRow.setColumn("in_archive", false); prov.append(InstallItem.getBitstreamProvenanceMessage(this)); addDC("description", "provenance", "en", prov.toString()); update(); ourContext.addEvent(new Event(Event.MODIFY, Constants.ITEM, getID(), "WITHDRAW")); AuthorizeManager.removeAllPolicies(ourContext, this); log.info(LogManager.getHeader(ourContext, "withdraw_item", "user=" + e.getEmail() + ",item_id=" + getID())); } Item(Context context, TableRow row); }
Item extends DSpaceObject { public void withdraw() throws SQLException, AuthorizeException, IOException { AuthorizeUtil.authorizeWithdrawItem(ourContext, this); String timestamp = DCDate.getCurrent().toString(); EPerson e = ourContext.getCurrentUser(); StringBuilder prov = new StringBuilder(); prov.append("Item withdrawn by ").append(e.getFullName()).append(" (") .append(e.getEmail()).append(") on ").append(timestamp).append("\n") .append("Item was in collections:\n"); Collection[] colls = getCollections(); for (int i = 0; i < colls.length; i++) { prov.append(colls[i].getMetadata("name")).append(" (ID: ").append(colls[i].getID()).append(")\n"); } itemRow.setColumn("withdrawn", true); itemRow.setColumn("in_archive", false); prov.append(InstallItem.getBitstreamProvenanceMessage(this)); addDC("description", "provenance", "en", prov.toString()); update(); ourContext.addEvent(new Event(Event.MODIFY, Constants.ITEM, getID(), "WITHDRAW")); AuthorizeManager.removeAllPolicies(ourContext, this); log.info(LogManager.getHeader(ourContext, "withdraw_item", "user=" + e.getEmail() + ",item_id=" + getID())); } Item(Context context, TableRow row); static Item find(Context context, int id); static ItemIterator findAll(Context context); static ItemIterator findBySubmitter(Context context, EPerson eperson); int getID(); String getHandle(); boolean isArchived(); boolean isWithdrawn(); Date getLastModified(); void setArchived(boolean isArchived); void setOwningCollection(Collection c); Collection getOwningCollection(); @Deprecated DCValue[] getDC(String element, String qualifier, String lang); DCValue[] getMetadata(String schema, String element, String qualifier,
            String lang); DCValue[] getMetadata(String mdString); @Deprecated void addDC(String element, String qualifier, String lang,
            String[] values); @Deprecated void addDC(String element, String qualifier, String lang,
            String value); void addMetadata(String schema, String element, String qualifier, String lang,
            String[] values); void addMetadata(String schema, String element, String qualifier, String lang,
            String[] values, String authorities[], int confidences[]); void addMetadata(String schema, String element, String qualifier,
            String lang, String value); void addMetadata(String schema, String element, String qualifier,
            String lang, String value, String authority, int confidence); @Deprecated void clearDC(String element, String qualifier, String lang); void clearMetadata(String schema, String element, String qualifier,
            String lang); EPerson getSubmitter(); void setSubmitter(EPerson sub); boolean isIn(Collection collection); Collection[] getCollections(); Community[] getCommunities(); Bundle[] getBundles(); Bundle[] getBundles(String name); Bundle createBundle(String name); void addBundle(Bundle b); void removeBundle(Bundle b); Bitstream createSingleBitstream(InputStream is, String name); Bitstream createSingleBitstream(InputStream is); Bitstream[] getNonInternalBitstreams(); void removeDSpaceLicense(); void removeLicenses(); void update(); void withdraw(); void reinstate(); void decache(); @Override boolean equals(Object obj); @Override int hashCode(); boolean isOwningCollection(Collection c); int getType(); void replaceAllItemPolicies(List<ResourcePolicy> newpolicies); void replaceAllBitstreamPolicies(List<ResourcePolicy> newpolicies); void removeGroupPolicies(Group g); void inheritCollectionDefaultPolicies(Collection c); void move(Collection from, Collection to); void move(Collection from, Collection to, boolean inheritDefaultPolicies); boolean hasUploadedFiles(); Collection[] getCollectionsNotLinked(); boolean canEdit(); String getName(); static ItemIterator findByMetadataField(Context context,
               String schema, String element, String qualifier, String value); DSpaceObject getAdminObject(int action); DSpaceObject getParentObject(); static ItemIterator findByAuthorityValue(Context context,
            String schema, String element, String qualifier, String value); }
Item extends DSpaceObject { public void withdraw() throws SQLException, AuthorizeException, IOException { AuthorizeUtil.authorizeWithdrawItem(ourContext, this); String timestamp = DCDate.getCurrent().toString(); EPerson e = ourContext.getCurrentUser(); StringBuilder prov = new StringBuilder(); prov.append("Item withdrawn by ").append(e.getFullName()).append(" (") .append(e.getEmail()).append(") on ").append(timestamp).append("\n") .append("Item was in collections:\n"); Collection[] colls = getCollections(); for (int i = 0; i < colls.length; i++) { prov.append(colls[i].getMetadata("name")).append(" (ID: ").append(colls[i].getID()).append(")\n"); } itemRow.setColumn("withdrawn", true); itemRow.setColumn("in_archive", false); prov.append(InstallItem.getBitstreamProvenanceMessage(this)); addDC("description", "provenance", "en", prov.toString()); update(); ourContext.addEvent(new Event(Event.MODIFY, Constants.ITEM, getID(), "WITHDRAW")); AuthorizeManager.removeAllPolicies(ourContext, this); log.info(LogManager.getHeader(ourContext, "withdraw_item", "user=" + e.getEmail() + ",item_id=" + getID())); } Item(Context context, TableRow row); static Item find(Context context, int id); static ItemIterator findAll(Context context); static ItemIterator findBySubmitter(Context context, EPerson eperson); int getID(); String getHandle(); boolean isArchived(); boolean isWithdrawn(); Date getLastModified(); void setArchived(boolean isArchived); void setOwningCollection(Collection c); Collection getOwningCollection(); @Deprecated DCValue[] getDC(String element, String qualifier, String lang); DCValue[] getMetadata(String schema, String element, String qualifier,
            String lang); DCValue[] getMetadata(String mdString); @Deprecated void addDC(String element, String qualifier, String lang,
            String[] values); @Deprecated void addDC(String element, String qualifier, String lang,
            String value); void addMetadata(String schema, String element, String qualifier, String lang,
            String[] values); void addMetadata(String schema, String element, String qualifier, String lang,
            String[] values, String authorities[], int confidences[]); void addMetadata(String schema, String element, String qualifier,
            String lang, String value); void addMetadata(String schema, String element, String qualifier,
            String lang, String value, String authority, int confidence); @Deprecated void clearDC(String element, String qualifier, String lang); void clearMetadata(String schema, String element, String qualifier,
            String lang); EPerson getSubmitter(); void setSubmitter(EPerson sub); boolean isIn(Collection collection); Collection[] getCollections(); Community[] getCommunities(); Bundle[] getBundles(); Bundle[] getBundles(String name); Bundle createBundle(String name); void addBundle(Bundle b); void removeBundle(Bundle b); Bitstream createSingleBitstream(InputStream is, String name); Bitstream createSingleBitstream(InputStream is); Bitstream[] getNonInternalBitstreams(); void removeDSpaceLicense(); void removeLicenses(); void update(); void withdraw(); void reinstate(); void decache(); @Override boolean equals(Object obj); @Override int hashCode(); boolean isOwningCollection(Collection c); int getType(); void replaceAllItemPolicies(List<ResourcePolicy> newpolicies); void replaceAllBitstreamPolicies(List<ResourcePolicy> newpolicies); void removeGroupPolicies(Group g); void inheritCollectionDefaultPolicies(Collection c); void move(Collection from, Collection to); void move(Collection from, Collection to, boolean inheritDefaultPolicies); boolean hasUploadedFiles(); Collection[] getCollectionsNotLinked(); boolean canEdit(); String getName(); static ItemIterator findByMetadataField(Context context,
               String schema, String element, String qualifier, String value); DSpaceObject getAdminObject(int action); DSpaceObject getParentObject(); static ItemIterator findByAuthorityValue(Context context,
            String schema, String element, String qualifier, String value); static final String ANY; }