Merge pull request #1433 from tuub/DS-3240

DS-3240: comm/coll admins misses some functions and a propper navbar.
This commit is contained in:
Luigi Andrea Pascarelli
2016-09-19 15:02:25 +02:00
committed by GitHub
41 changed files with 1060 additions and 167 deletions

View File

@@ -418,6 +418,44 @@ public class AuthorizeServiceImpl implements AuthorizeService
return groupService.isMember(c, Group.ADMIN); return groupService.isMember(c, Group.ADMIN);
} }
} }
public boolean isCommunityAdmin(Context c) throws SQLException
{
EPerson e = c.getCurrentUser();
if (e != null)
{
List<ResourcePolicy> policies = resourcePolicyService.find(c, e,
groupService.allMemberGroups(c, e),
Constants.ADMIN, Constants.COMMUNITY);
if (CollectionUtils.isNotEmpty(policies))
{
return true;
}
}
return false;
}
public boolean isCollectionAdmin(Context c) throws SQLException
{
EPerson e = c.getCurrentUser();
if (e != null)
{
List<ResourcePolicy> policies = resourcePolicyService.find(c, e,
groupService.allMemberGroups(c, e),
Constants.ADMIN, Constants.COLLECTION);
if (CollectionUtils.isNotEmpty(policies))
{
return true;
}
}
return false;
}
/////////////////////////////////////////////// ///////////////////////////////////////////////
// policy manipulation methods // policy manipulation methods

View File

