"/dspace-admin/authorize-policy-edit.jsp");
}
else if (button.equals("submit_community_select"))
{
// edit the collection's permissions
Community target = Community.find(c, UIUtil.getIntParameter(
request, "community_id"));
List policies = AuthorizeManager.getPolicies(c, target);
request.setAttribute("community", target);
request.setAttribute("policies", policies);
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-community-edit.jsp");
}
else if (button.equals("submit_collection_delete_policy"))
{
// delete a permission from a collection
Collection collection = Collection.find(c, UIUtil.getIntParameter(
request, "collection_id"));
AuthorizeUtil.authorizeManageCollectionPolicy(c, collection);
ResourcePolicy policy = ResourcePolicy.find(c, UIUtil
.getIntParameter(request, "policy_id"));
// do the remove
policy.delete();
// return to collection permission page
request.setAttribute("collection", collection);
List policies = AuthorizeManager.getPolicies(c, collection);
request.setAttribute("policies", policies);
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-collection-edit.jsp");
}
else if (button.equals("submit_community_delete_policy"))
{
// delete a permission from a community
Community community = Community.find(c, UIUtil.getIntParameter(
request, "community_id"));
AuthorizeUtil.authorizeManageCommunityPolicy(c, community);
ResourcePolicy policy = ResourcePolicy.find(c, UIUtil
.getIntParameter(request, "policy_id"));
// do the remove
policy.delete();
// return to collection permission page
request.setAttribute("community", community);
List policies = AuthorizeManager.getPolicies(c, community);
request.setAttribute("policies", policies);
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-community-edit.jsp");
}
else if (button.equals("submit_collection_edit_policy"))
{
// edit a collection's policy - set up and call policy editor
Collection collection = Collection.find(c, UIUtil.getIntParameter(
request, "collection_id"));
AuthorizeUtil.authorizeManageCollectionPolicy(c, collection);
int policy_id = UIUtil.getIntParameter(request, "policy_id");
ResourcePolicy policy = null;
if (policy_id == -1)
{
// create new policy
policy = ResourcePolicy.create(c);
policy.setResource(collection);
policy.update();
}
else
{
policy = ResourcePolicy.find(c, policy_id);
}
Group[] groups = Group.findAll(c, Group.NAME);
EPerson[] epeople = EPerson.findAll(c, EPerson.EMAIL);
// return to collection permission page
request.setAttribute("edit_title", "Collection "
+ collection.getID());
request.setAttribute("policy", policy);
request.setAttribute("groups", groups);
request.setAttribute("epeople", epeople);
request.setAttribute("id_name", "collection_id");
request.setAttribute("id", "" + collection.getID());
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-policy-edit.jsp");
}
else if (button.equals("submit_community_edit_policy"))
{
// edit a community's policy - set up and call policy editor
Community community = Community.find(c, UIUtil.getIntParameter(
request, "community_id"));
AuthorizeUtil.authorizeManageCommunityPolicy(c, community);
int policy_id = UIUtil.getIntParameter(request, "policy_id");
ResourcePolicy policy = null;
if (policy_id == -1)
{
// create new policy
policy = ResourcePolicy.create(c);
policy.setResource(community);
policy.update();
}
else
{
policy = ResourcePolicy.find(c, policy_id);
}
Group[] groups = Group.findAll(c, Group.NAME);
EPerson[] epeople = EPerson.findAll(c, EPerson.EMAIL);
// return to collection permission page
request
.setAttribute("edit_title", "Community "
+ community.getID());
request.setAttribute("policy", policy);
request.setAttribute("groups", groups);
request.setAttribute("epeople", epeople);
request.setAttribute("id_name", "community_id");
request.setAttribute("id", "" + community.getID());
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-policy-edit.jsp");
}
else if (button.equals("submit_collection_add_policy"))
{
// want to add a policy, create an empty one and invoke editor
Collection collection = Collection.find(c, UIUtil.getIntParameter(
request, "collection_id"));
AuthorizeUtil.authorizeManageCollectionPolicy(c, collection);
ResourcePolicy policy = ResourcePolicy.create(c);
policy.setResource(collection);
policy.update();
Group[] groups = Group.findAll(c, Group.NAME);
EPerson[] epeople = EPerson.findAll(c, EPerson.EMAIL);
// return to collection permission page
request.setAttribute("edit_title", "Collection "
+ collection.getID());
request.setAttribute("policy", policy);
request.setAttribute("groups", groups);
request.setAttribute("epeople", epeople);
request.setAttribute("id_name", "collection_id");
request.setAttribute("id", "" + collection.getID());
request.setAttribute("newpolicy", "true");
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-policy-edit.jsp");
}
else if (button.equals("submit_community_add_policy"))
{
// want to add a policy, create an empty one and invoke editor
Community community = Community.find(c, UIUtil.getIntParameter(
request, "community_id"));
AuthorizeUtil.authorizeManageCommunityPolicy(c, community);
ResourcePolicy policy = ResourcePolicy.create(c);
policy.setResource(community);
policy.update();
Group[] groups = Group.findAll(c, Group.NAME);
EPerson[] epeople = EPerson.findAll(c, EPerson.EMAIL);
// return to collection permission page
request
.setAttribute("edit_title", "Community "
+ community.getID());
request.setAttribute("policy", policy);
request.setAttribute("groups", groups);
request.setAttribute("epeople", epeople);
request.setAttribute("id_name", "community_id");
request.setAttribute("id", "" + community.getID());
request.setAttribute("newpolicy", "true");
JSPManager.showJSP(request, response,
"/dspace-admin/authorize-policy-edit.jsp");
}
else if (button.equals("submit_save_policy"))
{
int policy_id = UIUtil.getIntParameter(request, "policy_id");
int action_id = UIUtil.getIntParameter(request, "action_id");
int group_id = UIUtil.getIntParameter(request, "group_id");
int collection_id = UIUtil
.getIntParameter(request, "collection_id");
int community_id = UIUtil.getIntParameter(request, "community_id");
int item_id = UIUtil.getIntParameter(request, "item_id");
Item item = null;
Collection collection = null;
Community community = null;
String display_page = null;
ResourcePolicy policy = ResourcePolicy.find(c, policy_id);
AuthorizeUtil.authorizeManagePolicy(c, policy);
Group group = Group.find(c, group_id);
if (collection_id != -1)
{
collection = Collection.find(c, collection_id);
// modify the policy
policy.setAction(action_id);
policy.setGroup(group);
policy.update();
// if it is a read, policy, modify the logo policy to match
if (action_id == Constants.READ)
{
// first get a list of READ policies from collection
List rps = AuthorizeManager.getPoliciesActionFilter(c,
collection, Constants.READ);
// remove all bitstream policies, then add READs
Bitstream bs = collection.getLogo();
if (bs != null)
{
AuthorizeManager.removeAllPolicies(c, bs);
AuthorizeManager.addPolicies(c, rps, bs);
}
}
// set up page attributes
request.setAttribute("collection", collection);
request.setAttribute("policies", AuthorizeManager.getPolicies(
c, collection));
display_page = "/dspace-admin/authorize-collection-edit.jsp";
}
else if (community_id != -1)
{
community = Community.find(c, community_id);
// modify the policy
policy.setAction(action_id);
policy.setGroup(group);
policy.update();
// if it is a read, policy, modify the logo policy to match
if (action_id == Constants.READ)
{
// first get a list of READ policies from collection
List rps = AuthorizeManager.getPoliciesActionFilter(c,
community, Constants.READ);
// remove all bitstream policies, then add READs
Bitstream bs = community.getLogo();
if (bs != null)
{
AuthorizeManager.removeAllPolicies(c, bs);
AuthorizeManager.addPolicies(c, rps, bs);
}
}
// set up page attributes
request.setAttribute("community", community);
request.setAttribute("policies", AuthorizeManager.getPolicies(
c, community));
display_page = "/dspace-admin/authorize-community-edit.jsp";
}
else if (item_id != -1)
{
item = Item.find(c, item_id);
// modify the policy
policy.setAction(action_id);
policy.setGroup(group);
policy.update();
// show edit form!
prepItemEditForm(c, request, item);
display_page = "/dspace-admin/authorize-item-edit.jsp";
}
// now return to previous state
JSPManager.showJSP(request, response, display_page);
}
else if (button.equals("submit_cancel_policy"))
{
// delete the policy that we created if it's a new one
if ((request.getParameter("newpolicy") != null))
{
int policy_id = UIUtil.getIntParameter(request, "policy_id");
ResourcePolicy rp = ResourcePolicy.find(c, policy_id);
AuthorizeUtil.authorizeManagePolicy(c, rp);
rp.delete();
}
// return to the previous page
int collection_id = UIUtil
.getIntParameter(request, "collection_id");
int community_id = UIUtil.getIntParameter(request, "community_id");
int item_id = UIUtil.getIntParameter(request, "item_id");
String display_page = null;
if (collection_id != -1)
{
// set up for return to collection edit page
Collection t = Collection.find(c, collection_id);
request.setAttribute("collection", t);
request.setAttribute("policies", AuthorizeManager.getPolicies(
c, t));
display_page = "/dspace-admin/authorize-collection-edit.jsp";
}
else if (community_id != -1)
{
// set up for return to community edit page
Community t = Community.find(c, community_id);
request.setAttribute("community", t);
request.setAttribute("policies", AuthorizeManager.getPolicies(
c, t));
display_page = "/dspace-admin/authorize-community-edit.jsp";