fixes to permission grid

This commit is contained in:
Shaun Walker 2020-03-11 16:45:11 -04:00
parent fe98084324
commit f46b9a2fb2
3 changed files with 44 additions and 21 deletions

View File

@ -3,7 +3,7 @@
@inject IRoleService RoleService
@inject IUserService UserService
@if (roles != null)
@if (permissions != null)
{
<br />
<table class="table">
@ -52,7 +52,7 @@
{
var p = permission;
<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>
}
</tr>
@ -85,7 +85,7 @@
string permissionnames = "";
List<Role> roles;
List<PermissionString> permissions = new List<PermissionString>();
List<PermissionString> permissions;
List<User> users = new List<User>();
string username = "";
string message = "";
@ -103,12 +103,13 @@
roles = await RoleService.GetRolesAsync(ModuleState.SiteId);
roles.Insert(0, new Role { Name = Constants.AllUsersRole });
if (!string.IsNullOrEmpty(Permissions))
{
permissions = new List<PermissionString>();
foreach (string permissionname in permissionnames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
permissions.Add(new PermissionString { PermissionName = permissionname, Permissions = "" });
}
if (Permissions != "")
{
foreach (PermissionString permissionstring in UserSecurity.GetPermissionStrings(Permissions))
{
if (permissions.Find(item => item.PermissionName == permissionstring.PermissionName) != null)
@ -212,6 +213,21 @@
public string GetPermissions()
{
ValidatePermissions();
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;
}
}
}

View File

@ -1,6 +1,6 @@
@namespace Oqtane.Modules.Controls
<img src="@src" title="@title" disabled=@Disabled @onclick="SetValue" />
<img src="@src" title="@title" @onclick="SetValue" />
@code {
[Parameter]
@ -23,6 +23,8 @@
}
private void SetValue()
{
if (!Disabled)
{
switch (value)
{
@ -39,6 +41,7 @@
SetImage();
OnChange(value);
}
}
private void SetImage()
{

View File

@ -85,6 +85,10 @@ namespace Oqtane.Repository
{
_permissions.UpdatePermissions(SiteId, "ModuleDefinition", moduledef.ModuleDefinitionId, moduledefinition.Permissions);
}
else
{
moduledefinition.Permissions = _permissions.EncodePermissions(moduledef.ModuleDefinitionId, permissions);
}
// remove module definition from list
moduledefs.Remove(moduledef);
}