Gate NTFS share ensure behind config
This commit is contained in:
@@ -893,16 +893,24 @@ namespace C4IT.LIAM
|
|||||||
IEnumerable<string> ownerSids,
|
IEnumerable<string> ownerSids,
|
||||||
IEnumerable<string> readerSids,
|
IEnumerable<string> readerSids,
|
||||||
IEnumerable<string> writerSids,
|
IEnumerable<string> writerSids,
|
||||||
|
bool allowSharePathEnsure = false,
|
||||||
bool ensureTraverseGroups = false,
|
bool ensureTraverseGroups = false,
|
||||||
bool whatIf = false)
|
bool whatIf = false)
|
||||||
{
|
{
|
||||||
var classification = ClassifyPath(folderPath);
|
var classification = ClassifyPath(folderPath);
|
||||||
if (!IsSupportedPermissionManagedPathKind(classification, eNtfsPathKind.Folder, eNtfsPathKind.ClassicShare, eNtfsPathKind.DfsLink))
|
var allowShareKinds = allowSharePathEnsure;
|
||||||
|
if (!IsSupportedPermissionManagedPathKind(
|
||||||
|
classification,
|
||||||
|
allowShareKinds
|
||||||
|
? new[] { eNtfsPathKind.Folder, eNtfsPathKind.ClassicShare, eNtfsPathKind.DfsLink }
|
||||||
|
: new[] { eNtfsPathKind.Folder }))
|
||||||
{
|
{
|
||||||
return Task.FromResult(new ResultToken(System.Reflection.MethodBase.GetCurrentMethod().ToString())
|
return Task.FromResult(new ResultToken(System.Reflection.MethodBase.GetCurrentMethod().ToString())
|
||||||
{
|
{
|
||||||
resultErrorId = 30008,
|
resultErrorId = 30008,
|
||||||
resultMessage = $"NTFS permission ensure is only supported for folder and share paths. DFS namespaces and server roots are skipped: {folderPath}"
|
resultMessage = allowShareKinds
|
||||||
|
? $"NTFS permission ensure is only supported for folder and share paths. DFS namespaces and server roots are skipped: {folderPath}"
|
||||||
|
: $"NTFS permission ensure is only supported for folder paths unless share support is explicitly enabled. Shares, DFS namespaces and server roots are skipped: {folderPath}"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -198,12 +198,14 @@ namespace LiamWorkflowActivities
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var allowSharePathEnsure = IsAdditionalConfigurationEnabled(provider, "EnsureNtfsPermissionGroupsForShares");
|
||||||
var token = await ntfsProvider.EnsureMissingPermissionGroupsAsync(
|
var token = await ntfsProvider.EnsureMissingPermissionGroupsAsync(
|
||||||
folderPath,
|
folderPath,
|
||||||
customTags,
|
customTags,
|
||||||
NormalizeIdentifierList(ownerSids),
|
NormalizeIdentifierList(ownerSids),
|
||||||
NormalizeIdentifierList(readerSids),
|
NormalizeIdentifierList(readerSids),
|
||||||
NormalizeIdentifierList(writerSids),
|
NormalizeIdentifierList(writerSids),
|
||||||
|
allowSharePathEnsure,
|
||||||
ensureTraverseGroups,
|
ensureTraverseGroups,
|
||||||
IsWorkflowWhatIfEnabled(provider));
|
IsWorkflowWhatIfEnabled(provider));
|
||||||
if (token == null)
|
if (token == null)
|
||||||
@@ -420,8 +422,9 @@ namespace LiamWorkflowActivities
|
|||||||
if (!IsAdditionalConfigurationEnabled(provider, "EnsureNtfsPermissionGroups"))
|
if (!IsAdditionalConfigurationEnabled(provider, "EnsureNtfsPermissionGroups"))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
var allowSharePathEnsure = IsAdditionalConfigurationEnabled(provider, "EnsureNtfsPermissionGroupsForShares");
|
||||||
foreach (var ntfsArea in dataAreas
|
foreach (var ntfsArea in dataAreas
|
||||||
.Where(dataArea => dataArea is cLiamNtfsFolder || dataArea is cLiamNtfsShare)
|
.Where(dataArea => dataArea is cLiamNtfsFolder || allowSharePathEnsure && dataArea is cLiamNtfsShare)
|
||||||
.Cast<cLiamNtfsPermissionDataAreaBase>())
|
.Cast<cLiamNtfsPermissionDataAreaBase>())
|
||||||
{
|
{
|
||||||
var folderPath = ntfsArea.TechnicalName;
|
var folderPath = ntfsArea.TechnicalName;
|
||||||
@@ -440,6 +443,7 @@ namespace LiamWorkflowActivities
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
allowSharePathEnsure,
|
||||||
false,
|
false,
|
||||||
simulateOnly);
|
simulateOnly);
|
||||||
if (ensureResult == null)
|
if (ensureResult == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user