fixes to permission grid
This commit is contained in:
parent
fe98084324
commit
f46b9a2fb2
|
@ -3,7 +3,7 @@
|
||||||
@inject IRoleService RoleService
|
@inject IRoleService RoleService
|
||||||
@inject IUserService UserService
|
@inject IUserService UserService
|
||||||
|
|
||||||
@if (roles != null)
|
@if (permissions != null)
|
||||||
{
|
{
|
||||||
<br />
|
<br />
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
{
|
{
|
||||||
var p = permission;
|
var p = permission;
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<TriStateCheckBox Value=@GetPermissionValue(p.Permissions, userid) Disabled=@GetPermissionDisabled(userid) OnChange="@(e => PermissionChanged(e, p.PermissionName, userid))" />
|
<TriStateCheckBox Value=@GetPermissionValue(p.Permissions, userid) Disabled=false OnChange="@(e => PermissionChanged(e, p.PermissionName, userid))" />
|
||||||
</td>
|
</td>
|
||||||
}
|
}
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
|
|
||||||
string permissionnames = "";
|
string permissionnames = "";
|
||||||
List<Role> roles;
|
List<Role> roles;
|
||||||
List<PermissionString> permissions = new List<PermissionString>();
|
List<PermissionString> permissions;
|
||||||
List<User> users = new List<User>();
|
List<User> users = new List<User>();
|
||||||
string username = "";
|
string username = "";
|
||||||
string message = "";
|
string message = "";
|
||||||
|
@ -103,12 +103,13 @@
|
||||||
roles = await RoleService.GetRolesAsync(ModuleState.SiteId);
|
roles = await RoleService.GetRolesAsync(ModuleState.SiteId);
|
||||||
roles.Insert(0, new Role { Name = Constants.AllUsersRole });
|
roles.Insert(0, new Role { Name = Constants.AllUsersRole });
|
||||||
|
|
||||||
foreach (string permissionname in permissionnames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
if (!string.IsNullOrEmpty(Permissions))
|
||||||
{
|
|
||||||
permissions.Add(new PermissionString { PermissionName = permissionname, Permissions = "" });
|
|
||||||
}
|
|
||||||
if (Permissions != "")
|
|
||||||
{
|
{
|
||||||
|
permissions = new List<PermissionString>();
|
||||||
|
foreach (string permissionname in permissionnames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
||||||
|
{
|
||||||
|
permissions.Add(new PermissionString { PermissionName = permissionname, Permissions = "" });
|
||||||
|
}
|
||||||
foreach (PermissionString permissionstring in UserSecurity.GetPermissionStrings(Permissions))
|
foreach (PermissionString permissionstring in UserSecurity.GetPermissionStrings(Permissions))
|
||||||
{
|
{
|
||||||
if (permissions.Find(item => item.PermissionName == permissionstring.PermissionName) != null)
|
if (permissions.Find(item => item.PermissionName == permissionstring.PermissionName) != null)
|
||||||
|
@ -212,6 +213,21 @@
|
||||||
|
|
||||||
public string GetPermissions()
|
public string GetPermissions()
|
||||||
{
|
{
|
||||||
|
ValidatePermissions();
|
||||||
return UserSecurity.SetPermissionStrings(permissions);
|
return UserSecurity.SetPermissionStrings(permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ValidatePermissions()
|
||||||
|
{
|
||||||
|
PermissionString permission;
|
||||||
|
for (int i = 0; i < permissions.Count; i++)
|
||||||
|
{
|
||||||
|
permission = permissions[i];
|
||||||
|
List<string> ids = permission.Permissions.Split(';').ToList();
|
||||||
|
ids.Remove("!" + Constants.AllUsersRole); // remove deny all users
|
||||||
|
ids.Remove("!" + Constants.RegisteredRole); // remove deny registered users
|
||||||
|
permission.Permissions = string.Join(";", ids.ToArray());
|
||||||
|
permissions[i] = permission;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
@namespace Oqtane.Modules.Controls
|
@namespace Oqtane.Modules.Controls
|
||||||
|
|
||||||
<img src="@src" title="@title" disabled=@Disabled @onclick="SetValue" />
|
<img src="@src" title="@title" @onclick="SetValue" />
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Parameter]
|
[Parameter]
|
||||||
|
@ -24,20 +24,23 @@
|
||||||
|
|
||||||
private void SetValue()
|
private void SetValue()
|
||||||
{
|
{
|
||||||
switch (value)
|
if (!Disabled)
|
||||||
{
|
{
|
||||||
case true:
|
switch (value)
|
||||||
value = false;
|
{
|
||||||
break;
|
case true:
|
||||||
case false:
|
value = false;
|
||||||
value = null;
|
break;
|
||||||
break;
|
case false:
|
||||||
case null:
|
value = null;
|
||||||
value = true;
|
break;
|
||||||
break;
|
case null:
|
||||||
|
value = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SetImage();
|
||||||
|
OnChange(value);
|
||||||
}
|
}
|
||||||
SetImage();
|
|
||||||
OnChange(value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetImage()
|
private void SetImage()
|
||||||
|
|
|
@ -85,6 +85,10 @@ namespace Oqtane.Repository
|
||||||
{
|
{
|
||||||
_permissions.UpdatePermissions(SiteId, "ModuleDefinition", moduledef.ModuleDefinitionId, moduledefinition.Permissions);
|
_permissions.UpdatePermissions(SiteId, "ModuleDefinition", moduledef.ModuleDefinitionId, moduledefinition.Permissions);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
moduledefinition.Permissions = _permissions.EncodePermissions(moduledef.ModuleDefinitionId, permissions);
|
||||||
|
}
|
||||||
// remove module definition from list
|
// remove module definition from list
|
||||||
moduledefs.Remove(moduledef);
|
moduledefs.Remove(moduledef);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user