unshareAll fixed
This commit is contained in:
parent
e271e9fe78
commit
64952442ed
|
@ -66,20 +66,22 @@ public class UnshareHandler {
|
|||
|
||||
public String _unshare(Session ses, Set<String> users, Node sharedNode, String login, boolean withCopyOnUnshare) throws RepositoryException, StorageHubException{
|
||||
Item item = node2Item.getItem(sharedNode, Excludes.ALL);
|
||||
if (!(item instanceof FolderItem) || !((FolderItem) item).isShared() || ((SharedFolder) item).isVreFolder())
|
||||
if (!(item instanceof FolderItem) || !((FolderItem) item).isShared() || ((SharedFolder) item).isVreFolder()) {
|
||||
log.warn("this item type cannot be unshared {}",item.getClass().getSimpleName());
|
||||
return null;
|
||||
}
|
||||
SharedFolder sharedItem =(SharedFolder) item;
|
||||
|
||||
Set<String> usersInSharedFolder = new HashSet<>(sharedItem.getUsers().getMap().keySet());
|
||||
usersInSharedFolder.removeAll(users);
|
||||
|
||||
if (users==null || users.size()==0)
|
||||
return unshareAll(login, ses, sharedItem, false);
|
||||
return unshareAll(login, ses, sharedItem, withCopyOnUnshare);
|
||||
|
||||
if (usersInSharedFolder.size()<=1) {
|
||||
if (users.size()==1 && users.contains(login))
|
||||
return unshareAll(sharedItem.getOwner(), ses , sharedItem, false);
|
||||
else return unshareAll(login, ses, sharedItem, false);
|
||||
return unshareAll(sharedItem.getOwner(), ses , sharedItem, withCopyOnUnshare);
|
||||
else return unshareAll(login, ses, sharedItem, withCopyOnUnshare);
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -168,25 +170,24 @@ public class UnshareHandler {
|
|||
accountingHandler.createUnshareFolder(sharedItemNode.getProperty(NodeProperty.TITLE.toString()).getString(), "ALL", ses, unsharedNode, false);
|
||||
|
||||
unsharedNodeIdentifier = unsharedNode.getIdentifier();
|
||||
|
||||
log.info("[UNSHARE] unshared node id {}",unsharedNodeIdentifier);
|
||||
ses.save();
|
||||
}
|
||||
|
||||
sharedItemNode.removeSharedSet();
|
||||
ses.save();
|
||||
|
||||
|
||||
log.debug("all the users have been removed, the folder is totally unshared");
|
||||
|
||||
|
||||
}catch(Throwable t) {
|
||||
log.error("erro unsharing all",t);
|
||||
throw t;
|
||||
}finally {
|
||||
ses.getWorkspace().getLockManager().unlock(sharedItemNode.getPath());
|
||||
}
|
||||
|
||||
sharedItemNode.removeSharedSet();
|
||||
ses.save();
|
||||
|
||||
return unsharedNodeIdentifier;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -247,9 +248,7 @@ public class UnshareHandler {
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private String unsharePartial(Set<String> usersToUnshare, String login, Session ses, SharedFolder item) throws StorageHubException, RepositoryException {
|
||||
log.info("unshare partial");
|
||||
authChecker.checkAdministratorControl(ses, (SharedFolder)item);
|
||||
|
|
Loading…
Reference in New Issue