|
|
|
@ -27,6 +27,7 @@ import org.gcube.common.storagehub.model.items.FolderItem;
|
|
|
|
|
import org.gcube.common.storagehub.model.items.Item;
|
|
|
|
|
import org.gcube.common.storagehub.model.items.SharedFolder;
|
|
|
|
|
import org.gcube.common.storagehub.model.types.ItemAction;
|
|
|
|
|
import org.gcube.common.storagehub.model.types.NodeProperty;
|
|
|
|
|
import org.gcube.data.access.storagehub.AuthorizationChecker;
|
|
|
|
|
import org.gcube.data.access.storagehub.Utils;
|
|
|
|
|
import org.gcube.data.access.storagehub.accounting.AccountingHandler;
|
|
|
|
@ -122,6 +123,11 @@ public class UnshareHandler {
|
|
|
|
|
log.debug("copying {} to {}", itemToCopyNode.getPath(), unsharedNode.getPath());
|
|
|
|
|
ses.move(itemToCopyNode.getPath(), String.format("%s/%s",unsharedNode.getPath(), itemToCopyNode.getName()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ses.move(sharedItemNode.getNode(NodeProperty.ACCOUNTING.toString()).getPath(), String.format("%s/%s",unsharedNode.getPath(), NodeProperty.ACCOUNTING.toString()));
|
|
|
|
|
|
|
|
|
|
accountingHandler.createUnshareFolder(sharedItemNode.getProperty(NodeProperty.TITLE.toString()).getString(), "ALL", ses, unsharedNode, false);
|
|
|
|
|
|
|
|
|
|
ses.save();
|
|
|
|
|
}finally {
|
|
|
|
|
ses.getWorkspace().getLockManager().unlock(sharedItemNode.getPath());
|
|
|
|
@ -164,6 +170,9 @@ public class UnshareHandler {
|
|
|
|
|
|
|
|
|
|
log.debug("removed Access control entry for user {}",login);
|
|
|
|
|
Node sharedItemNode = ses.getNodeByIdentifier(item.getId());
|
|
|
|
|
|
|
|
|
|
accountingHandler.createUnshareFolder(sharedItemNode.getProperty(NodeProperty.TITLE.toString()).getString(), login, ses, sharedItemNode, false);
|
|
|
|
|
|
|
|
|
|
Node usersNode = sharedItemNode.getNode(NodeConstants.USERS_NAME);
|
|
|
|
|
usersNode.remove();
|
|
|
|
|
Node newUsersNode = sharedItemNode.addNode(NodeConstants.USERS_NAME);
|
|
|
|
@ -175,7 +184,8 @@ public class UnshareHandler {
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
acm.setPolicy(sharedFolderNode.getPath(), acls);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ses.save();
|
|
|
|
|
|
|
|
|
|
return parentId;
|
|
|
|
@ -225,7 +235,11 @@ public class UnshareHandler {
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
acm.setPolicy(sharedFolderNode.getPath(), acls);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (String user: usersToUnshare) {
|
|
|
|
|
accountingHandler.createUnshareFolder(sharedItemNode.getProperty(NodeProperty.TITLE.toString()).getString(), user, ses, sharedItemNode, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ses.save();
|
|
|
|
|
|
|
|
|
|
return item.getId();
|
|
|
|
@ -242,7 +256,6 @@ public class UnshareHandler {
|
|
|
|
|
Node parentNode = ses.getNodeByIdentifier(parentDirectoryId);
|
|
|
|
|
Node userNode = ses.getNode(String.format("%s/%s",parentNode.getPath(), directoryName));
|
|
|
|
|
userNode.removeShare();
|
|
|
|
|
accountingHandler.createUnshareFolder(directoryName, ses, parentNode, false);
|
|
|
|
|
log.debug("directory removed for user {}",user);
|
|
|
|
|
return parentDirectoryId;
|
|
|
|
|
}
|
|
|
|
|