mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-15 15:02:20 +00:00
Merged 5.0.N (5.0.3) to HEAD (5.1)
109438: Merged V4.2-BUG-FIX (4.2.6) to 5.0.N (5.0.3) 109264: Merged V4.2.5 (4.2.5) to V4.2-BUG-FIX (4.2.6) 109214: Merged DEV to V4.2.5-PATCHES 109105: MNT-14452: Permissions not amended correctly when changing a site from private to public - Return inheritance to the site containers when site becomes public. 109213: MNT-14452: Permissions not amended correctly when changing a site from private to public - Unit test for change visibility git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@109800 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1530,10 +1530,10 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the site was moderated before, undo the work of #setModeratedPermissions
|
// If the site was moderated/private before, undo the work of #setModeratedPermissions/#setPrivatePermissions
|
||||||
// by restoring inherited permissions on the containers
|
// by restoring inherited permissions on the containers
|
||||||
// (Leaving the old extra permissions on containers is fine)
|
// (Leaving the old extra permissions on containers is fine)
|
||||||
if (SiteVisibility.MODERATED.equals(currentVisibility) == true)
|
if (SiteVisibility.MODERATED.equals(currentVisibility) == true || SiteVisibility.PRIVATE.equals(currentVisibility) == true)
|
||||||
{
|
{
|
||||||
List<FileInfo> folders = fileFolderService.listFolders(siteNodeRef);
|
List<FileInfo> folders = fileFolderService.listFolders(siteNodeRef);
|
||||||
for(FileInfo folder : folders)
|
for(FileInfo folder : folders)
|
||||||
@@ -1563,7 +1563,13 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic
|
|||||||
}
|
}
|
||||||
else if (SiteVisibility.PRIVATE.equals(updatedVisibility))
|
else if (SiteVisibility.PRIVATE.equals(updatedVisibility))
|
||||||
{
|
{
|
||||||
// No additional permissions need to be granted for a site become private
|
// Set the private permissions on all the containers the site already has
|
||||||
|
List<FileInfo> folders = fileFolderService.listFolders(siteNodeRef);
|
||||||
|
for(FileInfo folder : folders)
|
||||||
|
{
|
||||||
|
NodeRef containerNodeRef = folder.getNodeRef();
|
||||||
|
setPrivatePermissions(shortName, containerNodeRef);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the site node reference with the updated visibility value
|
// Update the site node reference with the updated visibility value
|
||||||
|
@@ -2614,4 +2614,41 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From MNT-14452, insure that GROUP_EVERYONE have read access to public sites' containers.
|
||||||
|
*/
|
||||||
|
public void testChangeSiteVisibility()
|
||||||
|
{
|
||||||
|
String siteName = GUID.generate();
|
||||||
|
|
||||||
|
//Check Private->public
|
||||||
|
SiteInfo siteInfo = createSite(siteName, "doclib", SiteVisibility.PRIVATE);
|
||||||
|
|
||||||
|
NodeRef container = this.siteService.getContainer(siteInfo.getShortName(), "doclib");
|
||||||
|
|
||||||
|
siteInfo.setVisibility(SiteVisibility.PUBLIC);
|
||||||
|
siteService.updateSite(siteInfo);
|
||||||
|
|
||||||
|
assertEquals("ReadPermissions", getAllowedPermissionsMap(container).get(PermissionService.ALL_AUTHORITIES));
|
||||||
|
|
||||||
|
//Check public->moderated
|
||||||
|
siteInfo.setVisibility(SiteVisibility.MODERATED);
|
||||||
|
siteService.updateSite(siteInfo);
|
||||||
|
|
||||||
|
assertNull("GROUP_EVERYONE shouldn't have any permissions on a moderated site's containers", getAllowedPermissionsMap(container).get(PermissionService.ALL_AUTHORITIES));
|
||||||
|
|
||||||
|
//Check moderated->public
|
||||||
|
siteInfo.setVisibility(SiteVisibility.PUBLIC);
|
||||||
|
siteService.updateSite(siteInfo);
|
||||||
|
|
||||||
|
assertEquals("ReadPermissions", getAllowedPermissionsMap(container).get(PermissionService.ALL_AUTHORITIES));
|
||||||
|
|
||||||
|
//Check public->private
|
||||||
|
siteInfo.setVisibility(SiteVisibility.PRIVATE);
|
||||||
|
siteService.updateSite(siteInfo);
|
||||||
|
|
||||||
|
assertNull("GROUP_EVERYONE shouldn't have any permissions on a moderated site's containers", getAllowedPermissionsMap(container).get(PermissionService.ALL_AUTHORITIES));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user