mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
DS-2895 wrap the updateLastModified call inside an ignore authorization block / move the call after that the action has been performed
This commit is contained in:
@@ -118,15 +118,17 @@ public class ResourcePolicyServiceImpl implements ResourcePolicyService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void delete(Context context, ResourcePolicy resourcePolicy) throws SQLException, AuthorizeException {
|
public void delete(Context context, ResourcePolicy resourcePolicy) throws SQLException, AuthorizeException {
|
||||||
|
// FIXME: authorizations
|
||||||
|
// Remove ourself
|
||||||
|
resourcePolicyDAO.delete(context, resourcePolicy);
|
||||||
|
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
if(resourcePolicy.getdSpaceObject() != null)
|
if(resourcePolicy.getdSpaceObject() != null)
|
||||||
{
|
{
|
||||||
//A policy for a DSpace Object has been modified, fire a modify event on the DSpace object
|
//A policy for a DSpace Object has been modified, fire a modify event on the DSpace object
|
||||||
contentServiceFactory.getDSpaceObjectService(resourcePolicy.getdSpaceObject()).updateLastModified(context, resourcePolicy.getdSpaceObject());
|
contentServiceFactory.getDSpaceObjectService(resourcePolicy.getdSpaceObject()).updateLastModified(context, resourcePolicy.getdSpaceObject());
|
||||||
}
|
}
|
||||||
|
context.restoreAuthSystemState();
|
||||||
// FIXME: authorizations
|
|
||||||
// Remove ourself
|
|
||||||
resourcePolicyDAO.delete(context, resourcePolicy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -203,26 +205,34 @@ public class ResourcePolicyServiceImpl implements ResourcePolicyService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllPolicies(Context c, DSpaceObject o) throws SQLException, AuthorizeException {
|
public void removeAllPolicies(Context c, DSpaceObject o) throws SQLException, AuthorizeException {
|
||||||
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
|
||||||
resourcePolicyDAO.deleteByDso(c, o);
|
resourcePolicyDAO.deleteByDso(c, o);
|
||||||
|
c.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
||||||
|
c.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removePolicies(Context c, DSpaceObject o, String type) throws SQLException, AuthorizeException {
|
public void removePolicies(Context c, DSpaceObject o, String type) throws SQLException, AuthorizeException {
|
||||||
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
|
||||||
resourcePolicyDAO.deleteByDsoAndType(c, o, type);
|
resourcePolicyDAO.deleteByDsoAndType(c, o, type);
|
||||||
|
c.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
||||||
|
c.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDsoGroupPolicies(Context context, DSpaceObject dso, Group group) throws SQLException, AuthorizeException {
|
public void removeDsoGroupPolicies(Context context, DSpaceObject dso, Group group) throws SQLException, AuthorizeException {
|
||||||
contentServiceFactory.getDSpaceObjectService(dso).updateLastModified(context, dso);
|
|
||||||
resourcePolicyDAO.deleteByDsoGroupPolicies(context, dso, group);
|
resourcePolicyDAO.deleteByDsoGroupPolicies(context, dso, group);
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(dso).updateLastModified(context, dso);
|
||||||
|
context.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDsoEPersonPolicies(Context context, DSpaceObject dso, EPerson ePerson) throws SQLException, AuthorizeException {
|
public void removeDsoEPersonPolicies(Context context, DSpaceObject dso, EPerson ePerson) throws SQLException, AuthorizeException {
|
||||||
contentServiceFactory.getDSpaceObjectService(dso).updateLastModified(context, dso);
|
|
||||||
resourcePolicyDAO.deleteByDsoEPersonPolicies(context, dso, ePerson);
|
resourcePolicyDAO.deleteByDsoEPersonPolicies(context, dso, ePerson);
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(dso).updateLastModified(context, dso);
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,15 +247,19 @@ public class ResourcePolicyServiceImpl implements ResourcePolicyService
|
|||||||
{
|
{
|
||||||
removeAllPolicies(c, o);
|
removeAllPolicies(c, o);
|
||||||
}else{
|
}else{
|
||||||
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
|
||||||
resourcePolicyDAO.deleteByDsoAndAction(c, o, actionId);
|
resourcePolicyDAO.deleteByDsoAndAction(c, o, actionId);
|
||||||
|
c.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
||||||
|
c.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDsoAndTypeNotEqualsToPolicies(Context c, DSpaceObject o, String type) throws SQLException, AuthorizeException {
|
public void removeDsoAndTypeNotEqualsToPolicies(Context c, DSpaceObject o, String type) throws SQLException, AuthorizeException {
|
||||||
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
|
||||||
resourcePolicyDAO.deleteByDsoAndTypeNotEqualsTo(c, o, type);
|
resourcePolicyDAO.deleteByDsoAndTypeNotEqualsTo(c, o, type);
|
||||||
|
c.turnOffAuthorisationSystem();
|
||||||
|
contentServiceFactory.getDSpaceObjectService(o).updateLastModified(c, o);
|
||||||
|
c.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -279,10 +293,12 @@ public class ResourcePolicyServiceImpl implements ResourcePolicyService
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Update the last modified timestamp of all related DSpace Objects
|
//Update the last modified timestamp of all related DSpace Objects
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
for (DSpaceObject dSpaceObject : relatedDSpaceObjects) {
|
for (DSpaceObject dSpaceObject : relatedDSpaceObjects) {
|
||||||
//A policy for a DSpace Object has been modified, fire a modify event on the DSpace object
|
//A policy for a DSpace Object has been modified, fire a modify event on the DSpace object
|
||||||
contentServiceFactory.getDSpaceObjectService(dSpaceObject).updateLastModified(context, dSpaceObject);
|
contentServiceFactory.getDSpaceObjectService(dSpaceObject).updateLastModified(context, dSpaceObject);
|
||||||
}
|
}
|
||||||
|
context.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user