diff --git a/BLAZAM/BLAZAM.csproj b/BLAZAM/BLAZAM.csproj
index 45f2e438..0eeae306 100644
--- a/BLAZAM/BLAZAM.csproj
+++ b/BLAZAM/BLAZAM.csproj
@@ -6,7 +6,7 @@
enable
false
0.9.2
- 2024.05.07.1847
+ 2024.05.22.2338
false
BLAZAM
False
@@ -56,7 +56,7 @@
-
+
@@ -64,7 +64,7 @@
-
+
diff --git a/BLAZAM/Pages/API/Token.cshtml.cs b/BLAZAM/Pages/API/Token.cshtml.cs
index 222acdff..9973e9e1 100644
--- a/BLAZAM/Pages/API/Token.cshtml.cs
+++ b/BLAZAM/Pages/API/Token.cshtml.cs
@@ -42,16 +42,7 @@ public JsonResult OnGet()
{
userSettings.APIToken = Token;
}
- else
- {
- userSettings = new AppUser
- {
- UserGUID = User.Identity.Name,
- APIToken = Token
- };
- Context.UserSettings.Add(userSettings);
-
- }
+
Context.SaveChanges();
return new JsonResult(userSettings);
}
diff --git a/BLAZAM/Pages/Configure/Fields.razor b/BLAZAM/Pages/Configure/Fields.razor
index c2489bd7..8e197b3b 100644
--- a/BLAZAM/Pages/Configure/Fields.razor
+++ b/BLAZAM/Pages/Configure/Fields.razor
@@ -61,13 +61,13 @@
+ Value="@(context.Item.ObjectTypes.Where(ot=>ot.ObjectType==objectType).Any()==true)" />
}
- 100000)
+ 100000)
Size="@Size.Small"
Icon="@Icons.Material.Outlined.Delete"
OnClick="@(async()=>{await Delete(context.Item);})" />
@@ -109,9 +109,9 @@
if (await MessageService.Confirm("Are you sure you want to delete " + field.DisplayName + "?", "Delete " + field.DisplayName + "?"))
{
field.DeletedAt = DateTime.UtcNow;
- if (Context != null && await Context.SaveChangesAsync() > 0)
+ if (Context != null && await Context.SaveChangesAsync() > 0 && fieldGrid!=null)
{
- await fieldGrid?.ReloadServerData();
+ await fieldGrid.ReloadServerData();
SnackBarService.Success(field.DisplayName + " deleted");
}
diff --git a/BLAZAM/Pages/Groups/ViewGroup.razor b/BLAZAM/Pages/Groups/ViewGroup.razor
index 1f0d12ad..9061e4de 100644
--- a/BLAZAM/Pages/Groups/ViewGroup.razor
+++ b/BLAZAM/Pages/Groups/ViewGroup.razor
@@ -5,34 +5,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
- {AssignToModal?.Hide(); InvokeAsync(StateHasChanged);}) DirectoryModel="Group" />
-
-
- {AssignMemberModal?.Hide();InvokeAsync(StateHasChanged);}) Group="Group" />
-
-
- @if (MoveToModal?.IsShown == true)
+
+
+
+
+
+
+
+
+
+
+
+
+ {AssignToModal?.Hide(); InvokeAsync(StateHasChanged);}) DirectoryModel="Group" />
+
+
+ {AssignMemberModal?.Hide();InvokeAsync(StateHasChanged);}) Group="Group" />
+
+
+ @if (MoveToModal?.IsShown == true)
{
}
@@ -46,7 +46,7 @@
-
+
@@ -54,51 +54,53 @@
-
+
+
-
-
- @AppLocalization["Created"]:
-
-
+
-
+
+ @AppLocalization["Created"]:
+
+
-
+
- @AppLocalization["Last Change"]:
-
+
-
+ @AppLocalization["Last Change"]:
+
-
+
+
-
- @AppLocalization["OU"]:
-
- @Group.OU.ToPrettyOu()
-
+
+ @AppLocalization["OU"]:
+
+ @Group.OU.ToPrettyOu()
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
@@ -112,7 +114,7 @@
- @if (Group.CanEdit && Group.HasUnsavedChanges)
+ @if (Group.CanEdit && Group.HasUnsavedChanges)
{
}
diff --git a/BLAZAM/Pages/MFACallback.cshtml.cs b/BLAZAM/Pages/MFACallback.cshtml.cs
index 76ebe933..25e5a2d0 100644
--- a/BLAZAM/Pages/MFACallback.cshtml.cs
+++ b/BLAZAM/Pages/MFACallback.cshtml.cs
@@ -77,8 +77,9 @@ public async Task OnGet(string? state=null,string? code=null)
await _audit.Logon.Login(user.User, HttpContext.Connection.RemoteIpAddress?.ToString());
return new RedirectResult("/");
}
- }catch (Exception ex)
+ }catch
{
+
return new RedirectResult("/");
}
diff --git a/BLAZAM/Pages/Users/CreateUser.razor b/BLAZAM/Pages/Users/CreateUser.razor
index 3baaa676..2844a3f2 100644
--- a/BLAZAM/Pages/Users/CreateUser.razor
+++ b/BLAZAM/Pages/Users/CreateUser.razor
@@ -41,15 +41,18 @@
-
+
-
-
@foreach (var template in TemplatesUserCanUse.Where(t => t.DeletedAt == null && t.Visible))
{
- {await SetTemplate(template);}) Variant="Variant.Filled" Color="Color.Primary" Size="Size.Large">@template.Name
+ {await SetTemplate(template);})
+ Variant="Variant.Filled"
+ Color="Color.Primary"
+ Size="Size.Large">@template.Name
}
diff --git a/BLAZAM/ProgramHelpers.cs b/BLAZAM/ProgramHelpers.cs
index 93bab51e..107065b2 100644
--- a/BLAZAM/ProgramHelpers.cs
+++ b/BLAZAM/ProgramHelpers.cs
@@ -35,6 +35,11 @@ namespace BLAZAM.Server
{
public static class ProgramHelpers
{
+ ///
+ /// Sets up the core configuration like debug, installation id, and running process and version
+ ///
+ ///
+ ///
public static WebApplicationBuilder IntializeProperties(this WebApplicationBuilder builder)
{
//Set DebugMode flag from configuration
@@ -45,25 +50,27 @@ public static WebApplicationBuilder IntializeProperties(this WebApplicationBuild
//Set the installation ID
try
{
+ //Attempts to get the windows installation GUID
ApplicationInfo.installationId = GetInstallationId();
- }catch (Exception ex)
+ }catch
{
+ //Default to a hash type method on the machine name
ApplicationInfo.installationId = Environment.MachineName.ToGuid();
}
- //Set application directories
- //Program.RootDirectory = new SystemDirectory(builder.Environment.ContentRootPath);
- //Program.TempDirectory = new SystemDirectory(Path.GetTempPath() + "Blazam\\");
+
Program.AppDataDirectory = new SystemDirectory(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Blazam\\");
//Store the configuration so other pages/objects can easily access it
Program.Configuration = builder.Configuration;
-
+ //Captures the running process
ApplicationInfo.runningProcess = Process.GetCurrentProcess();
+
+ //Gets the application version from he running assembly version
ApplicationInfo.runningVersion = new ApplicationVersion(Assembly.GetExecutingAssembly()) ;
@@ -208,6 +215,7 @@ completed so it may not be usable as is
//Provide an Http client as a service with custom construction via api service class
builder.Services.AddHttpClient();
+
//Also keeping this here for a possible future API, though this would be for internal use
//builder.Services.AddTransient();
//builder.Services.AddTransient(provider => provider.GetService().HttpContext.User);
@@ -225,7 +233,7 @@ completed so it may not be usable as is
//Provide chat as a service
builder.Services.AddSingleton();
-
+ //Sets up Active Directory communications
builder.Services.AddActiveDirectoryServices();
@@ -252,7 +260,8 @@ completed so it may not be usable as is
builder.Services.AddScoped();
-
+ //A substitue Navigation Manager for the app to enable navigation warning on unsaved
+ //changes
builder.Services.AddScoped();
diff --git a/BLAZAMActiveDirectory/Searchers/ADGroupSearcher.cs b/BLAZAMActiveDirectory/Searchers/ADGroupSearcher.cs
index 6c72142a..53efd152 100644
--- a/BLAZAMActiveDirectory/Searchers/ADGroupSearcher.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADGroupSearcher.cs
@@ -95,7 +95,7 @@ public async Task> FindNewGroupsAsync(int maxAgeInDays = 14)
public List? GetAllNestedMembers(IADGroup group)
{
string UserSearchFieldsQuery = "(&(memberOf:1.2.840.113556.1.4.1941:=" + group.DN + "))";
- return ConvertTo(SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User)).Cast().ToList();
+ return SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User).Cast().ToList();
}
@@ -173,7 +173,7 @@ public List GetDirectUserMembers(IADGroup group, bool ignoreDisabledUse
}.Search();
*/
string UserSearchFieldsQuery = "(memberOf=" + group.DN + ")";
- return new List(ConvertTo(SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 500, ignoreDisabledUsers)));
+ return SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 500, ignoreDisabledUsers).Cast().ToList();
}
@@ -188,7 +188,7 @@ public List GetGroupMembers(IADGroup group)
}.Search();
*/
string UserSearchFieldsQuery = "(memberOf=" + group.DN + ")";
- return new List(ConvertTo(SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.Group, 500)));
+ return SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.Group, 500).Cast().ToList();
}
diff --git a/BLAZAMActiveDirectory/Searchers/ADOUSearcher.cs b/BLAZAMActiveDirectory/Searchers/ADOUSearcher.cs
index aaabc6a6..f845eaec 100644
--- a/BLAZAMActiveDirectory/Searchers/ADOUSearcher.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADOUSearcher.cs
@@ -49,9 +49,9 @@ public List FindOuByString(string searchTerm)
return FindOuByString(searchTerm).OrderBy(x => x.DN).FirstOrDefault();
}
- public List FindSubOusByDN(string? searchBaseDN) => new List(ConvertTo(SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.OU, 1000, true, SearchScope.OneLevel)));
+ public List FindSubOusByDN(string? searchBaseDN) => SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.OU, 1000, true, SearchScope.OneLevel).Cast().ToList();
- public List FindSubUsersByDN(string searchBaseDN) => new List(ConvertTo(SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.User, 1000, true, SearchScope.OneLevel)));
+ public List FindSubUsersByDN(string searchBaseDN) => SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.User, 1000, true, SearchScope.OneLevel).Cast().ToList();
public List FindSubComputerByDN(string searchBaseDN) {
var search = NewSearch;
@@ -61,7 +61,7 @@ public List FindSubComputerByDN(string searchBaseDN) {
}
// new List(ConvertTo(SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.Computer, 1000, true, SearchScope.OneLevel)));
- public List FindSubGroupsByDN(string searchBaseDN) => new List(ConvertTo(SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.Group, 1000, true, SearchScope.OneLevel)));
+ public List FindSubGroupsByDN(string searchBaseDN) => SearchObjects(searchBaseDN, "", ActiveDirectoryObjectType.Group, 1000, true, SearchScope.OneLevel).Cast().ToList();
diff --git a/BLAZAMActiveDirectory/Searchers/ADPrinterSearcher.cs b/BLAZAMActiveDirectory/Searchers/ADPrinterSearcher.cs
index 79b83df1..be2fb59f 100644
--- a/BLAZAMActiveDirectory/Searchers/ADPrinterSearcher.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADPrinterSearcher.cs
@@ -91,7 +91,7 @@ public List FindChangedPrinters(bool? ignoreDisabledPrinters = true,
var tstamp = threeMonthsAgo.ToString("yyyyMMddHHmmss.fZ");
string PrintersearchFieldsQuery = "(whenChanged>=" + tstamp + ")";
- return new List(ConvertTo(SearchObjects(PrintersearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledPrinters)).OrderByDescending(u => u.LastChanged));
+ return SearchObjects(PrintersearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledPrinters).Cast().OrderByDescending(u => u.LastChanged).ToList();
}
diff --git a/BLAZAMActiveDirectory/Searchers/ADSearch.cs b/BLAZAMActiveDirectory/Searchers/ADSearch.cs
index 0bf30c17..469136d1 100644
--- a/BLAZAMActiveDirectory/Searchers/ADSearch.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADSearch.cs
@@ -22,8 +22,16 @@
namespace BLAZAM.ActiveDirectory.Searchers
{
+ ///
+ /// Represents the state of the search process.
+ ///
public enum SearchState { Ready, Started, Collecting, Completed };
+ ///
+ /// The ADSearch class provides a powerful and flexible mechanism for performing searches within an Active Directory environment.
+ /// By configuring various search parameters, users can query the directory for specific types of objects, such as users, groups,
+ /// computers, organizational units, and more. This class leverages LDAP queries to retrieve and filter results efficiently.
+ ///
public class ADSearch : SearchBase
{
@@ -107,7 +115,7 @@ public async Task> SearchAsync()
else cancellationToken = new CancellationToken();
if (cancellationToken?.IsCancellationRequested == true)
return new();
- DateTime startTime = NewMethod();
+ DateTime startTime = InitializeSearch();
DirectorySearcher searcher;
try
{
@@ -120,6 +128,8 @@ public async Task> SearchAsync()
//Make sure this is not usable
//Seems to never pull ou's
//VirtualListView = new DirectoryVirtualListView(0, pageSize - 1, pageOffset),
+ SearchScope=SearchScope,
+ SizeLimit= MaxResults,
Filter = "(&(|(&(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))(objectClass=group)(&(objectCategory=computer)(!userAccountControl:1.2.840.113556.1.4.803:=2))(objectClass=organizationalUnit)(objectClass=printQueue)))"
};
if (EnabledOnly != true)
@@ -253,7 +263,7 @@ public async Task> SearchAsync()
}
- private DateTime NewMethod()
+ private DateTime InitializeSearch()
{
var startTime = DateTime.Now;
SearchState = SearchState.Started;
diff --git a/BLAZAMActiveDirectory/Searchers/ADSearcher.cs b/BLAZAMActiveDirectory/Searchers/ADSearcher.cs
index 23f514b4..6535342f 100644
--- a/BLAZAMActiveDirectory/Searchers/ADSearcher.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADSearcher.cs
@@ -17,7 +17,7 @@ public ADSearcher(IActiveDirectoryContext directory)
{
Directory = directory;
}
- protected virtual SearchResultCollection SearchObjects(
+ protected virtual List? SearchObjects(
string fieldQuery,
ActiveDirectoryObjectType searchType,
int returnCount = 5,
@@ -30,7 +30,7 @@ protected virtual SearchResultCollection SearchObjects(
- protected virtual SearchResultCollection SearchObjects(
+ protected virtual List? SearchObjects(
string? searchBaseDN,
string fieldQuery,
ActiveDirectoryObjectType? searchType,
@@ -44,15 +44,12 @@ protected virtual SearchResultCollection SearchObjects(
- //if (enabledOnly == false) Don't do this to allow disabled only searches
- //if trying to find disabled users, set to null to include both enabled and disabled
- //enabledOnly = null;
DirectorySearcher searcher;
try
{
- /*
+
ADSearch search = new ADSearch();
@@ -62,13 +59,14 @@ protected virtual SearchResultCollection SearchObjects(
search.MaxResults = returnCount;
search.SearchScope = searchScope;
search.EnabledOnly = enabledOnly;
- return search.Search();
-
+ var results = search.Search();
+ return results;
- */
-
+
+ /*
+ * Obsoleete code from previous searcher method
searcher = new DirectorySearcher(Directory.GetDirectoryEntry(searchBaseDN));
searcher.Filter = "(&(objectClass=*))";
switch (searchType)
@@ -118,11 +116,12 @@ protected virtual SearchResultCollection SearchObjects(
searcher.Filter = searcher.Filter.Substring(0, searcher.Filter.Length - 1) + fieldQuery + ")";
var result = searcher.FindAll();
- return result;
+ //return result;
+ */
}
catch (Exception ex)
{
- Loggers.ActiveDirectryLogger.Error("Directory Entry failed to connect {@Error}", ex);
+ Loggers.ActiveDirectryLogger.Error("Search failed {@Error}", ex);
}
return null;
// Set the filter to look for a specific user
@@ -137,7 +136,7 @@ protected virtual SearchResultCollection SearchObjects(
- protected SearchResultCollection SearchObjectBySID(string sid) => SearchObjects(null, "(objectSid=" + sid + ")", null, 1, false);
+ protected List? SearchObjectBySID(string sid) => SearchObjects(null, "(objectSid=" + sid + ")", null, 1, false);
protected List ConvertTo(SearchResultCollection r) where T : IDirectoryEntryAdapter, new()
{
diff --git a/BLAZAMActiveDirectory/Searchers/ADUserSearcher.cs b/BLAZAMActiveDirectory/Searchers/ADUserSearcher.cs
index 5aa6a910..9a2a01ea 100644
--- a/BLAZAMActiveDirectory/Searchers/ADUserSearcher.cs
+++ b/BLAZAMActiveDirectory/Searchers/ADUserSearcher.cs
@@ -114,7 +114,7 @@ public List FindChangedPasswordUsers(bool? ignoreDisabledUsers = true)
var tstamp = threeMonthsAgo.ToString("yyyyMMddHHmmss.fZ");
string UserSearchFieldsQuery = "(pwdLastSet>=" + tstamp + ")";
- return new List(ConvertTo(SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledUsers)).OrderByDescending(u => u.PasswordLastSet));
+ return SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledUsers).Cast().OrderByDescending(u => u.PasswordLastSet).ToList();
}
@@ -133,7 +133,7 @@ public List FindChangedUsers(bool? ignoreDisabledUsers = true, int days
var tstamp = threeMonthsAgo.ToString("yyyyMMddHHmmss.fZ");
string UserSearchFieldsQuery = "(whenChanged>=" + tstamp + ")";
- return new List(ConvertTo(SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledUsers)).OrderByDescending(u => u.LastChanged));
+ return SearchObjects(UserSearchFieldsQuery, ActiveDirectoryObjectType.User, 1000, ignoreDisabledUsers).Cast().OrderByDescending(u => u.LastChanged).ToList();
}
public IADUser? FindUserBySID(string? sid)
diff --git a/BLAZAMCommon.Tests/BLAZAMCommon.Tests.csproj b/BLAZAMCommon.Tests/BLAZAMCommon.Tests.csproj
index 4dbba57d..76b51e15 100644
--- a/BLAZAMCommon.Tests/BLAZAMCommon.Tests.csproj
+++ b/BLAZAMCommon.Tests/BLAZAMCommon.Tests.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/BLAZAMCommon/BLAZAMCommon.csproj b/BLAZAMCommon/BLAZAMCommon.csproj
index 537fd770..2e7cb603 100644
--- a/BLAZAMCommon/BLAZAMCommon.csproj
+++ b/BLAZAMCommon/BLAZAMCommon.csproj
@@ -22,7 +22,7 @@
-
+
diff --git a/BLAZAMCommon/Data/AppValidationRule.cs b/BLAZAMCommon/Data/AppValidationRule.cs
index 294064f9..f2239c55 100644
--- a/BLAZAMCommon/Data/AppValidationRule.cs
+++ b/BLAZAMCommon/Data/AppValidationRule.cs
@@ -4,6 +4,11 @@
namespace BLAZAM.Common.Data
{
+
+ ///
+ /// Appears to be for Blazorise
+ ///
+ [Obsolete("Old Validation rules for Blazorise")]
public static class AppValidationRule
{
//
@@ -19,6 +24,8 @@ public static class AppValidationRule
//
// Returns:
// True if they are equal.
+ [Obsolete("Old Validation rules for Blazorise")]
+
public static bool IsEqual(string value, string compare)
{
try
@@ -47,6 +54,8 @@ public static bool IsEqual(string value, string compare)
//
// Returns:
// True if string length is in the range.
+ [Obsolete("Old Validation rules for Blazorise")]
+
public static bool IsLength(string value, int min, int max)
{
return value.Length>min && value.Length
-
+
diff --git a/BLAZAMEmailMessage/BLAZAMEmailMessage.csproj b/BLAZAMEmailMessage/BLAZAMEmailMessage.csproj
index 742cc519..2b08e687 100644
--- a/BLAZAMEmailMessage/BLAZAMEmailMessage.csproj
+++ b/BLAZAMEmailMessage/BLAZAMEmailMessage.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/BLAZAMGui/BLAZAMGui.csproj b/BLAZAMGui/BLAZAMGui.csproj
index dbfa75d2..94785273 100644
--- a/BLAZAMGui/BLAZAMGui.csproj
+++ b/BLAZAMGui/BLAZAMGui.csproj
@@ -24,8 +24,8 @@
-
-
+
+
diff --git a/BLAZAMGui/UI/Inputs/TreeViews/OUTreeViewBase.cs b/BLAZAMGui/UI/Inputs/TreeViews/OUTreeViewBase.cs
index 30d4192d..d6abdf77 100644
--- a/BLAZAMGui/UI/Inputs/TreeViews/OUTreeViewBase.cs
+++ b/BLAZAMGui/UI/Inputs/TreeViews/OUTreeViewBase.cs
@@ -24,7 +24,12 @@ public class OUTreeViewBase : AppComponentBase
[Parameter]
public string? Label { get; set; }
-
+ ///
+ /// The root ou of this TreeView
+ ///
+ ///
+ /// Defaults to the App Base root
+ ///
[Parameter]
public HashSet RootOU { get; set; } = new HashSet();
[Parameter]
@@ -78,6 +83,9 @@ public IDirectoryEntryAdapter? SelectedEntry
[Parameter]
public EventCallback SelectedEntryChanged { get; set; }
+ ///
+ /// Text to show at the end of the TreeView item
+ ///
[Parameter]
public Func? EndText { get; set; }
@@ -174,8 +182,14 @@ protected void OpenToSelected()
}
+ ///
+ /// Defines a function to determine whether an Active Directory object should be
+ /// displayed in the tree view or not
+ ///
[Parameter]
public Func? AdditionalVisibilityFilters { get; set; }
+
+
protected bool ShouldShowOU(IDirectoryEntryAdapter entry)
{
if (entry is IADOrganizationalUnit ou)
diff --git a/BLAZAMGui/UI/Users/RenameUserModalContent.razor b/BLAZAMGui/UI/Users/RenameUserModalContent.razor
index 36e1b208..4f840991 100644
--- a/BLAZAMGui/UI/Users/RenameUserModalContent.razor
+++ b/BLAZAMGui/UI/Users/RenameUserModalContent.razor
@@ -1,34 +1,30 @@
@inherits AppModalContent
@if (User != null && _privateUserInstance != null)
{
- @if (User.CanReadField(ActiveDirectoryFields.GivenName))
- {
+
- }
- @if (User.CanReadField(ActiveDirectoryFields.MiddleName))
- {
+
+
- }
- @if (User.CanReadField(ActiveDirectoryFields.SN))
- {
+
+
- }
- @if (User.CanReadField(ActiveDirectoryFields.DisplayName))
- {
+
+
- }
+
@if (User.CanEditField(ActiveDirectoryFields.SAMAccountName))
diff --git a/BLAZAMLoggers/BLAZAMLogger.csproj b/BLAZAMLoggers/BLAZAMLogger.csproj
index bc420fc8..b7fa8f9c 100644
--- a/BLAZAMLoggers/BLAZAMLogger.csproj
+++ b/BLAZAMLoggers/BLAZAMLogger.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/BLAZAMServices/BLAZAMServices.csproj b/BLAZAMServices/BLAZAMServices.csproj
index 407cb362..1580f1f0 100644
--- a/BLAZAMServices/BLAZAMServices.csproj
+++ b/BLAZAMServices/BLAZAMServices.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/PlaywrightTests/PlaywrightTests.csproj b/PlaywrightTests/PlaywrightTests.csproj
index c8f03435..603fcd85 100644
--- a/PlaywrightTests/PlaywrightTests.csproj
+++ b/PlaywrightTests/PlaywrightTests.csproj
@@ -17,7 +17,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive