fixes to permission grid
This commit is contained in:
parent
fe98084324
commit
f46b9a2fb2
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user