RM-1343 (It's possible to copy/link to closed folder)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@74286 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2014-06-19 15:12:13 +00:00
parent f37ba9e199
commit 43ee5e1a0a
3 changed files with 42 additions and 21 deletions

View File

@@ -26,7 +26,7 @@ function runAction(p_params)
status.setCode(status.STATUS_BAD_REQUEST, "No files."); status.setCode(status.STATUS_BAD_REQUEST, "No files.");
return; return;
} }
for (file in files) for (file in files)
{ {
nodeRef = files[file]; nodeRef = files[file];
@@ -36,7 +36,7 @@ function runAction(p_params)
action: "copyFile", action: "copyFile",
success: false success: false
}; };
try try
{ {
fileNode = search.findNode(nodeRef); fileNode = search.findNode(nodeRef);
@@ -47,15 +47,22 @@ function runAction(p_params)
result.success = false; result.success = false;
result.error = "Can't find source node."; result.error = "Can't find source node.";
} }
if (!rmService.getRecordsManagementNode(destNode).hasCapability("FillingPermissionOnly"))
{
result.name = fileNode.name;
result.error = "The destination is either frozen, closed or cut off!";
results.push(result);
continue;
}
else else
{ {
result.id = fileNode.name; result.id = fileNode.name;
result.name = fileNode.name; result.name = fileNode.name;
result.type = fileNode.isContainer ? "folder" : "document" result.type = fileNode.isContainer ? "folder" : "document"
// Retain the name of the site the node is currently in. Null if it's not in a site. // Retain the name of the site the node is currently in. Null if it's not in a site.
fromSite = String(fileNode.siteShortName); fromSite = String(fileNode.siteShortName);
// copy the node (deep copy for containers) // copy the node (deep copy for containers)
if (fileNode.isContainer) if (fileNode.isContainer)
{ {
@@ -68,7 +75,7 @@ function runAction(p_params)
result.nodeRef = copiedNode.nodeRef.toString(); result.nodeRef = copiedNode.nodeRef.toString();
result.success = (result.nodeRef != null); result.success = (result.nodeRef != null);
if (result.success) if (result.success)
{ {
// If this was an inter-site copy, we'll need to clean up the permissions on the node // If this was an inter-site copy, we'll need to clean up the permissions on the node
@@ -83,13 +90,13 @@ function runAction(p_params)
{ {
result.id = file; result.id = file;
result.nodeRef = nodeRef; result.nodeRef = nodeRef;
result.success = false; result.success = false;
result.error = e.message; result.error = e.message;
// log the error // log the error
logger.error(e.message); logger.error(e.message);
} }
results.push(result); results.push(result);
} }

View File

@@ -25,7 +25,7 @@ function runAction(p_params)
status.setCode(status.STATUS_BAD_REQUEST, "No files."); status.setCode(status.STATUS_BAD_REQUEST, "No files.");
return; return;
} }
for (file in files) for (file in files)
{ {
nodeRef = files[file]; nodeRef = files[file];
@@ -35,7 +35,7 @@ function runAction(p_params)
action: "addChild", action: "addChild",
success: false success: false
} }
try try
{ {
fileNode = search.findNode(nodeRef); fileNode = search.findNode(nodeRef);
@@ -45,6 +45,13 @@ function runAction(p_params)
result.nodeRef = nodeRef; result.nodeRef = nodeRef;
result.success = false; result.success = false;
} }
if (!rmService.getRecordsManagementNode(destNode).hasCapability("FillingPermissionOnly"))
{
result.name = fileNode.name;
result.error = "The destination is either frozen, closed or cut off!";
results.push(result);
continue;
}
else else
{ {
result.id = fileNode.name; result.id = fileNode.name;
@@ -58,13 +65,13 @@ function runAction(p_params)
{ {
result.id = file; result.id = file;
result.nodeRef = nodeRef; result.nodeRef = nodeRef;
result.success = false; result.success = false;
result.error = e.message; result.error = e.message;
// log the error // log the error
logger.error(e.message); logger.error(e.message);
} }
results.push(result); results.push(result);
} }

View File

@@ -27,7 +27,7 @@ function runAction(p_params)
status.setCode(status.STATUS_BAD_REQUEST, "No files."); status.setCode(status.STATUS_BAD_REQUEST, "No files.");
return; return;
} }
for (file in files) for (file in files)
{ {
nodeRef = files[file]; nodeRef = files[file];
@@ -37,7 +37,7 @@ function runAction(p_params)
action: "moveFile", action: "moveFile",
success: false success: false
} }
try try
{ {
fileNode = search.findNode(nodeRef); fileNode = search.findNode(nodeRef);
@@ -47,6 +47,13 @@ function runAction(p_params)
result.nodeRef = nodeRef; result.nodeRef = nodeRef;
result.success = false; result.success = false;
} }
if (!rmService.getRecordsManagementNode(destNode).hasCapability("FillingPermissionOnly"))
{
result.name = fileNode.name;
result.error = "The destination is either frozen, closed or cut off!";
results.push(result);
continue;
}
else else
{ {
if (p_params.parent && p_params.parent != null) if (p_params.parent && p_params.parent != null)
@@ -56,13 +63,13 @@ function runAction(p_params)
result.id = fileNode.name; result.id = fileNode.name;
result.name = fileNode.name; result.name = fileNode.name;
result.type = fileNode.isContainer ? "folder" : "document"; result.type = fileNode.isContainer ? "folder" : "document";
// Retain the name of the site the node is currently in. Null if it's not in a site. // Retain the name of the site the node is currently in. Null if it's not in a site.
fromSite = fileNode.siteShortName; fromSite = fileNode.siteShortName;
// move the node // move the node
result.success = fileNode.move(parent, destNode); result.success = fileNode.move(parent, destNode);
if (result.success) if (result.success)
{ {
// If this was an inter-site move, we'll need to clean up the permissions on the node // If this was an inter-site move, we'll need to clean up the permissions on the node
@@ -77,13 +84,13 @@ function runAction(p_params)
{ {
result.id = file; result.id = file;
result.nodeRef = nodeRef; result.nodeRef = nodeRef;
result.success = false; result.success = false;
result.error = e.message; result.error = e.message;
// log the error // log the error
logger.error(e.message); logger.error(e.message);
} }
results.push(result); results.push(result);
} }