mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 15:33:09 +00:00
DS-1711 DS-1712 DS-1466 implement consistent definition of private item
This commit is contained in:
@@ -116,6 +116,7 @@ public class BrowseDAOOracle implements BrowseDAO
|
|||||||
/** flags for what the items represent */
|
/** flags for what the items represent */
|
||||||
private boolean itemsInArchive = true;
|
private boolean itemsInArchive = true;
|
||||||
private boolean itemsWithdrawn = false;
|
private boolean itemsWithdrawn = false;
|
||||||
|
private boolean itemsDiscoverable = true;
|
||||||
|
|
||||||
private boolean enableBrowseFrequencies = true;
|
private boolean enableBrowseFrequencies = true;
|
||||||
|
|
||||||
@@ -360,7 +361,8 @@ public class BrowseDAOOracle implements BrowseDAO
|
|||||||
TableRow row = tri.next();
|
TableRow row = tri.next();
|
||||||
BrowseItem browseItem = new BrowseItem(context, row.getIntColumn("item_id"),
|
BrowseItem browseItem = new BrowseItem(context, row.getIntColumn("item_id"),
|
||||||
itemsInArchive,
|
itemsInArchive,
|
||||||
itemsWithdrawn);
|
itemsWithdrawn,
|
||||||
|
itemsDiscoverable);
|
||||||
results.add(browseItem);
|
results.add(browseItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -682,11 +684,19 @@ public class BrowseDAOOracle implements BrowseDAO
|
|||||||
{
|
{
|
||||||
itemsInArchive = false;
|
itemsInArchive = false;
|
||||||
itemsWithdrawn = true;
|
itemsWithdrawn = true;
|
||||||
|
itemsDiscoverable = true;
|
||||||
}
|
}
|
||||||
else
|
else if (table.equals(BrowseIndex.getPrivateBrowseIndex().getTableName()))
|
||||||
|
{
|
||||||
|
itemsInArchive = true;
|
||||||
|
itemsWithdrawn = false;
|
||||||
|
itemsDiscoverable = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
itemsInArchive = true;
|
itemsInArchive = true;
|
||||||
itemsWithdrawn = false;
|
itemsWithdrawn = false;
|
||||||
|
itemsDiscoverable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.rebuildQuery = true;
|
this.rebuildQuery = true;
|
||||||
|
@@ -116,6 +116,7 @@ public class BrowseDAOPostgres implements BrowseDAO
|
|||||||
/** flags for what the items represent */
|
/** flags for what the items represent */
|
||||||
private boolean itemsInArchive = true;
|
private boolean itemsInArchive = true;
|
||||||
private boolean itemsWithdrawn = false;
|
private boolean itemsWithdrawn = false;
|
||||||
|
private boolean itemsDiscoverable = true;
|
||||||
|
|
||||||
private boolean enableBrowseFrequencies = true;
|
private boolean enableBrowseFrequencies = true;
|
||||||
|
|
||||||
@@ -367,7 +368,8 @@ public class BrowseDAOPostgres implements BrowseDAO
|
|||||||
TableRow row = tri.next();
|
TableRow row = tri.next();
|
||||||
BrowseItem browseItem = new BrowseItem(context, row.getIntColumn("item_id"),
|
BrowseItem browseItem = new BrowseItem(context, row.getIntColumn("item_id"),
|
||||||
itemsInArchive,
|
itemsInArchive,
|
||||||
itemsWithdrawn);
|
itemsWithdrawn,
|
||||||
|
itemsDiscoverable);
|
||||||
results.add(browseItem);
|
results.add(browseItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -687,13 +689,22 @@ public class BrowseDAOPostgres implements BrowseDAO
|
|||||||
{
|
{
|
||||||
itemsInArchive = false;
|
itemsInArchive = false;
|
||||||
itemsWithdrawn = true;
|
itemsWithdrawn = true;
|
||||||
|
itemsDiscoverable = true;
|
||||||
}
|
}
|
||||||
else
|
else if (table.equals(BrowseIndex.getPrivateBrowseIndex().getTableName()))
|
||||||
|
{
|
||||||
|
itemsInArchive = true;
|
||||||
|
itemsWithdrawn = false;
|
||||||
|
itemsDiscoverable = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
itemsInArchive = true;
|
itemsInArchive = true;
|
||||||
itemsWithdrawn = false;
|
itemsWithdrawn = false;
|
||||||
|
itemsDiscoverable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.rebuildQuery = true;
|
this.rebuildQuery = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -55,6 +55,9 @@ public class BrowseItem extends DSpaceObject
|
|||||||
/** is the item withdrawn */
|
/** is the item withdrawn */
|
||||||
private boolean withdrawn = false;
|
private boolean withdrawn = false;
|
||||||
|
|
||||||
|
/** is the item discoverable */
|
||||||
|
private boolean discoverable = true;
|
||||||
|
|
||||||
/** item handle */
|
/** item handle */
|
||||||
private String handle = null;
|
private String handle = null;
|
||||||
|
|
||||||
@@ -66,12 +69,13 @@ public class BrowseItem extends DSpaceObject
|
|||||||
* @param in_archive
|
* @param in_archive
|
||||||
* @param withdrawn
|
* @param withdrawn
|
||||||
*/
|
*/
|
||||||
public BrowseItem(Context context, int id, boolean in_archive, boolean withdrawn)
|
public BrowseItem(Context context, int id, boolean in_archive, boolean withdrawn, boolean discoverable)
|
||||||
{
|
{
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.in_archive = in_archive;
|
this.in_archive = in_archive;
|
||||||
this.withdrawn = withdrawn;
|
this.withdrawn = withdrawn;
|
||||||
|
this.discoverable = discoverable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -404,4 +408,8 @@ public class BrowseItem extends DSpaceObject
|
|||||||
{
|
{
|
||||||
return withdrawn;
|
return withdrawn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isDiscoverable() {
|
||||||
|
return discoverable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
public class BrowseItemDAOOracle implements BrowseItemDAO
|
public class BrowseItemDAOOracle implements BrowseItemDAO
|
||||||
{
|
{
|
||||||
/** query to obtain all the items from the database */
|
/** query to obtain all the items from the database */
|
||||||
private String findAll = "SELECT item_id, in_archive, withdrawn FROM item WHERE in_archive = 1 OR withdrawn = 1";
|
private String findAll = "SELECT item_id, in_archive, withdrawn, discoverable FROM item WHERE in_archive = 1 OR withdrawn = 1";
|
||||||
|
|
||||||
/** query to get the text value of a metadata element only (qualifier is NULL) */
|
/** query to get the text value of a metadata element only (qualifier is NULL) */
|
||||||
private String getByMetadataElement = "SELECT authority, confidence, text_value,text_lang,element,qualifier FROM metadatavalue, metadatafieldregistry, metadataschemaregistry " +
|
private String getByMetadataElement = "SELECT authority, confidence, text_value,text_lang,element,qualifier FROM metadatavalue, metadatafieldregistry, metadataschemaregistry " +
|
||||||
@@ -75,7 +75,8 @@ public class BrowseItemDAOOracle implements BrowseItemDAO
|
|||||||
TableRow row = tri.next();
|
TableRow row = tri.next();
|
||||||
items.add(new BrowseItem(context, row.getIntColumn("item_id"),
|
items.add(new BrowseItem(context, row.getIntColumn("item_id"),
|
||||||
row.getBooleanColumn("in_archive"),
|
row.getBooleanColumn("in_archive"),
|
||||||
row.getBooleanColumn("withdrawn")));
|
row.getBooleanColumn("withdrawn"),
|
||||||
|
row.getBooleanColumn("discoverable")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
public class BrowseItemDAOPostgres implements BrowseItemDAO
|
public class BrowseItemDAOPostgres implements BrowseItemDAO
|
||||||
{
|
{
|
||||||
/** query to obtain all the items from the database */
|
/** query to obtain all the items from the database */
|
||||||
private String findAll = "SELECT item_id, in_archive, withdrawn FROM item WHERE in_archive = true OR withdrawn = true";
|
private String findAll = "SELECT item_id, in_archive, withdrawn, discoverable FROM item WHERE in_archive = true OR withdrawn = true";
|
||||||
|
|
||||||
/** query to get the text value of a metadata element only (qualifier is NULL) */
|
/** query to get the text value of a metadata element only (qualifier is NULL) */
|
||||||
private String getByMetadataElement = "SELECT authority, confidence, text_value,text_lang,element,qualifier FROM metadatavalue, metadatafieldregistry, metadataschemaregistry " +
|
private String getByMetadataElement = "SELECT authority, confidence, text_value,text_lang,element,qualifier FROM metadatavalue, metadatafieldregistry, metadataschemaregistry " +
|
||||||
@@ -74,7 +74,8 @@ public class BrowseItemDAOPostgres implements BrowseItemDAO
|
|||||||
TableRow row = tri.next();
|
TableRow row = tri.next();
|
||||||
items.add(new BrowseItem(context, row.getIntColumn("item_id"),
|
items.add(new BrowseItem(context, row.getIntColumn("item_id"),
|
||||||
row.getBooleanColumn("in_archive"),
|
row.getBooleanColumn("in_archive"),
|
||||||
row.getBooleanColumn("withdrawn")));
|
row.getBooleanColumn("withdrawn"),
|
||||||
|
row.getBooleanColumn("discoverable")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@@ -344,7 +344,7 @@ public class IndexBrowse
|
|||||||
{
|
{
|
||||||
boolean reqCommunityMappings = false;
|
boolean reqCommunityMappings = false;
|
||||||
Map<Integer, String> sortMap = getSortValues(item, itemMDMap);
|
Map<Integer, String> sortMap = getSortValues(item, itemMDMap);
|
||||||
if (item.isArchived() && !item.isWithdrawn())
|
if (item.isArchived() && item.isDiscoverable())
|
||||||
{
|
{
|
||||||
// Try to update an existing record in the item index
|
// Try to update an existing record in the item index
|
||||||
if (!dao.updateIndex(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID(), sortMap))
|
if (!dao.updateIndex(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID(), sortMap))
|
||||||
@@ -358,30 +358,23 @@ public class IndexBrowse
|
|||||||
|
|
||||||
reqCommunityMappings = true;
|
reqCommunityMappings = true;
|
||||||
}
|
}
|
||||||
|
else if (!item.isDiscoverable())
|
||||||
|
{
|
||||||
|
if (!dao.updateIndex(BrowseIndex.getPrivateBrowseIndex().getTableName(), item.getID(), sortMap)) {
|
||||||
|
dao.deleteByItemID(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID());
|
||||||
|
dao.insertIndex(BrowseIndex.getPrivateBrowseIndex().getTableName(), item.getID(), sortMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (item.isWithdrawn())
|
else if (item.isWithdrawn())
|
||||||
{
|
{
|
||||||
// Private items are marked as withdrawn as well. check before if they are private...
|
// Try to update an existing record in the withdrawn index
|
||||||
Item dsoItem = Item.find(context, item.getID());
|
if (!dao.updateIndex(BrowseIndex.getWithdrawnBrowseIndex().getTableName(), item.getID(), sortMap))
|
||||||
if (!dsoItem.isDiscoverable()){
|
{
|
||||||
if (!dao.updateIndex(BrowseIndex.getPrivateBrowseIndex().getTableName(), item.getID(), sortMap)) {
|
// Record doesn't exist - ensure that it doesn't exist in the item index,
|
||||||
dao.deleteByItemID(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID());
|
// and add it to the withdrawn item index
|
||||||
dao.insertIndex(BrowseIndex.getPrivateBrowseIndex().getTableName(), item.getID(), sortMap);
|
dao.deleteByItemID(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID());
|
||||||
}
|
dao.insertIndex(BrowseIndex.getWithdrawnBrowseIndex().getTableName(), item.getID(), sortMap);
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
// Try to update an existing record in the withdrawn index
|
|
||||||
if (!dao.updateIndex(BrowseIndex.getWithdrawnBrowseIndex().getTableName(), item.getID(), sortMap))
|
|
||||||
{
|
|
||||||
// Record doesn't exist - ensure that it doesn't exist in the item index,
|
|
||||||
// and add it to the withdrawn item index
|
|
||||||
dao.deleteByItemID(BrowseIndex.getItemBrowseIndex().getTableName(), item.getID());
|
|
||||||
dao.insertIndex(BrowseIndex.getWithdrawnBrowseIndex().getTableName(), item.getID(), sortMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1273,5 +1266,21 @@ public class IndexBrowse
|
|||||||
|
|
||||||
return browseItem.isWithdrawn();
|
return browseItem.isWithdrawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the Item discoverable?
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isDiscoverable()
|
||||||
|
{
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
return item.isDiscoverable();
|
||||||
|
}
|
||||||
|
|
||||||
|
return browseItem.isDiscoverable();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -133,7 +133,7 @@ public class SolrBrowseDAO implements BrowseDAO
|
|||||||
private DiscoverResult sResponse = null;
|
private DiscoverResult sResponse = null;
|
||||||
|
|
||||||
private boolean itemsWithdrawn = false;
|
private boolean itemsWithdrawn = false;
|
||||||
private boolean itemsPrivate = false;
|
private boolean itemsDiscoverable = true;
|
||||||
|
|
||||||
private boolean showFrequencies;
|
private boolean showFrequencies;
|
||||||
|
|
||||||
@@ -186,7 +186,8 @@ public class SolrBrowseDAO implements BrowseDAO
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
sResponse = searcher.search(context, query, itemsWithdrawn);
|
sResponse = searcher.search(context, query, itemsWithdrawn
|
||||||
|
|| !itemsDiscoverable);
|
||||||
}
|
}
|
||||||
catch (SearchServiceException e)
|
catch (SearchServiceException e)
|
||||||
{
|
{
|
||||||
@@ -201,18 +202,10 @@ public class SolrBrowseDAO implements BrowseDAO
|
|||||||
if (itemsWithdrawn)
|
if (itemsWithdrawn)
|
||||||
{
|
{
|
||||||
query.addFilterQueries("withdrawn:true");
|
query.addFilterQueries("withdrawn:true");
|
||||||
if (itemsPrivate)
|
|
||||||
{
|
|
||||||
query.addFilterQueries("discoverable:false");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
query.addFilterQueries("NOT(discoverable:false)");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else if (!itemsDiscoverable)
|
||||||
{
|
{
|
||||||
query.addFilterQueries("NOT(withdrawn:true)");
|
query.addFilterQueries("discoverable:false");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,7 +294,7 @@ public class SolrBrowseDAO implements BrowseDAO
|
|||||||
// processing the query...
|
// processing the query...
|
||||||
Item item = (Item) solrDoc;
|
Item item = (Item) solrDoc;
|
||||||
BrowseItem bitem = new BrowseItem(context, item.getID(),
|
BrowseItem bitem = new BrowseItem(context, item.getID(),
|
||||||
item.isArchived(), item.isWithdrawn());
|
item.isArchived(), item.isWithdrawn(), item.isDiscoverable());
|
||||||
bitems.add(bitem);
|
bitems.add(bitem);
|
||||||
}
|
}
|
||||||
return bitems;
|
return bitems;
|
||||||
@@ -681,13 +674,10 @@ public class SolrBrowseDAO implements BrowseDAO
|
|||||||
if (table.equals(BrowseIndex.getWithdrawnBrowseIndex().getTableName()))
|
if (table.equals(BrowseIndex.getWithdrawnBrowseIndex().getTableName()))
|
||||||
{
|
{
|
||||||
itemsWithdrawn = true;
|
itemsWithdrawn = true;
|
||||||
itemsPrivate = false;
|
|
||||||
}
|
}
|
||||||
else if (table.equals(BrowseIndex.getPrivateBrowseIndex().getTableName()))
|
else if (table.equals(BrowseIndex.getPrivateBrowseIndex().getTableName()))
|
||||||
{
|
{
|
||||||
itemsPrivate = true;
|
itemsDiscoverable = false;
|
||||||
// items private are also withdrawn
|
|
||||||
itemsWithdrawn = true;
|
|
||||||
}
|
}
|
||||||
facetField = table;
|
facetField = table;
|
||||||
}
|
}
|
||||||
|
@@ -190,14 +190,9 @@ public class InstallItem
|
|||||||
// set owning collection
|
// set owning collection
|
||||||
item.setOwningCollection(is.getCollection());
|
item.setOwningCollection(is.getCollection());
|
||||||
|
|
||||||
// set in_archive=true only if the user didn't specify that it is a private item
|
// set in_archive=true
|
||||||
if(item.isDiscoverable()){
|
item.setArchived(true);
|
||||||
item.setArchived(true);
|
|
||||||
}
|
|
||||||
else{ // private item is withdrawn as well
|
|
||||||
item.withdraw();
|
|
||||||
}
|
|
||||||
|
|
||||||
// save changes ;-)
|
// save changes ;-)
|
||||||
item.update();
|
item.update();
|
||||||
|
|
||||||
|
@@ -1526,7 +1526,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
|||||||
return search(context, dso, query, false);
|
return search(context, dso, query, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DiscoverResult search(Context context, DSpaceObject dso, DiscoverQuery discoveryQuery, boolean includeWithdrawn) throws SearchServiceException {
|
public DiscoverResult search(Context context, DSpaceObject dso, DiscoverQuery discoveryQuery, boolean includeUnDiscoverable) throws SearchServiceException {
|
||||||
if(dso != null)
|
if(dso != null)
|
||||||
{
|
{
|
||||||
if (dso instanceof Community)
|
if (dso instanceof Community)
|
||||||
@@ -1540,17 +1540,17 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
|||||||
discoveryQuery.addFilterQueries("handle:" + dso.getHandle());
|
discoveryQuery.addFilterQueries("handle:" + dso.getHandle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return search(context, discoveryQuery, includeWithdrawn);
|
return search(context, discoveryQuery, includeUnDiscoverable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DiscoverResult search(Context context, DiscoverQuery discoveryQuery, boolean includeWithdrawn) throws SearchServiceException {
|
public DiscoverResult search(Context context, DiscoverQuery discoveryQuery, boolean includeUnDiscoverable) throws SearchServiceException {
|
||||||
try {
|
try {
|
||||||
if(getSolr() == null){
|
if(getSolr() == null){
|
||||||
return new DiscoverResult();
|
return new DiscoverResult();
|
||||||
}
|
}
|
||||||
SolrQuery solrQuery = resolveToSolrQuery(context, discoveryQuery, includeWithdrawn);
|
SolrQuery solrQuery = resolveToSolrQuery(context, discoveryQuery, includeUnDiscoverable);
|
||||||
|
|
||||||
|
|
||||||
QueryResponse queryResponse = getSolr().query(solrQuery);
|
QueryResponse queryResponse = getSolr().query(solrQuery);
|
||||||
@@ -1562,7 +1562,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected SolrQuery resolveToSolrQuery(Context context, DiscoverQuery discoveryQuery, boolean includeWithdrawn)
|
protected SolrQuery resolveToSolrQuery(Context context, DiscoverQuery discoveryQuery, boolean includeUnDiscoverable)
|
||||||
{
|
{
|
||||||
SolrQuery solrQuery = new SolrQuery();
|
SolrQuery solrQuery = new SolrQuery();
|
||||||
|
|
||||||
@@ -1580,9 +1580,10 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
|||||||
solrQuery.setParam("spellcheck", Boolean.TRUE);
|
solrQuery.setParam("spellcheck", Boolean.TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!includeWithdrawn)
|
if (!includeUnDiscoverable)
|
||||||
{
|
{
|
||||||
solrQuery.addFilterQuery("NOT(withdrawn:true)");
|
solrQuery.addFilterQuery("NOT(withdrawn:true)");
|
||||||
|
solrQuery.addFilterQuery("NOT(discoverable:false)");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < discoveryQuery.getFilterQueries().size(); i++)
|
for (int i = 0; i < discoveryQuery.getFilterQueries().size(); i++)
|
||||||
|
@@ -339,7 +339,6 @@ public class EditItemServlet extends DSpaceServlet
|
|||||||
|
|
||||||
// Withdraw the item
|
// Withdraw the item
|
||||||
item.setDiscoverable(false);
|
item.setDiscoverable(false);
|
||||||
item.withdraw();
|
|
||||||
JSPManager.showJSP(request, response, "/tools/get-item-id.jsp");
|
JSPManager.showJSP(request, response, "/tools/get-item-id.jsp");
|
||||||
context.complete();
|
context.complete();
|
||||||
|
|
||||||
@@ -347,7 +346,6 @@ public class EditItemServlet extends DSpaceServlet
|
|||||||
|
|
||||||
case PUBLICIZE:
|
case PUBLICIZE:
|
||||||
item.setDiscoverable(true);
|
item.setDiscoverable(true);
|
||||||
item.reinstate();
|
|
||||||
JSPManager.showJSP(request, response, "/tools/get-item-id.jsp");
|
JSPManager.showJSP(request, response, "/tools/get-item-id.jsp");
|
||||||
context.complete();
|
context.complete();
|
||||||
|
|
||||||
@@ -534,33 +532,16 @@ public class EditItemServlet extends DSpaceServlet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.isDiscoverable())
|
if (item.isDiscoverable())
|
||||||
{
|
{
|
||||||
try
|
request.setAttribute("privating_button", AuthorizeManager
|
||||||
{
|
.authorizeActionBoolean(context, item, Constants.WRITE));
|
||||||
// who can Withdraw can also Make It Private
|
}
|
||||||
AuthorizeUtil.authorizeWithdrawItem(context, item);
|
else
|
||||||
request.setAttribute("privating_button", Boolean.TRUE);
|
{
|
||||||
}
|
request.setAttribute("publicize_button", AuthorizeManager
|
||||||
catch (AuthorizeException authex)
|
.authorizeActionBoolean(context, item, Constants.WRITE));
|
||||||
{
|
}
|
||||||
request.setAttribute("privating_button", Boolean.FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// who can Reinstate can also Make It Public
|
|
||||||
AuthorizeUtil.authorizeReinstateItem(context, item);
|
|
||||||
request.setAttribute("publicize_button", Boolean.TRUE);
|
|
||||||
}
|
|
||||||
catch (AuthorizeException authex)
|
|
||||||
{
|
|
||||||
request.setAttribute("publicize_button", Boolean.FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
request.setAttribute("item", item);
|
request.setAttribute("item", item);
|
||||||
request.setAttribute("handle", handle);
|
request.setAttribute("handle", handle);
|
||||||
|
@@ -333,8 +333,6 @@ public class FlowItemUtils
|
|||||||
|
|
||||||
Item item = Item.find(context, itemID);
|
Item item = Item.find(context, itemID);
|
||||||
item.setDiscoverable(false);
|
item.setDiscoverable(false);
|
||||||
// private item is withdrawn as well
|
|
||||||
item.withdraw();
|
|
||||||
item.update();
|
item.update();
|
||||||
context.commit();
|
context.commit();
|
||||||
|
|
||||||
@@ -359,8 +357,6 @@ public class FlowItemUtils
|
|||||||
|
|
||||||
Item item = Item.find(context, itemID);
|
Item item = Item.find(context, itemID);
|
||||||
item.setDiscoverable(true);
|
item.setDiscoverable(true);
|
||||||
// since private Items are withdrawn they are reinstated during "make it public" process
|
|
||||||
item.reinstate();
|
|
||||||
item.update();
|
item.update();
|
||||||
context.commit();
|
context.commit();
|
||||||
|
|
||||||
|
@@ -216,27 +216,26 @@ public class EditItemStatusForm extends AbstractDSpaceTransformer {
|
|||||||
if(item.isDiscoverable())
|
if(item.isDiscoverable())
|
||||||
{
|
{
|
||||||
itemInfo.addLabel(T_label_private);
|
itemInfo.addLabel(T_label_private);
|
||||||
try
|
if (AuthorizeManager.authorizeActionBoolean(context, item,
|
||||||
{
|
Constants.WRITE))
|
||||||
// who can Withdraw can also Make It Private
|
{
|
||||||
AuthorizeUtil.authorizeWithdrawItem(context, item);
|
itemInfo.addItem().addButton("submit_private")
|
||||||
itemInfo.addItem().addButton("submit_private").setValue(T_submit_private);
|
.setValue(T_submit_private);
|
||||||
}
|
}
|
||||||
catch (AuthorizeException authex)
|
else
|
||||||
{
|
{
|
||||||
addNotAllowedButton(itemInfo.addItem(), "submit_private", T_submit_private);
|
addNotAllowedButton(itemInfo.addItem(), "submit_private",
|
||||||
}
|
T_submit_private);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
itemInfo.addLabel(T_label_public);
|
itemInfo.addLabel(T_label_public);
|
||||||
try
|
if (AuthorizeManager.authorizeActionBoolean(context, item, Constants.WRITE))
|
||||||
{
|
{
|
||||||
// who can Reinstate can also Make It Public
|
|
||||||
AuthorizeUtil.authorizeReinstateItem(context, item);
|
|
||||||
itemInfo.addItem().addButton("submit_public").setValue(T_submit_public);
|
itemInfo.addItem().addButton("submit_public").setValue(T_submit_public);
|
||||||
}
|
}
|
||||||
catch (AuthorizeException authex)
|
else
|
||||||
{
|
{
|
||||||
addNotAllowedButton(itemInfo.addItem(), "submit_public", T_submit_public);
|
addNotAllowedButton(itemInfo.addItem(), "submit_public", T_submit_public);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user