Add integer data area type id

This commit is contained in:
Meik
2026-03-29 23:26:16 +02:00
parent cd133c67e1
commit 45009dfacc
3 changed files with 332 additions and 329 deletions

View File

@@ -557,238 +557,238 @@ where ";
return RetVal;
}
private bool TryLoadProviderFragments(Guid providerConfigClassID, out Guid objectId, out DataTable tblMain, out DataTable tblBase, out DataTable tblAdditionalAttr, out DataTable tblNamingConvention, out DataTable tblCustomTags)
{
objectId = Guid.Empty;
tblMain = null;
tblBase = null;
tblAdditionalAttr = null;
tblNamingConvention = null;
tblCustomTags = null;
try
{
var classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderMain);
LogEntry($"Config provider class ID: {classID}", LogLevels.Debug);
var fragment = FragmentRequest.GetSPSFragment(classID, providerConfigClassID);
if (fragment == null)
{
LogEntry($"Provider config fragment not found: ClassID={classID}, FragmentId={providerConfigClassID}", LogLevels.Debug);
return false;
}
objectId = fragment.ObjectID;
if (objectId == Guid.Empty)
{
LogEntry($"Provider config fragment not found: ClassID={classID}, FragmentId={providerConfigClassID}", LogLevels.Debug);
return false;
}
tblMain = fragment.FragmentTable;
LogEntry($"Config provider object ID: {objectId}", LogLevels.Debug);
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderBase);
LogEntry($"Config provider base class ID: {classID}", LogLevels.Debug);
Guid[] ids = { objectId };
tblBase = FragmentRequestBase.SimpleLoad(classID,
"Account, Password",
AsqlHelper.BuildInCondition("[Expression-ObjectID]", ids));
if (tblBase?.Rows == null || tblBase.Rows.Count <= 0)
{
LogEntry($"Provider config base fragment not found: ClassId={classID}, ObjectId={objectId}", LogLevels.Debug);
return false;
}
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderAdditionalAttributes);
LogEntry($"Config provider additional config class ID: {classID}", LogLevels.Debug);
tblAdditionalAttr = FragmentRequestBase.SimpleLoad(classID,
"Name, Value",
AsqlHelper.BuildInCondition("[Expression-ObjectID]", ids));
if (tblAdditionalAttr == null)
{
LogEntry($"Provider additional config class fragment not found: ClassId={classID}, ObjectId={objectId}", LogLevels.Debug);
return false;
}
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameCustomTagBase);
LogEntry($"Custom Tag class ID: {classID}", LogLevels.Debug);
tblCustomTags = FragmentRequestBase.SimpleLoad(classID, "Key, Name", $"[Expression-ObjectID]='{objectId}'") ?? new DataTable();
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigNamingConvention);
LogEntry($"Naming convention config class ID: {classID}", LogLevels.Debug);
tblNamingConvention = FragmentRequestBase.SimpleLoad(classID,
"ID, Usage, NamingConvention.Description as Description, NamingConvention.DescriptionTemplate as DescriptionTemplate, " +
"NamingConvention.Name as Name, NamingConvention.NamingTemplate as NamingTemplate, NamingConvention.Wildcard as Wildcard",
$"[Expression-ObjectID]='{objectId}'") ?? new DataTable();
return true;
}
catch (Exception e)
{
LogException(e);
return false;
}
}
private cLiamProviderData buildProviderData(DataTable dtMain, DataTable dtBase, DataTable dtAdditional, DataTable dtNamingConvention, DataTable dtCustomTag, bool includeSecret, out string sanitizedJson)
{
sanitizedJson = null;
if (dtMain?.Rows == null || dtMain.Rows.Count <= 0)
return null;
if (dtBase?.Rows == null || dtBase.Rows.Count <= 0)
return null;
if (dtAdditional == null)
return null;
var dataMain = dtMain.Rows[0];
var dataBase = dtBase.Rows[0];
var encPW = cLIAMHelper.getStringFromObject(dataBase["Password"]);
if (!CryptoManager.Instance.TryDecryptDBText(encPW, out string password))
password = encPW;
var providerData = new cLiamProviderData()
{
Domain = cLIAMHelper.getStringFromObject(dataMain["GCCDomain"]),
Credential = new cLiamCredential()
{
Domain = cLIAMHelper.getStringFromObject(dataMain["GCCDomain"]),
Identification = cLIAMHelper.getStringFromObject(dataBase["Account"]),
Secret = "***"
},
RootPath = cLIAMHelper.getStringFromObject(dataMain["GCCTarget"]),
MaxDepth = cLIAMHelper.getIntFromObject(dataMain["GCCMaxDepth"]),
GroupFilter = cLIAMHelper.getStringFromObject(dataMain["GCCgroupLDAPFilter"]),
GroupPath = cLIAMHelper.getStringFromObject(dataMain["GCCgroupOUPath"]),
GroupStrategy = (eLiamGroupStrategies)cLIAMHelper.getIntFromObject(dataMain["GCCPermissionGroupStrategy"]),
ProviderType = (eLiamProviderTypes)cLIAMHelper.getIntFromObject(dataMain["GCCtargetType"])
};
if (dtAdditional?.Rows != null)
{
foreach (DataRow row in dtAdditional.Rows)
{
var name = cLIAMHelper.getStringFromObject(row["Name"]);
var value = cLIAMHelper.getStringFromObject(row["Value"]);
if (!string.IsNullOrEmpty(name))
providerData.AdditionalConfiguration[name] = value;
}
}
if (dtCustomTag?.Rows != null)
{
foreach (DataRow row in dtCustomTag.Rows)
{
var name = cLIAMHelper.getStringFromObject(row["Key"]);
var value = cLIAMHelper.getStringFromObject(row["Name"]);
if (!string.IsNullOrEmpty(name))
providerData.CustomTags[name] = value;
}
}
if (dtNamingConvention?.Rows != null)
{
foreach (DataRow row in dtNamingConvention.Rows)
{
var usage = cLIAMHelper.getIntFromObject(row["Usage"]);
var accessRole = eLiamAccessRoles.Read;
var scope = eLiamAccessRoleScopes.Unknown;
switch (usage)
{
case -10:
accessRole = eLiamAccessRoles.Traverse;
scope = eLiamAccessRoleScopes.Global;
break;
case 10:
accessRole = eLiamAccessRoles.Read;
scope = eLiamAccessRoleScopes.Global;
break;
case 20:
accessRole = eLiamAccessRoles.Write;
scope = eLiamAccessRoleScopes.Global;
break;
case 30:
accessRole = eLiamAccessRoles.Owner;
scope = eLiamAccessRoleScopes.Global;
break;
case 40:
accessRole = eLiamAccessRoles.Read;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 50:
accessRole = eLiamAccessRoles.Write;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 60:
accessRole = eLiamAccessRoles.Owner;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 100:
accessRole = eLiamAccessRoles.ADOwner;
scope = eLiamAccessRoleScopes.Global;
break;
case 110:
accessRole = eLiamAccessRoles.ADMember;
scope = eLiamAccessRoleScopes.Global;
break;
case 200:
accessRole = eLiamAccessRoles.ExchangeMLMember;
scope = eLiamAccessRoleScopes.Universal;
break;
case 210:
accessRole = eLiamAccessRoles.ExchangeMLOwner;
scope = eLiamAccessRoleScopes.Universal;
break;
case 250:
accessRole = eLiamAccessRoles.ExchangeSMBFullAccess;
scope = eLiamAccessRoleScopes.Universal;
break;
case 260:
accessRole = eLiamAccessRoles.ExchangeSMBSendAs;
scope = eLiamAccessRoleScopes.Universal;
break;
case 270:
accessRole = eLiamAccessRoles.ExchangeSMBOwner;
scope = eLiamAccessRoleScopes.Universal;
break;
}
providerData.NamingConventions.Add(new cLiamNamingConvention()
{
AccessRole = accessRole,
Scope = scope,
Description = cLIAMHelper.getStringFromObject(row["Description"]),
DescriptionTemplate = cLIAMHelper.getStringFromObject(row["DescriptionTemplate"]),
Name = cLIAMHelper.getStringFromObject(row["Name"]),
NamingTemplate = cLIAMHelper.getStringFromObject(row["NamingTemplate"]),
Wildcard = cLIAMHelper.getStringFromObject(row["Wildcard"])
});
}
}
sanitizedJson = JsonConvert.SerializeObject(providerData, Newtonsoft.Json.Formatting.Indented);
if (includeSecret && providerData.Credential != null)
providerData.Credential.Secret = password;
return providerData;
}
private cLiamProviderBase createProvider(DataTable dtMain, DataTable dtBase, DataTable dtAdditional, DataTable dtNamingConvention = null, DataTable dtCustomTag = null)
private bool TryLoadProviderFragments(Guid providerConfigClassID, out Guid objectId, out DataTable tblMain, out DataTable tblBase, out DataTable tblAdditionalAttr, out DataTable tblNamingConvention, out DataTable tblCustomTags)
{
objectId = Guid.Empty;
tblMain = null;
tblBase = null;
tblAdditionalAttr = null;
tblNamingConvention = null;
tblCustomTags = null;
try
{
var classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderMain);
LogEntry($"Config provider class ID: {classID}", LogLevels.Debug);
var fragment = FragmentRequest.GetSPSFragment(classID, providerConfigClassID);
if (fragment == null)
{
LogEntry($"Provider config fragment not found: ClassID={classID}, FragmentId={providerConfigClassID}", LogLevels.Debug);
return false;
}
objectId = fragment.ObjectID;
if (objectId == Guid.Empty)
{
LogEntry($"Provider config fragment not found: ClassID={classID}, FragmentId={providerConfigClassID}", LogLevels.Debug);
return false;
}
tblMain = fragment.FragmentTable;
LogEntry($"Config provider object ID: {objectId}", LogLevels.Debug);
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderBase);
LogEntry($"Config provider base class ID: {classID}", LogLevels.Debug);
Guid[] ids = { objectId };
tblBase = FragmentRequestBase.SimpleLoad(classID,
"Account, Password",
AsqlHelper.BuildInCondition("[Expression-ObjectID]", ids));
if (tblBase?.Rows == null || tblBase.Rows.Count <= 0)
{
LogEntry($"Provider config base fragment not found: ClassId={classID}, ObjectId={objectId}", LogLevels.Debug);
return false;
}
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigProviderAdditionalAttributes);
LogEntry($"Config provider additional config class ID: {classID}", LogLevels.Debug);
tblAdditionalAttr = FragmentRequestBase.SimpleLoad(classID,
"Name, Value",
AsqlHelper.BuildInCondition("[Expression-ObjectID]", ids));
if (tblAdditionalAttr == null)
{
LogEntry($"Provider additional config class fragment not found: ClassId={classID}, ObjectId={objectId}", LogLevels.Debug);
return false;
}
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameCustomTagBase);
LogEntry($"Custom Tag class ID: {classID}", LogLevels.Debug);
tblCustomTags = FragmentRequestBase.SimpleLoad(classID, "Key, Name", $"[Expression-ObjectID]='{objectId}'") ?? new DataTable();
classID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameConfigNamingConvention);
LogEntry($"Naming convention config class ID: {classID}", LogLevels.Debug);
tblNamingConvention = FragmentRequestBase.SimpleLoad(classID,
"ID, Usage, NamingConvention.Description as Description, NamingConvention.DescriptionTemplate as DescriptionTemplate, " +
"NamingConvention.Name as Name, NamingConvention.NamingTemplate as NamingTemplate, NamingConvention.Wildcard as Wildcard",
$"[Expression-ObjectID]='{objectId}'") ?? new DataTable();
return true;
}
catch (Exception e)
{
LogException(e);
return false;
}
}
private cLiamProviderData buildProviderData(DataTable dtMain, DataTable dtBase, DataTable dtAdditional, DataTable dtNamingConvention, DataTable dtCustomTag, bool includeSecret, out string sanitizedJson)
{
sanitizedJson = null;
if (dtMain?.Rows == null || dtMain.Rows.Count <= 0)
return null;
if (dtBase?.Rows == null || dtBase.Rows.Count <= 0)
return null;
if (dtAdditional == null)
return null;
var dataMain = dtMain.Rows[0];
var dataBase = dtBase.Rows[0];
var encPW = cLIAMHelper.getStringFromObject(dataBase["Password"]);
if (!CryptoManager.Instance.TryDecryptDBText(encPW, out string password))
password = encPW;
var providerData = new cLiamProviderData()
{
Domain = cLIAMHelper.getStringFromObject(dataMain["GCCDomain"]),
Credential = new cLiamCredential()
{
Domain = cLIAMHelper.getStringFromObject(dataMain["GCCDomain"]),
Identification = cLIAMHelper.getStringFromObject(dataBase["Account"]),
Secret = "***"
},
RootPath = cLIAMHelper.getStringFromObject(dataMain["GCCTarget"]),
MaxDepth = cLIAMHelper.getIntFromObject(dataMain["GCCMaxDepth"]),
GroupFilter = cLIAMHelper.getStringFromObject(dataMain["GCCgroupLDAPFilter"]),
GroupPath = cLIAMHelper.getStringFromObject(dataMain["GCCgroupOUPath"]),
GroupStrategy = (eLiamGroupStrategies)cLIAMHelper.getIntFromObject(dataMain["GCCPermissionGroupStrategy"]),
ProviderType = (eLiamProviderTypes)cLIAMHelper.getIntFromObject(dataMain["GCCtargetType"])
};
if (dtAdditional?.Rows != null)
{
foreach (DataRow row in dtAdditional.Rows)
{
var name = cLIAMHelper.getStringFromObject(row["Name"]);
var value = cLIAMHelper.getStringFromObject(row["Value"]);
if (!string.IsNullOrEmpty(name))
providerData.AdditionalConfiguration[name] = value;
}
}
if (dtCustomTag?.Rows != null)
{
foreach (DataRow row in dtCustomTag.Rows)
{
var name = cLIAMHelper.getStringFromObject(row["Key"]);
var value = cLIAMHelper.getStringFromObject(row["Name"]);
if (!string.IsNullOrEmpty(name))
providerData.CustomTags[name] = value;
}
}
if (dtNamingConvention?.Rows != null)
{
foreach (DataRow row in dtNamingConvention.Rows)
{
var usage = cLIAMHelper.getIntFromObject(row["Usage"]);
var accessRole = eLiamAccessRoles.Read;
var scope = eLiamAccessRoleScopes.Unknown;
switch (usage)
{
case -10:
accessRole = eLiamAccessRoles.Traverse;
scope = eLiamAccessRoleScopes.Global;
break;
case 10:
accessRole = eLiamAccessRoles.Read;
scope = eLiamAccessRoleScopes.Global;
break;
case 20:
accessRole = eLiamAccessRoles.Write;
scope = eLiamAccessRoleScopes.Global;
break;
case 30:
accessRole = eLiamAccessRoles.Owner;
scope = eLiamAccessRoleScopes.Global;
break;
case 40:
accessRole = eLiamAccessRoles.Read;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 50:
accessRole = eLiamAccessRoles.Write;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 60:
accessRole = eLiamAccessRoles.Owner;
scope = eLiamAccessRoleScopes.DomainLocal;
break;
case 100:
accessRole = eLiamAccessRoles.ADOwner;
scope = eLiamAccessRoleScopes.Global;
break;
case 110:
accessRole = eLiamAccessRoles.ADMember;
scope = eLiamAccessRoleScopes.Global;
break;
case 200:
accessRole = eLiamAccessRoles.ExchangeMLMember;
scope = eLiamAccessRoleScopes.Universal;
break;
case 210:
accessRole = eLiamAccessRoles.ExchangeMLOwner;
scope = eLiamAccessRoleScopes.Universal;
break;
case 250:
accessRole = eLiamAccessRoles.ExchangeSMBFullAccess;
scope = eLiamAccessRoleScopes.Universal;
break;
case 260:
accessRole = eLiamAccessRoles.ExchangeSMBSendAs;
scope = eLiamAccessRoleScopes.Universal;
break;
case 270:
accessRole = eLiamAccessRoles.ExchangeSMBOwner;
scope = eLiamAccessRoleScopes.Universal;
break;
}
providerData.NamingConventions.Add(new cLiamNamingConvention()
{
AccessRole = accessRole,
Scope = scope,
Description = cLIAMHelper.getStringFromObject(row["Description"]),
DescriptionTemplate = cLIAMHelper.getStringFromObject(row["DescriptionTemplate"]),
Name = cLIAMHelper.getStringFromObject(row["Name"]),
NamingTemplate = cLIAMHelper.getStringFromObject(row["NamingTemplate"]),
Wildcard = cLIAMHelper.getStringFromObject(row["Wildcard"])
});
}
}
sanitizedJson = JsonConvert.SerializeObject(providerData, Newtonsoft.Json.Formatting.Indented);
if (includeSecret && providerData.Credential != null)
providerData.Credential.Secret = password;
return providerData;
}
private cLiamProviderBase createProvider(DataTable dtMain, DataTable dtBase, DataTable dtAdditional, DataTable dtNamingConvention = null, DataTable dtCustomTag = null)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
var DataProviderData = buildProviderData(dtMain, dtBase, dtAdditional, dtNamingConvention, dtCustomTag, includeSecret: true, out var sanitizedJson);
if (DataProviderData == null)
return null;
LogEntry("Provider configuration (sanitized JSON, copy for diagnostics tool):", LogLevels.Info);
LogEntry(sanitizedJson, LogLevels.Info);
var DataProvider = CreateProviderInstance(new cLiamConfiguration(), DataProviderData);
var DataProviderData = buildProviderData(dtMain, dtBase, dtAdditional, dtNamingConvention, dtCustomTag, includeSecret: true, out var sanitizedJson);
if (DataProviderData == null)
return null;
LogEntry("Provider configuration (sanitized JSON, copy for diagnostics tool):", LogLevels.Info);
LogEntry(sanitizedJson, LogLevels.Info);
var DataProvider = CreateProviderInstance(new cLiamConfiguration(), DataProviderData);
return DataProvider;
}
@@ -804,11 +804,11 @@ where ";
}
[Route("initializeDataProvider"), HttpGet]
public async Task<bool> initializeDataProvider(Guid ProviderConfigClassID, bool force = false)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
public async Task<bool> initializeDataProvider(Guid ProviderConfigClassID, bool force = false)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
if (cC4ITLicenseM42ESM.Instance == null)
LoadLicensingInformation();
@@ -829,61 +829,61 @@ where ";
finally
{
LogMethodEnd(CM);
}
}
[Route("exportProviderConfiguration"), HttpGet]
public IHttpActionResult exportProviderConfiguration(Guid ProviderConfigClassID)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
if (cC4ITLicenseM42ESM.Instance == null)
LoadLicensingInformation();
if (!cC4ITLicenseM42ESM.Instance.IsValid)
{
LogEntry($"Error: License not valid", LogLevels.Error);
return Content(HttpStatusCode.Forbidden, "License not valid");
}
if (!TryLoadProviderFragments(ProviderConfigClassID, out var objectId, out var tblMain, out var tblBase, out var tblAdditionalAttr, out var tblNamingConvention, out var tblCustomTags))
{
return Content(HttpStatusCode.NotFound, $"Provider configuration '{ProviderConfigClassID}' not found.");
}
var providerData = buildProviderData(tblMain, tblBase, tblAdditionalAttr, tblNamingConvention, tblCustomTags, includeSecret: false, out var sanitizedJson);
if (providerData == null)
return Content(HttpStatusCode.InternalServerError, "Provider configuration could not be loaded.");
var export = new ProviderConfigurationExport
{
ProviderConfigClassID = ProviderConfigClassID,
ProviderConfigObjectID = objectId,
SanitizedJson = sanitizedJson,
Configuration = providerData,
GeneratedAtUtc = DateTime.UtcNow
};
return Ok(export);
}
catch (Exception E)
{
LogException(E);
return InternalServerError(E);
}
finally
{
LogMethodEnd(CM);
}
}
private async Task<ProviderCacheEntry> getDataProvider(Guid ProviderConfigClassID, bool force = false)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
}
}
[Route("exportProviderConfiguration"), HttpGet]
public IHttpActionResult exportProviderConfiguration(Guid ProviderConfigClassID)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
if (cC4ITLicenseM42ESM.Instance == null)
LoadLicensingInformation();
if (!cC4ITLicenseM42ESM.Instance.IsValid)
{
LogEntry($"Error: License not valid", LogLevels.Error);
return Content(HttpStatusCode.Forbidden, "License not valid");
}
if (!TryLoadProviderFragments(ProviderConfigClassID, out var objectId, out var tblMain, out var tblBase, out var tblAdditionalAttr, out var tblNamingConvention, out var tblCustomTags))
{
return Content(HttpStatusCode.NotFound, $"Provider configuration '{ProviderConfigClassID}' not found.");
}
var providerData = buildProviderData(tblMain, tblBase, tblAdditionalAttr, tblNamingConvention, tblCustomTags, includeSecret: false, out var sanitizedJson);
if (providerData == null)
return Content(HttpStatusCode.InternalServerError, "Provider configuration could not be loaded.");
var export = new ProviderConfigurationExport
{
ProviderConfigClassID = ProviderConfigClassID,
ProviderConfigObjectID = objectId,
SanitizedJson = sanitizedJson,
Configuration = providerData,
GeneratedAtUtc = DateTime.UtcNow
};
return Ok(export);
}
catch (Exception E)
{
LogException(E);
return InternalServerError(E);
}
finally
{
LogMethodEnd(CM);
}
}
private async Task<ProviderCacheEntry> getDataProvider(Guid ProviderConfigClassID, bool force = false)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
if (!force)
{
@@ -894,17 +894,17 @@ where ";
return Provider;
}
}
if (!TryLoadProviderFragments(ProviderConfigClassID, out var ObjectID, out var tblMain, out var tblBase, out var tblAdditionalAttr, out var tblNamingConvention, out var tblCustomTags))
return null;
var DataProvider = createProvider(tblMain, tblBase, tblAdditionalAttr, tblNamingConvention, tblCustomTags);
if (DataProvider == null)
{
LogEntry($"Provider configuration '{ProviderConfigClassID}' could not be materialized.", LogLevels.Warning);
return null;
}
var validLogon = await DataProvider.LogonAsync();
if (!TryLoadProviderFragments(ProviderConfigClassID, out var ObjectID, out var tblMain, out var tblBase, out var tblAdditionalAttr, out var tblNamingConvention, out var tblCustomTags))
return null;
var DataProvider = createProvider(tblMain, tblBase, tblAdditionalAttr, tblNamingConvention, tblCustomTags);
if (DataProvider == null)
{
LogEntry($"Provider configuration '{ProviderConfigClassID}' could not be materialized.", LogLevels.Warning);
return null;
}
var validLogon = await DataProvider.LogonAsync();
if (!validLogon)
return null;
@@ -1178,6 +1178,7 @@ where ";
Level = DataArea.Level.ToString(),
ConfigurationId = ProviderEntry.ObjectID.ToString(),
DataAreaType = DataArea.DataType.ToString(),
DataAreaTypeId = (int)DataArea.DataType,
Owner = owner,
Write = write,
Read = DataAreaNtfsFolder?.ReadGroupIdentifier ?? string.Empty,
@@ -1857,34 +1858,34 @@ where ";
return accountEoid;
}
private string GetUserPrincipalNameFromEOID(Guid accountEoid)
{
var ClassID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameAccountAd);
LogEntry($"Data area class ID: {ClassID}", LogLevels.Debug);
var tbl = FragmentRequestBase.SimpleLoad(ClassID, "UserPrincipalName", $"[Expression-ObjectId]='{accountEoid}'");
if (tbl?.Rows == null || tbl.Rows.Count == 0)
{
LogEntry($"No AD account entry list found with eoid='{accountEoid}'", LogLevels.Warning);
return null;
}
var UPN = cLIAMHelper.getStringFromObject(tbl.Rows[0]["UserPrincipalName"]);
if (string.IsNullOrEmpty(UPN))
{
LogEntry("No UserPrincipalName found for AccountAd entry", LogLevels.Warning);
return null;
}
return UPN;
}
public class ProviderConfigurationExport
{
public Guid ProviderConfigClassID { get; set; }
public Guid ProviderConfigObjectID { get; set; }
public string SanitizedJson { get; set; }
public cLiamProviderData Configuration { get; set; }
public DateTime GeneratedAtUtc { get; set; }
}
}
}
private string GetUserPrincipalNameFromEOID(Guid accountEoid)
{
var ClassID = SPSDataEngineSchemaReader.ClassGetIDFromName(constFragmentNameAccountAd);
LogEntry($"Data area class ID: {ClassID}", LogLevels.Debug);
var tbl = FragmentRequestBase.SimpleLoad(ClassID, "UserPrincipalName", $"[Expression-ObjectId]='{accountEoid}'");
if (tbl?.Rows == null || tbl.Rows.Count == 0)
{
LogEntry($"No AD account entry list found with eoid='{accountEoid}'", LogLevels.Warning);
return null;
}
var UPN = cLIAMHelper.getStringFromObject(tbl.Rows[0]["UserPrincipalName"]);
if (string.IsNullOrEmpty(UPN))
{
LogEntry("No UserPrincipalName found for AccountAd entry", LogLevels.Warning);
return null;
}
return UPN;
}
public class ProviderConfigurationExport
{
public Guid ProviderConfigClassID { get; set; }
public Guid ProviderConfigObjectID { get; set; }
public string SanitizedJson { get; set; }
public cLiamProviderData Configuration { get; set; }
public DateTime GeneratedAtUtc { get; set; }
}
}
}