diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..b9a82bce
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,53 @@
+root = true
+
+[*]
+end_of_line = crlf
+charset = utf-8
+indent_style = space
+indent_size = 4
+
+[*.{json,csproj,props,targets}]
+indent_size = 2
+
+[*.cs]
+# Prefer "var" everywhere
+csharp_style_var_for_built_in_types = true : suggestion
+csharp_style_var_when_type_is_apparent = true : suggestion
+csharp_style_var_elsewhere = true : suggestion
+
+# Newline settings
+csharp_new_line_before_open_brace = all
+csharp_new_line_before_else = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_members_in_anonymous_types = true
+
+# Sort using and Import directives with System.* appearing first
+dotnet_sort_system_directives_first = true
+
+# Avoid "this." if not necessary
+dotnet_style_qualification_for_field = false : suggestion
+dotnet_style_qualification_for_property = false : suggestion
+dotnet_style_qualification_for_method = false : suggestion
+dotnet_style_qualification_for_event = false : suggestion
+
+# Use language keywords instead of framework type names for type references
+dotnet_style_predefined_type_for_locals_parameters_members = true : suggestion
+dotnet_style_predefined_type_for_member_access = false : suggestion
+
+# Suggest more modern language features when available
+csharp_style_pattern_matching_over_is_with_cast_check = true : none
+csharp_style_pattern_matching_over_as_with_null_check = true : none
+csharp_style_inlined_variable_declaration = true : none
+csharp_style_throw_expression = true : none
+csharp_style_conditional_delegate_call = true : none
+
+dotnet_style_object_initializer = true : suggestion
+dotnet_style_collection_initializer = true : suggestion
+dotnet_style_coalesce_expression = true : suggestion
+dotnet_style_null_propagation = true : suggestion
+dotnet_style_explicit_tuple_names = true : suggestion
+
+trim_trailing_whitespace = true
+insert_final_newline = true
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Error/Index.razor b/Oqtane.Client/Modules/Admin/Error/Index.razor
index 9e0df574..7ddb0ce3 100644
--- a/Oqtane.Client/Modules/Admin/Error/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Error/Index.razor
@@ -8,7 +8,7 @@
protected override async Task OnInitializedAsync()
{
Module module = await ModuleService.GetModuleAsync(ModuleState.ModuleId);
- if (UserSecurity.IsAuthorized(PageState.User, Constants.HostRole))
+ if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
{
string message = "A Problem Was Encountered Loading Module " + module.ModuleDefinitionName;
AddModuleMessage(message, MessageType.Error);
diff --git a/Oqtane.Client/Modules/Admin/Roles/Users.razor b/Oqtane.Client/Modules/Admin/Roles/Users.razor
index c292d3d5..a583aedc 100644
--- a/Oqtane.Client/Modules/Admin/Roles/Users.razor
+++ b/Oqtane.Client/Modules/Admin/Roles/Users.razor
@@ -88,7 +88,7 @@ else
Role role = await RoleService.GetRoleAsync(roleid);
name = role.Name;
users = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId);
- users = users.Where(item => item.Role.Name == Constants.RegisteredRole).ToList();
+ users = users.Where(item => item.Role.Name == RoleNames.Registered).ToList();
await GetUserRoles();
}
catch (Exception ex)
diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor
index 042e168b..7ee36435 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor
@@ -216,7 +216,7 @@ else
private string _username = string.Empty;
private string _password = string.Empty;
private bool _integratedsecurity = true;
- private string _hostusername = Constants.HostUser;
+ private string _hostusername = UserNames.Host;
private string _hostpassword = string.Empty;
private string _name = string.Empty;
@@ -311,7 +311,7 @@ else
// validate host credentials
var user = new User();
user.SiteId = PageState.Site.SiteId;
- user.Username = Constants.HostUser;
+ user.Username = UserNames.Host;
user.Password = _hostpassword;
user = await UserService.LoginUserAsync(user, false, false);
if (user.IsAuthenticated)
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Edit.razor b/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
index 94ee91d6..245ce1cb 100644
--- a/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Tenants/Edit.razor
@@ -9,7 +9,7 @@
- @if (name == Constants.MasterTenant)
+ @if (name == TenantNames.Master)
{
}
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Index.razor b/Oqtane.Client/Modules/Admin/Tenants/Index.razor
index 1ce7c686..5858a059 100644
--- a/Oqtane.Client/Modules/Admin/Tenants/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Tenants/Index.razor
@@ -17,7 +17,7 @@ else
|
- |
+ |
@context.Name |
diff --git a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
index 9c718ef1..30e6b075 100644
--- a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
+++ b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
@@ -79,7 +79,7 @@ else
@foreach (Profile profile in profiles)
{
var p = profile;
- if (!p.IsPrivate || UserSecurity.IsAuthorized(PageState.User, Constants.AdminRole))
+ if (!p.IsPrivate || UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin))
{
if (p.Category != category)
{
@@ -299,7 +299,7 @@ else
{
settings = SettingService.SetSetting(settings, profile.Name, profile.DefaultValue);
}
- if (!profile.IsPrivate || UserSecurity.IsAuthorized(PageState.User, Constants.AdminRole))
+ if (!profile.IsPrivate || UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin))
{
if (profile.IsRequired && string.IsNullOrEmpty(SettingService.GetSetting(settings, profile.Name, string.Empty)))
{
diff --git a/Oqtane.Client/Modules/Admin/Users/Index.razor b/Oqtane.Client/Modules/Admin/Users/Index.razor
index 682e2d3b..efcd89a2 100644
--- a/Oqtane.Client/Modules/Admin/Users/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Index.razor
@@ -58,10 +58,10 @@ else
{
if (string.IsNullOrEmpty(_search))
{
- return allroles.Where(item => item.Role.Name == Constants.RegisteredRole).ToList();
+ return allroles.Where(item => item.Role.Name == RoleNames.Registered).ToList();
}
return allroles
- .Where(item => item.Role.Name == Constants.RegisteredRole &&
+ .Where(item => item.Role.Name == RoleNames.Registered &&
(
item.User.Username.Contains(search, StringComparison.OrdinalIgnoreCase) ||
item.User.Email.Contains(search, StringComparison.OrdinalIgnoreCase) ||
diff --git a/Oqtane.Client/Modules/Admin/Users/Roles.razor b/Oqtane.Client/Modules/Admin/Users/Roles.razor
index a4e946df..9a056a43 100644
--- a/Oqtane.Client/Modules/Admin/Users/Roles.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Roles.razor
@@ -63,7 +63,7 @@ else
@context.Role.Name |
- @if (context.Role.Name != Constants.RegisteredRole)
+ @if (context.Role.Name != RoleNames.Registered)
{
}
diff --git a/Oqtane.Client/Modules/Controls/ActionDialog.razor b/Oqtane.Client/Modules/Controls/ActionDialog.razor
index fc22605c..94254ab9 100644
--- a/Oqtane.Client/Modules/Controls/ActionDialog.razor
+++ b/Oqtane.Client/Modules/Controls/ActionDialog.razor
@@ -134,10 +134,10 @@
authorized = UserSecurity.IsAuthorized(PageState.User,PermissionNames.Edit, ModuleState.Permissions);
break;
case SecurityAccessLevel.Admin:
- authorized = UserSecurity.IsAuthorized(PageState.User, Constants.AdminRole);
+ authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin);
break;
case SecurityAccessLevel.Host:
- authorized = UserSecurity.IsAuthorized(PageState.User, Constants.HostRole);
+ authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
break;
}
}
diff --git a/Oqtane.Client/Modules/Controls/ActionLink.razor b/Oqtane.Client/Modules/Controls/ActionLink.razor
index 7de2331a..a4bcba0f 100644
--- a/Oqtane.Client/Modules/Controls/ActionLink.razor
+++ b/Oqtane.Client/Modules/Controls/ActionLink.razor
@@ -135,10 +135,10 @@
authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, ModuleState.Permissions);
break;
case SecurityAccessLevel.Admin:
- authorized = UserSecurity.IsAuthorized(PageState.User, Constants.AdminRole);
+ authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin);
break;
case SecurityAccessLevel.Host:
- authorized = UserSecurity.IsAuthorized(PageState.User, Constants.HostRole);
+ authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
break;
}
}
diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor
index 7872aba0..291b2acb 100644
--- a/Oqtane.Client/Modules/Controls/FileManager.razor
+++ b/Oqtane.Client/Modules/Controls/FileManager.razor
@@ -173,7 +173,7 @@
_haseditpermission = false;
if (!string.IsNullOrEmpty(Folder))
{
- _haseditpermission = UserSecurity.IsAuthorized(PageState.User, Constants.HostRole);
+ _haseditpermission = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
_files = await FileService.GetFilesAsync(Folder);
}
else
diff --git a/Oqtane.Client/Modules/Controls/Label.razor b/Oqtane.Client/Modules/Controls/Label.razor
index 751b222a..0d32a14b 100644
--- a/Oqtane.Client/Modules/Controls/Label.razor
+++ b/Oqtane.Client/Modules/Controls/Label.razor
@@ -1,5 +1,6 @@
@namespace Oqtane.Modules.Controls
@inherits ModuleControlBase
+@using Microsoft.Extensions.Localization
@if (!string.IsNullOrEmpty(HelpText))
{
@@ -26,6 +27,9 @@ else
[Parameter]
public string HelpText { get; set; } // optional - tooltip for this label
+ [Parameter]
+ public string ResourceKey { get; set; }
+
protected override void OnParametersSet()
{
_openLabel = " | |