@@ -107,6 +107,10 @@ public class ResourcePolicyServiceImpl implements ResourcePolicyService
public List<ResourcePolicy> find(Context c, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException { public List<ResourcePolicy> find(Context c, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException {
return resourcePolicyDAO.findByTypeIdGroupAction(c, dso, group, action, notPolicyID); return resourcePolicyDAO.findByTypeIdGroupAction(c, dso, group, action, notPolicyID);
} }
public List<ResourcePolicy> find(Context c, EPerson e, List<Group> groups, int action, int type_id) throws SQLException{
return resourcePolicyDAO.findByEPersonGroupTypeIdAction(c, e, groups, action, type_id);
}
/** /**
* Delete an ResourcePolicy * Delete an ResourcePolicy

View File

@@ -35,6 +35,8 @@ public interface ResourcePolicyDAO extends GenericDAO<ResourcePolicy> {
public List<ResourcePolicy> findByDSoAndAction(Context context, DSpaceObject dso, int actionId) throws SQLException; public List<ResourcePolicy> findByDSoAndAction(Context context, DSpaceObject dso, int actionId) throws SQLException;
public List<ResourcePolicy> findByTypeIdGroupAction(Context context, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException; public List<ResourcePolicy> findByTypeIdGroupAction(Context context, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException;
public List<ResourcePolicy> findByEPersonGroupTypeIdAction(Context context, EPerson e, List<Group> groups, int action, int type_id) throws SQLException;
public void deleteByDso(Context context, DSpaceObject dso) throws SQLException; public void deleteByDso(Context context, DSpaceObject dso) throws SQLException;

View File

@@ -92,6 +92,19 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
return list(criteria); return list(criteria);
} }
public List<ResourcePolicy> findByEPersonGroupTypeIdAction(Context context, EPerson e, List<Group> groups, int action, int type_id) throws SQLException
{
Criteria criteria = createCriteria(context, ResourcePolicy.class);
criteria.add(Restrictions.and(
Restrictions.eq("resourceTypeId", type_id),
Restrictions.eq("actionId", action),
(Restrictions.or(
Restrictions.eq("eperson", e),
Restrictions.in("epersonGroup", groups)
))
));
return list(criteria);
}
@Override @Override
public void deleteByDso(Context context, DSpaceObject dso) throws SQLException public void deleteByDso(Context context, DSpaceObject dso) throws SQLException

View File

@@ -179,6 +179,10 @@ public interface AuthorizeService {
* @throws SQLException if database error * @throws SQLException if database error
*/ */
public boolean isAdmin(Context c) throws SQLException; public boolean isAdmin(Context c) throws SQLException;
public boolean isCommunityAdmin(Context c) throws SQLException;
public boolean isCollectionAdmin(Context c) throws SQLException;
/////////////////////////////////////////////// ///////////////////////////////////////////////
// policy manipulation methods // policy manipulation methods

View File

@@ -36,6 +36,8 @@ public interface ResourcePolicyService extends DSpaceCRUDService<ResourcePolicy>
public List<ResourcePolicy> find(Context c, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException; public List<ResourcePolicy> find(Context c, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException;
public List<ResourcePolicy> find(Context context, Group group) throws SQLException; public List<ResourcePolicy> find(Context context, Group group) throws SQLException;
public List<ResourcePolicy> find(Context c, EPerson e, List<Group> groups, int action, int type_id) throws SQLException;
public String getActionText(ResourcePolicy resourcePolicy); public String getActionText(ResourcePolicy resourcePolicy);

View File

@@ -8,9 +8,12 @@
package org.dspace.browse; package org.dspace.browse;
import java.io.Serializable; import java.io.Serializable;
import java.sql.SQLException;
import java.util.*; import java.util.*;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.dspace.authorize.factory.AuthorizeServiceFactory;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.content.DSpaceObject; import org.dspace.content.DSpaceObject;
import org.dspace.content.Item; import org.dspace.content.Item;
import org.dspace.core.Constants; import org.dspace.core.Constants;
@@ -124,7 +127,9 @@ public class SolrBrowseDAO implements BrowseDAO
private boolean distinct = false; private boolean distinct = false;
private String facetField; private String facetField;
protected AuthorizeService authorizeService = AuthorizeServiceFactory.getInstance().getAuthorizeService();
// administrative attributes for this class // administrative attributes for this class
@@ -207,6 +212,21 @@ public class SolrBrowseDAO implements BrowseDAO
else if (!itemsDiscoverable) else if (!itemsDiscoverable)
{ {
query.addFilterQueries("discoverable:false"); query.addFilterQueries("discoverable:false");
// TODO
try
{
if (!authorizeService.isAdmin(context)
&& (authorizeService.isCommunityAdmin(context)
|| authorizeService.isCollectionAdmin(context)))
{
query.addFilterQueries(searcher.createLocationQueryForAdministrableItems(context));
}
}
catch (SQLException ex)
{
log.error(ex);
}
} }
} }

View File

@@ -105,7 +105,23 @@ public interface SearchService {
*/ */
DiscoverFilterQuery toFilterQuery(Context context, String field, String operator, String value) throws SQLException; DiscoverFilterQuery toFilterQuery(Context context, String field, String operator, String value) throws SQLException;
List<Item> getRelatedItems(Context context, Item item, DiscoveryMoreLikeThisConfiguration moreLikeThisConfiguration); List<Item> getRelatedItems(Context context, Item item, DiscoveryMoreLikeThisConfiguration moreLikeThisConfiguration);
/**
* Method to create a Query that includes all
* communities and collections a user may administrate.
* If a user has the appropriate rights to administrate communities and/or
* collections we want to look up all contents of those communities and/or
* collections, ignoring the read policies of the items (e.g. to list all
* private items of communities/collections the user administrate). This
* method returns a query to filter for items that belongs to those
* communities/collections only.
*
* @param context
* @return
* @throws SQLException
*/
String createLocationQueryForAdministrableItems(Context context) throws SQLException;
/** /**
* Transforms the metadata field of the given sort configuration into the indexed field which we can then use in our solr queries * Transforms the metadata field of the given sort configuration into the indexed field which we can then use in our solr queries

View File

@@ -63,6 +63,10 @@ import java.sql.SQLException;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.factory.AuthorizeServiceFactory;
import org.dspace.eperson.Group;
import org.dspace.eperson.factory.EPersonServiceFactory;
/** /**
* SolrIndexer contains the methods that index Items and their metadata, * SolrIndexer contains the methods that index Items and their metadata,
@@ -687,6 +691,72 @@ public class SolrServiceImpl implements SearchService, IndexingService {
return locations; return locations;
} }
@Override
public String createLocationQueryForAdministrableItems(Context context)
throws SQLException
{
StringBuilder locationQuery = new StringBuilder();
if (context.getCurrentUser() != null)
{
List<Group> groupList = EPersonServiceFactory.getInstance().getGroupService()
.allMemberGroups(context, context.getCurrentUser());
List<ResourcePolicy> communitiesPolicies = AuthorizeServiceFactory.getInstance().getResourcePolicyService()
.find(context, context.getCurrentUser(), groupList, Constants.ADMIN, Constants.COMMUNITY);
List<ResourcePolicy> collectionsPolicies = AuthorizeServiceFactory.getInstance().getResourcePolicyService()
.find(context, context.getCurrentUser(), groupList, Constants.ADMIN, Constants.COLLECTION);
List<Collection> allCollections = new ArrayList<>();
for( ResourcePolicy rp: collectionsPolicies){
Collection collection = ContentServiceFactory.getInstance().getCollectionService()
.find(context, rp.getdSpaceObject().getID());
allCollections.add(collection);
}
if (CollectionUtils.isNotEmpty(communitiesPolicies) || CollectionUtils.isNotEmpty(allCollections))
{
locationQuery.append("location:( ");
for (int i = 0; i< communitiesPolicies.size(); i++)
{
ResourcePolicy rp = communitiesPolicies.get(i);
Community community = ContentServiceFactory.getInstance().getCommunityService()
.find(context, rp.getdSpaceObject().getID());
locationQuery.append("m").append(community.getID());
if (i != (communitiesPolicies.size() - 1)) {
locationQuery.append(" OR ");
}
allCollections.addAll(ContentServiceFactory.getInstance().getCommunityService()
.getAllCollections(context, community));
}
Iterator<Collection> collIter = allCollections.iterator();
if (communitiesPolicies.size() > 0 && allCollections.size() > 0) {
locationQuery.append(" OR ");
}
while (collIter.hasNext()) {
locationQuery.append("l").append(collIter.next().getID());
if (collIter.hasNext()) {
locationQuery.append(" OR ");
}
}
locationQuery.append(")");
} else {
log.warn("We have a collection or community admin with ID: " + context.getCurrentUser().getID()
+ " without any administrable collection or community!");
}
}
return locationQuery.toString();
}
/** /**
* Write the document to the index under the appropriate handle. * Write the document to the index under the appropriate handle.

View File

@@ -7,11 +7,18 @@
*/ */
package org.dspace.discovery; package org.dspace.discovery;
import org.apache.commons.collections.CollectionUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.SolrInputDocument;
import org.dspace.authorize.ResourcePolicy; import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.service.AuthorizeService; import org.dspace.authorize.service.AuthorizeService;
import org.dspace.content.service.CollectionService;
import org.dspace.content.service.CommunityService;
import org.dspace.authorize.service.ResourcePolicyService;
import org.dspace.content.Collection;
import org.dspace.content.Community;
import org.dspace.content.DSpaceObject; import org.dspace.content.DSpaceObject;
import org.dspace.core.Constants; import org.dspace.core.Constants;
import org.dspace.core.Context; import org.dspace.core.Context;
@@ -22,7 +29,11 @@ import org.dspace.eperson.service.GroupService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.UUID;
import org.dspace.services.factory.DSpaceServicesFactory;
/** /**
* Restriction plugin that ensures that indexes all the resource policies. * Restriction plugin that ensures that indexes all the resource policies.
@@ -39,7 +50,13 @@ public class SolrServiceResourceRestrictionPlugin implements SolrServiceIndexPlu
@Autowired(required = true) @Autowired(required = true)
protected AuthorizeService authorizeService; protected AuthorizeService authorizeService;
@Autowired(required = true) @Autowired(required = true)
protected CommunityService communityService;
@Autowired(required = true)
protected CollectionService collectionService;
@Autowired(required = true)
protected GroupService groupService; protected GroupService groupService;
@Autowired(required = true)
protected ResourcePolicyService resourcePolicyService;
@Override @Override
public void additionalIndex(Context context, DSpaceObject dso, SolrInputDocument document) { public void additionalIndex(Context context, DSpaceObject dso, SolrInputDocument document) {
@@ -86,7 +103,16 @@ public class SolrServiceResourceRestrictionPlugin implements SolrServiceIndexPlu
resourceQuery.append(" OR g").append(group.getID()); resourceQuery.append(" OR g").append(group.getID());
} }
resourceQuery.append(")"); resourceQuery.append(")");
if(authorizeService.isCommunityAdmin(context)
|| authorizeService.isCollectionAdmin(context))
{
resourceQuery.append(" OR ");
resourceQuery.append(DSpaceServicesFactory.getInstance()
.getServiceManager().getServiceByName(SearchService.class.getName(), SearchService.class)
.createLocationQueryForAdministrableItems(context));
}
solrQuery.addFilterQuery(resourceQuery.toString()); solrQuery.addFilterQuery(resourceQuery.toString());
} }

View File

@@ -282,12 +282,31 @@ public class GroupEditServlet extends DSpaceServlet
HttpServletResponse response) throws ServletException, IOException, HttpServletResponse response) throws ServletException, IOException,
SQLException, AuthorizeException SQLException, AuthorizeException
{ {
List<Group> groups = groupService.findAll(c, null); List<Group> groups = new ArrayList<Group>();
boolean isAdmin = authorizeService.isAdmin(c);
// if( groups == null ) { System.out.println("groups are null"); } boolean isCommunityAdmin = authorizeService.isCommunityAdmin(c);
// else System.out.println("# of groups: " + groups.length); boolean isCollectionAdmin = authorizeService.isCollectionAdmin(c);
request.setAttribute("groups", groups);
// In case the user is a community or collection admin, only the groups
// the user is allowed to change should listed
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
for(Group group: groups)
{
if(authorizeService.authorizeActionBoolean(c, group, Constants.WRITE) ||
authorizeService.authorizeActionBoolean(c, group, Constants.ADD))
{
groups.add(group);
}
}
request.setAttribute("groups", groups);
}
// All groups are shown to the System admin
else
{
groups = groupService.findAll(c, GroupService.NAME);
request.setAttribute("groups", groups);
}
JSPManager.showJSP(request, response, "/tools/group-list.jsp"); JSPManager.showJSP(request, response, "/tools/group-list.jsp");
c.complete(); c.complete();
} }

View File

@@ -304,10 +304,14 @@ public class Authenticate
context.setCurrentUser(eperson); context.setCurrentUser(eperson);
boolean isAdmin = false; boolean isAdmin = false;
boolean isCommunityAdmin = false;
boolean isCollectionAdmin = false;
try try
{ {
isAdmin = authorizeService.isAdmin(context); isAdmin = authorizeService.isAdmin(context);
isCommunityAdmin = authorizeService.isCommunityAdmin(context);
isCollectionAdmin = authorizeService.isCollectionAdmin(context);
} }
catch (SQLException se) catch (SQLException se)
{ {
@@ -316,6 +320,8 @@ public class Authenticate
finally finally
{ {
request.setAttribute("is.admin", Boolean.valueOf(isAdmin)); request.setAttribute("is.admin", Boolean.valueOf(isAdmin));
request.setAttribute("is.communityAdmin", Boolean.valueOf(isCommunityAdmin));
request.setAttribute("is.collectionAdmin", Boolean.valueOf(isCollectionAdmin));
} }
// We store the current user in the request as an EPerson object... // We store the current user in the request as an EPerson object...

View File

@@ -506,15 +506,20 @@
<url-pattern>/exportdownload/*</url-pattern> <url-pattern>/exportdownload/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>browse</servlet-name> <servlet-name>browse</servlet-name>
<url-pattern>/browse</url-pattern> <url-pattern>/browse</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>browsewithdrawn</servlet-name> <servlet-name>browsewithdrawn</servlet-name>
<url-pattern>/dspace-admin/withdrawn</url-pattern> <url-pattern>/dspace-admin/withdrawn</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping>
<servlet-name>browsewithdrawn</servlet-name>
<url-pattern>/tools/withdrawn</url-pattern>
</servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>community-list</servlet-name> <servlet-name>community-list</servlet-name>
@@ -790,6 +795,11 @@
<servlet-name>privateitems</servlet-name> <servlet-name>privateitems</servlet-name>
<url-pattern>/dspace-admin/privateitems</url-pattern> <url-pattern>/dspace-admin/privateitems</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping>
<servlet-name>privateitems</servlet-name>
<url-pattern>/tools/privateitems</url-pattern>
</servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>version-item</servlet-name> <servlet-name>version-item</servlet-name>

View File

@@ -34,84 +34,105 @@
String layoutNavbar = "default"; String layoutNavbar = "default";
boolean withdrawn = false; boolean withdrawn = false;
boolean privateitems = false; boolean privateitems = false;
if (request.getAttribute("browseWithdrawn") != null)
{ // Is the logged in user an admin or community admin or cllection admin
layoutNavbar = "admin"; Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
if (request.getAttribute("browseWithdrawn") != null)
{
layoutNavbar = "admin";
urlFragment = "dspace-admin/withdrawn"; urlFragment = "dspace-admin/withdrawn";
withdrawn = true; withdrawn = true;
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
layoutNavbar = "community-or-collection-admin";
}
} }
else if (request.getAttribute("browsePrivate") != null) else if (request.getAttribute("browsePrivate") != null)
{ {
layoutNavbar = "admin"; layoutNavbar = "admin";
urlFragment = "dspace-admin/privateitems"; urlFragment = "dspace-admin/privateitems";
privateitems = true; privateitems = true;
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
layoutNavbar = "community-or-collection-admin";
}
} }
// First, get the browse info object // First, get the browse info object
BrowseInfo bi = (BrowseInfo) request.getAttribute("browse.info"); BrowseInfo bi = (BrowseInfo) request.getAttribute("browse.info");
BrowseIndex bix = bi.getBrowseIndex(); BrowseIndex bix = bi.getBrowseIndex();
SortOption so = bi.getSortOption(); SortOption so = bi.getSortOption();
// values used by the header // values used by the header
String scope = ""; String scope = "";
String type = ""; String type = "";
String value = ""; String value = "";
Community community = null; Community community = null;
Collection collection = null; Collection collection = null;
if (bi.inCommunity()) if (bi.inCommunity())
{ {
community = (Community) bi.getBrowseContainer(); community = (Community) bi.getBrowseContainer();
} }
if (bi.inCollection()) if (bi.inCollection())
{ {
collection = (Collection) bi.getBrowseContainer(); collection = (Collection) bi.getBrowseContainer();
} }
if (community != null) if (community != null)
{ {
scope = "\"" + community.getName() + "\""; scope = "\"" + community.getName() + "\"";
} }
if (collection != null) if (collection != null)
{ {
scope = "\"" + collection.getName() + "\""; scope = "\"" + collection.getName() + "\"";
} }
type = bix.getName(); type = bix.getName();
// next and previous links are of the form: // next and previous links are of the form:
// [handle/<prefix>/<suffix>/]browse?type=<type>&sort_by=<sort_by>&order=<order>[&value=<value>][&rpp=<rpp>][&[focus=<focus>|vfocus=<vfocus>] // [handle/<prefix>/<suffix>/]browse?type=<type>&sort_by=<sort_by>&order=<order>[&value=<value>][&rpp=<rpp>][&[focus=<focus>|vfocus=<vfocus>]
// prepare the next and previous links // prepare the next and previous links
String linkBase = request.getContextPath() + "/"; String linkBase = request.getContextPath() + "/";
if (collection != null) if (collection != null)
{ {
linkBase = linkBase + "handle/" + collection.getHandle() + "/"; linkBase = linkBase + "handle/" + collection.getHandle() + "/";
} }
if (community != null) if (community != null)
{ {
linkBase = linkBase + "handle/" + community.getHandle() + "/"; linkBase = linkBase + "handle/" + community.getHandle() + "/";
} }
String direction = (bi.isAscending() ? "ASC" : "DESC"); String direction = (bi.isAscending() ? "ASC" : "DESC");
String argument = null; String argument = null;
if (bi.hasAuthority()) if (bi.hasAuthority())
{ {
value = bi.getAuthority(); value = bi.getAuthority();
argument = "authority"; argument = "authority";
} }
else if (bi.hasValue()) else if (bi.hasValue())
{ {
value = bi.getValue(); value = bi.getValue();
argument = "value"; argument = "value";
} }
String valueString = ""; String valueString = "";
if (value!=null) if (value!=null)
{ {
valueString = "&amp;" + argument + "=" + URLEncoder.encode(value, "UTF-8"); valueString = "&amp;" + argument + "=" + URLEncoder.encode(value, "UTF-8");
} }
String sharedLink = linkBase + urlFragment + "?"; String sharedLink = linkBase + urlFragment + "?";
@@ -119,51 +140,51 @@
sharedLink += "type=" + URLEncoder.encode(bix.getName(), "UTF-8"); sharedLink += "type=" + URLEncoder.encode(bix.getName(), "UTF-8");
sharedLink += "&amp;sort_by=" + URLEncoder.encode(Integer.toString(so.getNumber()), "UTF-8") + sharedLink += "&amp;sort_by=" + URLEncoder.encode(Integer.toString(so.getNumber()), "UTF-8") +
"&amp;order=" + URLEncoder.encode(direction, "UTF-8") + "&amp;order=" + URLEncoder.encode(direction, "UTF-8") +
"&amp;rpp=" + URLEncoder.encode(Integer.toString(bi.getResultsPerPage()), "UTF-8") + "&amp;rpp=" + URLEncoder.encode(Integer.toString(bi.getResultsPerPage()), "UTF-8") +
"&amp;etal=" + URLEncoder.encode(Integer.toString(bi.getEtAl()), "UTF-8") + "&amp;etal=" + URLEncoder.encode(Integer.toString(bi.getEtAl()), "UTF-8") +
valueString; valueString;
String next = sharedLink; String next = sharedLink;
String prev = sharedLink; String prev = sharedLink;
if (bi.hasNextPage()) if (bi.hasNextPage())
{ {
next = next + "&amp;offset=" + bi.getNextOffset(); next = next + "&amp;offset=" + bi.getNextOffset();
} }
if (bi.hasPrevPage()) if (bi.hasPrevPage())
{ {
prev = prev + "&amp;offset=" + bi.getPrevOffset(); prev = prev + "&amp;offset=" + bi.getPrevOffset();
} }
// prepare a url for use by form actions // prepare a url for use by form actions
String formaction = request.getContextPath() + "/"; String formaction = request.getContextPath() + "/";
if (collection != null) if (collection != null)
{ {
formaction = formaction + "handle/" + collection.getHandle() + "/"; formaction = formaction + "handle/" + collection.getHandle() + "/";
} }
if (community != null) if (community != null)
{ {
formaction = formaction + "handle/" + community.getHandle() + "/"; formaction = formaction + "handle/" + community.getHandle() + "/";
} }
formaction = formaction + urlFragment; formaction = formaction + urlFragment;
// prepare the known information about sorting, ordering and results per page // prepare the known information about sorting, ordering and results per page
String sortedBy = so.getName(); String sortedBy = so.getName();
String ascSelected = (bi.isAscending() ? "selected=\"selected\"" : ""); String ascSelected = (bi.isAscending() ? "selected=\"selected\"" : "");
String descSelected = (bi.isAscending() ? "" : "selected=\"selected\""); String descSelected = (bi.isAscending() ? "" : "selected=\"selected\"");
int rpp = bi.getResultsPerPage(); int rpp = bi.getResultsPerPage();
// the message key for the type // the message key for the type
String typeKey; String typeKey;
if (bix.isMetadataIndex()) if (bix.isMetadataIndex())
typeKey = "browse.type.metadata." + bix.getName(); typeKey = "browse.type.metadata." + bix.getName();
else if (bi.getSortOption() != null) else if (bi.getSortOption() != null)
typeKey = "browse.type.item." + bi.getSortOption().getName(); typeKey = "browse.type.item." + bi.getSortOption().getName();
else else
typeKey = "browse.type.item." + bix.getSortOption().getName(); typeKey = "browse.type.item." + bix.getSortOption().getName();
// Admin user or not // Admin user or not
Boolean admin_b = (Boolean)request.getAttribute("admin_button"); Boolean admin_b = (Boolean)request.getAttribute("admin_button");

View File

@@ -34,6 +34,20 @@
if (request.getAttribute("browseWithdrawn") != null || request.getAttribute("browsePrivate") != null) if (request.getAttribute("browseWithdrawn") != null || request.getAttribute("browsePrivate") != null)
{ {
layoutNavbar = "admin"; layoutNavbar = "admin";
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin)){
layoutNavbar = "community-or-collection-admin";
}
} }
// get the BrowseInfo object // get the BrowseInfo object

View File

@@ -45,12 +45,31 @@
List<Group> groups = (List<Group>) request.getAttribute("groups" ); List<Group> groups = (List<Group>) request.getAttribute("groups" );
List<Collection> collections= (List<Collection>) request.getAttribute("collections"); List<Collection> collections= (List<Collection>) request.getAttribute("collections");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-advanced.advanced" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-advanced.advanced"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parentlink="/dspace-admin" parentlink="<%= link %>"
parenttitlekey="jsp.administer"> parenttitlekey="jsp.administer">
<h1><fmt:message key="jsp.dspace-admin.authorize-advanced.advanced"/> <h1><fmt:message key="jsp.dspace-admin.authorize-advanced.advanced"/>

View File

@@ -50,13 +50,32 @@
Collection collection = (Collection) request.getAttribute("collection"); Collection collection = (Collection) request.getAttribute("collection");
List<ResourcePolicy> policies = List<ResourcePolicy> policies =
(List<ResourcePolicy>) request.getAttribute("policies"); (List<ResourcePolicy>) request.getAttribute("policies");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-collection-edit.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-collection-edit.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<h1><fmt:message key="jsp.dspace-admin.authorize-collection-edit.policies"> <h1><fmt:message key="jsp.dspace-admin.authorize-collection-edit.policies">

View File

@@ -50,13 +50,32 @@
Community community = (Community) request.getAttribute("community"); Community community = (Community) request.getAttribute("community");
List<ResourcePolicy> policies = List<ResourcePolicy> policies =
(List<ResourcePolicy>) request.getAttribute("policies"); (List<ResourcePolicy>) request.getAttribute("policies");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-community-edit.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-community-edit.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<h1><fmt:message key="jsp.dspace-admin.authorize-community-edit.policies"> <h1><fmt:message key="jsp.dspace-admin.authorize-community-edit.policies">

View File

@@ -69,13 +69,32 @@
List<Bundle> bundles = (List<Bundle>)request.getAttribute("bundles"); List<Bundle> bundles = (List<Bundle>)request.getAttribute("bundles");
Map bundle_policies = (Map)request.getAttribute("bundle_policies" ); Map bundle_policies = (Map)request.getAttribute("bundle_policies" );
Map bitstream_policies = (Map)request.getAttribute("bitstream_policies"); Map bitstream_policies = (Map)request.getAttribute("bitstream_policies");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-item-edit.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-item-edit.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">

View File

@@ -38,14 +38,31 @@
<% request.setAttribute("LanguageSwitch", "hide"); %> <% request.setAttribute("LanguageSwitch", "hide"); %>
<% <%
// this space intentionally left blank // Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-main.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-main.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%-- <h1>Administer Authorization Policies</h1> --%> <%-- <h1>Administer Authorization Policies</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.authorize-main.adm"/> <h1><fmt:message key="jsp.dspace-admin.authorize-main.adm"/>
@@ -62,10 +79,12 @@
<form method="post" action=""> <form method="post" action="">
<div class="btn-group col-md-offset-5"> <div class="btn-group col-md-offset-5">
<% if(isAdmin){ %>
<div class="row"> <div class="row">
<%-- <input type="submit" name="submit_community" value="Manage a Community's Policies"> --%> <%-- <input type="submit" name="submit_community" value="Manage a Community's Policies"> --%>
<input class="btn btn-default col-md-12" type="submit" name="submit_community" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage1"/>" /> <input class="btn btn-default col-md-12" type="submit" name="submit_community" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage1"/>" />
</div> </div>
<% } %>
<div class="row"> <div class="row">
<%-- <input type="submit" name="submit_collection" value="Manage Collection's Policies"> --%> <%-- <input type="submit" name="submit_collection" value="Manage Collection's Policies"> --%>
<input class="btn btn-default col-md-12" type="submit" name="submit_collection" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage2"/>" /> <input class="btn btn-default col-md-12" type="submit" name="submit_collection" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage2"/>" />
@@ -74,10 +93,12 @@
<%-- <input type="submit" name="submit_item" value="Manage An Item's Policies"> --%> <%-- <input type="submit" name="submit_item" value="Manage An Item's Policies"> --%>
<input class="btn btn-default col-md-12" type="submit" name="submit_item" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage3"/>" /> <input class="btn btn-default col-md-12" type="submit" name="submit_item" value="<fmt:message key="jsp.dspace-admin.authorize-main.manage3"/>" />
</div> </div>
<% if(isAdmin){ %>
<div class="row"> <div class="row">
<%-- <input type="submit" name="submit_advanced" value="Advanced/Item Wildcard Policy Admin Tool"> --%> <%-- <input type="submit" name="submit_advanced" value="Advanced/Item Wildcard Policy Admin Tool"> --%>
<input class="btn btn-default col-md-12" type="submit" name="submit_advanced" value="<fmt:message key="jsp.dspace-admin.authorize-main.advanced"/>" /> <input class="btn btn-default col-md-12" type="submit" name="submit_advanced" value="<fmt:message key="jsp.dspace-admin.authorize-main.advanced"/>" />
</div> </div>
<% } %>
</div> </div>
</form> </form>

View File

@@ -65,13 +65,32 @@
int resourceRelevance = 1 << resourceType; int resourceRelevance = 1 << resourceType;
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-policy-edit.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.authorize-policy-edit.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<%-- <h1>Edit Policy for <%= edit_title %>:</h1> --%> <%-- <h1>Edit Policy for <%= edit_title %>:</h1> --%>

View File

@@ -37,13 +37,32 @@
(List<Collection>) request.getAttribute("collections"); (List<Collection>) request.getAttribute("collections");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.collection-select.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.collection-select.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>" >
<%-- <h1>Collections:</h1> --%> <%-- <h1>Collections:</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.collection-select.col"/></h1> <h1><fmt:message key="jsp.dspace-admin.collection-select.col"/></h1>

View File

@@ -37,13 +37,32 @@
(List<Community>) request.getAttribute("communities"); (List<Community>) request.getAttribute("communities");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.community-select.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.community-select.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%-- <h1>communities:</h1> --%> <%-- <h1>communities:</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.community-select.com"/></h1> <h1><fmt:message key="jsp.dspace-admin.community-select.com"/></h1>

View File

@@ -36,12 +36,26 @@
<% <%
// Obtain a context so that the location bar can display log in status // Obtain a context so that the location bar can display log in status
Context context = null; Context context = null;
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
try try
{ {
context = UIUtil.obtainContext(request); context = UIUtil.obtainContext(request);
String naviAdmin = "admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin)){
naviAdmin = "community-or-collection-admin";
}
%> %>
<dspace:layout style="submission" locbar="link" navbar="admin" titlekey="jsp.administer"> <dspace:layout style="submission" locbar="link" navbar="<%= naviAdmin %>" titlekey="jsp.administer">
<%-- <h1>Administration Tools</h1> --%> <%-- <h1>Administration Tools</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.index.heading"/></h1> <h1><fmt:message key="jsp.dspace-admin.index.heading"/></h1>

View File

@@ -26,12 +26,31 @@
<%@ page import="org.dspace.core.ConfigurationManager" %> <%@ page import="org.dspace.core.ConfigurationManager" %>
<%
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%>
<dspace:layout style="submission" titlekey="jsp.dspace-admin.item-select.title" <dspace:layout style="submission" titlekey="jsp.dspace-admin.item-select.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%-- <h1>Select an Item</h1> --%> <%-- <h1>Select an Item</h1> --%>

View File

@@ -30,14 +30,32 @@
<% <%
Collection collection = (Collection) request.getAttribute("collection"); Collection collection = (Collection) request.getAttribute("collection");
Community community = (Community) request.getAttribute("community"); Community community = (Community) request.getAttribute("community");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout titlekey="jsp.dspace-admin.upload-logo.title" <dspace:layout titlekey="jsp.dspace-admin.upload-logo.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<%-- <h1>Upload Logo</h1> --%> <%-- <h1>Upload Logo</h1> --%>

View File

@@ -0,0 +1,103 @@
<%--
The contents of this file are subject to the license and copyright
detailed in the LICENSE and NOTICE files at the root of the source
tree and available online at
http://www.dspace.org/license/
--%>
<%--
- Navigation bar for admin pages
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.LinkedList" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
<%@ page import="org.dspace.browse.BrowseInfo" %>
<%@ page import="org.dspace.sort.SortOption" %>
<%@ page import="org.dspace.app.webui.util.UIUtil" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@page import="org.apache.commons.lang.StringUtils"%>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
// Is anyone logged in?
EPerson user = (EPerson) request.getAttribute("dspace.current.user");
// Get the current page, minus query string
String currentPage = UIUtil.getOriginalURL(request);
int c = currentPage.indexOf( '?' );
if( c > -1 )
{
currentPage = currentPage.substring(0, c);
}
// E-mail may have to be truncated
String navbarEmail = null;
if (user != null)
{
navbarEmail = user.getEmail();
}
%>
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<%= request.getContextPath() %>/"><img height="25px" src="<%= request.getContextPath() %>/image/dspace-logo-only.png" /></a>
</div>
<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
<ul class="nav navbar-nav">
<li><a href="<%= request.getContextPath() %>/"><span class="glyphicon glyphicon-home"></span> <fmt:message key="jsp.layout.navbar-default.home"/></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><fmt:message key="jsp.layout.navbar-admin.contents"/> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<%= request.getContextPath() %>/tools/edit-communities"><fmt:message key="jsp.layout.navbar-admin.communities-collections"/></a></li>
<li class="divider"></li>
<li><a href="<%= request.getContextPath() %>/tools/edit-item"><fmt:message key="jsp.layout.navbar-admin.items"/></a></li>
<li><a href="<%= request.getContextPath() %>/tools/withdrawn"><fmt:message key="jsp.layout.navbar-admin.withdrawn"/></a></li>
<li><a href="<%= request.getContextPath() %>/tools/privateitems"><fmt:message key="jsp.layout.navbar-admin.privateitems"/></a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><fmt:message key="jsp.layout.navbar-admin.accesscontrol"/> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<%= request.getContextPath() %>/tools/group-edit"><fmt:message key="jsp.layout.navbar-admin.groups"/></a></li>
<li><a href="<%= request.getContextPath() %>/tools/authorize"><fmt:message key="jsp.layout.navbar-admin.authorization"/></a></li>
</ul>
</li>
<li class="<%= ( currentPage.endsWith( "/help" ) ? "active" : "" ) %>"><dspace:popup page="<%= LocaleSupport.getLocalizedMessage(pageContext, \"help.site-admin\") %>"><fmt:message key="jsp.layout.navbar-admin.help"/></dspace:popup></li>
</ul>
<div class="nav navbar-nav navbar-right">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span> <fmt:message key="jsp.layout.navbar-default.loggedin">
<fmt:param><%= StringUtils.abbreviate(navbarEmail, 20) %></fmt:param>
</fmt:message> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<%= request.getContextPath() %>/subscribe"><fmt:message key="jsp.layout.navbar-default.receive"/></a></li>
<li><a href="<%= request.getContextPath() %>/mydspace"><fmt:message key="jsp.layout.navbar-default.users"/></a></li>
<li><a href="<%= request.getContextPath() %>/profile"><fmt:message key="jsp.layout.navbar-default.edit"/></a></li>
<li><a href="<%= request.getContextPath() %>/logout"><span class="glyphicon glyphicon-log-out"></span> <fmt:message key="jsp.layout.navbar-default.logout"/></a></li>
</ul>
</li>
</ul>
</div>
</nav>

View File

@@ -39,6 +39,12 @@
Boolean admin = (Boolean)request.getAttribute("is.admin"); Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue()); boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
// Get the current page, minus query string // Get the current page, minus query string
String currentPage = UIUtil.getOriginalURL(request); String currentPage = UIUtil.getOriginalURL(request);
int c = currentPage.indexOf( '?' ); int c = currentPage.indexOf( '?' );
@@ -165,13 +171,19 @@
<li><a href="<%= request.getContextPath() %>/profile"><fmt:message key="jsp.layout.navbar-default.edit"/></a></li> <li><a href="<%= request.getContextPath() %>/profile"><fmt:message key="jsp.layout.navbar-default.edit"/></a></li>
<% <%
if (isAdmin) if (isAdmin || isCommunityAdmin || isCollectionAdmin) {
{ %>
%> <li class="divider"></li>
<li class="divider"></li> <% if (isAdmin) {%>
<li><a href="<%= request.getContextPath() %>/dspace-admin"><fmt:message key="jsp.administer"/></a></li>
<% <li><a href="<%= request.getContextPath()%>/dspace-admin">
} <% } else if (isCommunityAdmin || isCollectionAdmin) {%>
<li><a href="<%= request.getContextPath()%>/tools">
<% } %>
<fmt:message key="jsp.administer"/></a></li>
<%
}
if (user != null) { if (user != null) {
%> %>
<li><a href="<%= request.getContextPath() %>/logout"><span class="glyphicon glyphicon-log-out"></span> <fmt:message key="jsp.layout.navbar-default.logout"/></a></li> <li><a href="<%= request.getContextPath() %>/logout"><span class="glyphicon glyphicon-log-out"></span> <fmt:message key="jsp.layout.navbar-default.logout"/></a></li>

View File

@@ -28,13 +28,32 @@
String handle = (String) request.getAttribute("handle"); String handle = (String) request.getAttribute("handle");
Item item = (Item) request.getAttribute("item"); Item item = (Item) request.getAttribute("item");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout titlekey="jsp.tools.confirm-delete-item.title" <dspace:layout titlekey="jsp.tools.confirm-delete-item.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<%-- <h1>Delete Item: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1> --%> <%-- <h1>Delete Item: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1> --%>

View File

@@ -28,13 +28,32 @@
String handle = (String) request.getAttribute("handle"); String handle = (String) request.getAttribute("handle");
Item item = (Item) request.getAttribute("item"); Item item = (Item) request.getAttribute("item");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout titlekey="jsp.tools.confirm-privating-item.title" <dspace:layout titlekey="jsp.tools.confirm-privating-item.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<h1><fmt:message key="jsp.tools.confirm-privating-item.title"/>: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1> <h1><fmt:message key="jsp.tools.confirm-privating-item.title"/>: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1>

View File

@@ -28,13 +28,32 @@
String handle = (String) request.getAttribute("handle"); String handle = (String) request.getAttribute("handle");
Item item = (Item) request.getAttribute("item"); Item item = (Item) request.getAttribute("item");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout titlekey="jsp.tools.confirm-withdraw-item.title" <dspace:layout titlekey="jsp.tools.confirm-withdraw-item.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<%-- <h1>Withdraw Item: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1> --%> <%-- <h1>Withdraw Item: <%= (handle == null ? String.valueOf(item.getID()) : handle) %></h1> --%>

View File

@@ -47,13 +47,31 @@
String title = (collection != null ? collection.getName() : "Unknown Collection"); String title = (collection != null ? collection.getName() : "Unknown Collection");
String groupOptions = (String)request.getAttribute("curate_group_options"); String groupOptions = (String)request.getAttribute("curate_group_options");
String taskOptions = (String)request.getAttribute("curate_task_options"); String taskOptions = (String)request.getAttribute("curate_task_options");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.curate.collection.title" <dspace:layout style="submission" titlekey="jsp.tools.curate.collection.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%@ include file="/tools/curate-message.jsp" %> <%@ include file="/tools/curate-message.jsp" %>

View File

@@ -39,14 +39,33 @@
UUID communityID = (community != null ? community.getID() : null); UUID communityID = (community != null ? community.getID() : null);
String title = (community != null ? community.getName() : "Unknown Community"); String title = (community != null ? community.getName() : "Unknown Community");
String groupOptions = (String)request.getAttribute("curate_group_options"); String groupOptions = (String)request.getAttribute("curate_group_options");
String taskOptions = (String)request.getAttribute("curate_task_options"); String taskOptions = (String)request.getAttribute("curate_task_options");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.curate.community.title" <dspace:layout style="submission" titlekey="jsp.tools.curate.community.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%@ include file="/tools/curate-message.jsp" %> <%@ include file="/tools/curate-message.jsp" %>

View File

@@ -41,13 +41,32 @@
} }
String groupOptions = (String)request.getAttribute("curate_group_options"); String groupOptions = (String)request.getAttribute("curate_group_options");
String taskOptions = (String)request.getAttribute("curate_task_options"); String taskOptions = (String)request.getAttribute("curate_task_options");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.curate.item.title" <dspace:layout style="submission" titlekey="jsp.tools.curate.item.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%@ include file="/tools/curate-message.jsp" %> <%@ include file="/tools/curate-message.jsp" %>

View File

@@ -63,10 +63,25 @@
Boolean deleteButton = (Boolean)request.getAttribute("delete_button"); Boolean deleteButton = (Boolean)request.getAttribute("delete_button");
boolean bDeleteButton = (deleteButton == null ? false : deleteButton.booleanValue()); boolean bDeleteButton = (deleteButton == null ? false : deleteButton.booleanValue());
// Is the logged in user a sys admin // Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin"); Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue()); boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
HarvestedCollection hc = (HarvestedCollection) request.getAttribute("harvestInstance"); HarvestedCollection hc = (HarvestedCollection) request.getAttribute("harvestInstance");
String name = ""; String name = "";
@@ -136,9 +151,9 @@
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.edit-collection.title" <dspace:layout style="submission" titlekey="jsp.tools.edit-collection.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parentlink="/dspace-admin" parentlink="<%= link %>"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
nocache="true"> nocache="true">
<div class="row"> <div class="row">

View File

@@ -37,10 +37,26 @@
Community community = (Community) request.getAttribute("community"); Community community = (Community) request.getAttribute("community");
Community parentCommunity = (Community) request.getAttribute("parent"); Community parentCommunity = (Community) request.getAttribute("parent");
UUID parentID = (parentCommunity != null ? parentCommunity.getID() : null); UUID parentID = (parentCommunity != null ? parentCommunity.getID() : null);
// Is the logged in user a sys admin
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin"); Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue()); boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
Boolean adminCreateGroup = (Boolean)request.getAttribute("admin_create_button"); Boolean adminCreateGroup = (Boolean)request.getAttribute("admin_create_button");
boolean bAdminCreateGroup = (adminCreateGroup == null ? false : adminCreateGroup.booleanValue()); boolean bAdminCreateGroup = (adminCreateGroup == null ? false : adminCreateGroup.booleanValue());
@@ -77,9 +93,9 @@
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.edit-community.title" <dspace:layout style="submission" titlekey="jsp.tools.edit-community.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parentlink="/dspace-admin" parentlink="<%= link %>"
parenttitlekey="jsp.administer" nocache="true"> parenttitlekey="jsp.administer" nocache="true">
<div class="row"> <div class="row">

View File

@@ -60,6 +60,25 @@
// Is the logged in user an admin of the item // Is the logged in user an admin of the item
Boolean itemAdmin = (Boolean)request.getAttribute("admin_button"); Boolean itemAdmin = (Boolean)request.getAttribute("admin_button");
boolean isItemAdmin = (itemAdmin == null ? false : itemAdmin.booleanValue()); boolean isItemAdmin = (itemAdmin == null ? false : itemAdmin.booleanValue());
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
Boolean policy = (Boolean)request.getAttribute("policy_button"); Boolean policy = (Boolean)request.getAttribute("policy_button");
boolean bPolicy = (policy == null ? false : policy.booleanValue()); boolean bPolicy = (policy == null ? false : policy.booleanValue());
@@ -195,10 +214,10 @@
</c:set> </c:set>
<dspace:layout style="submission" titlekey="jsp.tools.edit-item-form.title" <dspace:layout style="submission" titlekey="jsp.tools.edit-item-form.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">

View File

@@ -26,11 +26,31 @@
<%@ page import="org.dspace.core.ConfigurationManager" %> <%@ page import="org.dspace.core.ConfigurationManager" %>
<%
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%>
<dspace:layout style="submission" titlekey="jsp.tools.get-item-id.title" <dspace:layout style="submission" titlekey="jsp.tools.get-item-id.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin"> parentlink="<%= link %>">
<%-- <h1>Edit or Delete Item</h1> --%> <%-- <h1>Edit or Delete Item</h1> --%>
<h1><fmt:message key="jsp.tools.get-item-id.heading"/> <h1><fmt:message key="jsp.tools.get-item-id.heading"/>

View File

@@ -41,13 +41,32 @@
List<Group> groups = (List<Group>) request.getAttribute("membergroups"); List<Group> groups = (List<Group>) request.getAttribute("membergroups");
request.setAttribute("LanguageSwitch", "hide"); request.setAttribute("LanguageSwitch", "hide");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.group-edit.title" <dspace:layout style="submission" titlekey="jsp.tools.group-edit.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<h1><fmt:message key="jsp.tools.group-edit.title"/> : <%=group.getName()%> (id: <%=group.getID()%>) <h1><fmt:message key="jsp.tools.group-edit.title"/> : <%=group.getName()%> (id: <%=group.getID()%>)

View File

@@ -32,13 +32,32 @@
<% <%
List<Group> groups = List<Group> groups =
(List<Group>) request.getAttribute("groups"); (List<Group>) request.getAttribute("groups");
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
String naviAdmin = "admin";
String link = "/dspace-admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin))
{
naviAdmin = "community-or-collection-admin";
link = "/tools";
}
%> %>
<dspace:layout style="submission" titlekey="jsp.tools.group-list.title" <dspace:layout style="submission" titlekey="jsp.tools.group-list.title"
navbar="admin" navbar="<%= naviAdmin %>"
locbar="link" locbar="link"
parenttitlekey="jsp.administer" parenttitlekey="jsp.administer"
parentlink="/dspace-admin" parentlink="<%= link %>"
nocache="true"> nocache="true">
<%-- <h1>Group Editor</h1> --%> <%-- <h1>Group Editor</h1> --%>
@@ -52,9 +71,11 @@
<p class="alert alert-warning"><fmt:message key="jsp.tools.group-list.note2"/></p> <p class="alert alert-warning"><fmt:message key="jsp.tools.group-list.note2"/></p>
<form method="post" action=""> <form method="post" action="">
<div class="row col-md-offset-5"> <% if(isAdmin){ %>
<input class="btn btn-success" type="submit" name="submit_add" value="<fmt:message key="jsp.tools.group-list.create.button"/>" /> <div class="row col-md-offset-5">
</div> <input class="btn btn-success" type="submit" name="submit_add" value="<fmt:message key="jsp.tools.group-list.create.button"/>" />
</div>
<% } %>
</form> </form>
<br/> <br/>

View File

@@ -0,0 +1,85 @@
<%--
The contents of this file are subject to the license and copyright
detailed in the LICENSE and NOTICE files at the root of the source
tree and available online at
http://www.dspace.org/license/
--%>
<%--
- Admin tool index page
-
- Note that this is a "stand-alone" JSP that is invoked directly, and not
- via a Servlet.
-
- This means there's some business logic, basically some minimal stuff
- from DSpaceServlet.java. This shouldn't happen elsewhere in the JSPs.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
prefix="fmt" %>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="org.apache.log4j.Logger" %>
<%@ page import="org.dspace.app.webui.util.JSPManager" %>
<%@ page import="org.dspace.app.webui.util.UIUtil" %>
<%@ page import="org.dspace.core.Context" %>
<%@ page import="org.dspace.core.LogManager" %>
<%
// Obtain a context so that the location bar can display log in status
Context context = null;
// Is the logged in user an admin or community admin or cllection admin
Boolean admin = (Boolean)request.getAttribute("is.admin");
boolean isAdmin = (admin == null ? false : admin.booleanValue());
Boolean communityAdmin = (Boolean)request.getAttribute("is.communityAdmin");
boolean isCommunityAdmin = (communityAdmin == null ? false : communityAdmin.booleanValue());
Boolean collectionAdmin = (Boolean)request.getAttribute("is.collectionAdmin");
boolean isCollectionAdmin = (collectionAdmin == null ? false : collectionAdmin.booleanValue());
try
{
context = UIUtil.obtainContext(request);
String naviAdmin = "admin";
if(!isAdmin && (isCommunityAdmin || isCollectionAdmin)){
naviAdmin = "community-or-collection-admin";
}
%>
<dspace:layout style="submission" locbar="link" navbar="<%= naviAdmin %>" titlekey="jsp.administer">
<%-- <h1>Administration Tools</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.index.heading"/></h1>
<%-- <p>Please select an operation from the main menu bar.</p> --%>
<p><fmt:message key="jsp.dspace-admin.index.text"/></p>
</dspace:layout>
<%
}
catch (SQLException se)
{
// Database error occurred.
Logger log = Logger.getLogger("org.dspace.jsp");
log.warn(LogManager.getHeader(context,
"database_error",
se.toString()), se);
// Also email an alert
UIUtil.sendAlert(request, se);
JSPManager.showInternalError(request, response);
}
finally {
context.abort();
}
%>