@using Oqtane.Services @using Oqtane.Modules @using Oqtane.Models @using Oqtane.Security @using Oqtane.Shared @inherits ModuleBase @inject IRoleService RoleService @inject IUserService UserService @if (roles != null) {
@foreach (PermissionString permission in permissions) { } @foreach (Role role in roles) { @foreach (PermissionString permission in permissions) { var p = permission; } }
Role@permission.PermissionName @EntityName
@role.Name
@if (@users.Count != 0) {
@foreach (PermissionString permission in permissions) { } @foreach (User user in users) { @foreach (PermissionString permission in permissions) { var p = permission; } }
User@permission.PermissionName @EntityName
@user.DisplayName
}

} @code { [Parameter] public string EntityName { get; set; } [Parameter] public string Permissions { get; set; } string permissionnames = ""; List roles; List permissions = new List(); List users = new List(); string username = ""; string message = ""; protected override async Task OnInitializedAsync() { permissionnames = PageState.ModuleDefinitions.Find(item => item.ModuleDefinitionName == ModuleState.ModuleDefinitionName).Permissions; if (string.IsNullOrEmpty(permissionnames)) { permissionnames = "View,Edit"; } roles = await RoleService.GetRolesAsync(ModuleState.SiteId); roles.Insert(0, new Role { Name = Constants.AllUsersRole }); foreach (string permissionname in permissionnames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { permissions.Add(new PermissionString { PermissionName = permissionname, Permissions = "" }); } foreach (PermissionString permissionstring in UserSecurity.GetPermissionStrings(Permissions)) { if (permissions.Find(item => item.PermissionName == permissionstring.PermissionName) != null) { permissions[permissions.FindIndex(item => item.PermissionName == permissionstring.PermissionName)].Permissions = permissionstring.Permissions; } if (permissionstring.Permissions.Contains("[")) { foreach (string user in permissionstring.Permissions.Split(new char[] { '[' }, StringSplitOptions.RemoveEmptyEntries)) { if (user.Contains("]")) { int userid = int.Parse(user.Substring(0, user.IndexOf("]"))); if (users.Where(item => item.UserId == userid).FirstOrDefault() == null) { users.Add(await UserService.GetUserAsync(userid, ModuleState.SiteId)); } } } } } } private bool GetPermissionValue(string Permissions, string SecurityKey) { if ((";" + Permissions + ";").Contains(";" + SecurityKey + ";")) { return true; } else { return false; } } private bool GetPermissionDisabled(string RoleName) { if (RoleName == Constants.AdminRole) { return true; } else { return false; } } private async Task AddUser() { if (users.Where(item => item.Username == username).FirstOrDefault() == null) { try { User user = await UserService.GetUserAsync(username, ModuleState.SiteId); if (user != null) { users.Add(user); } } catch { message = "Username Does Not Exist"; } } username = ""; } private void PermissionChanged(UIChangeEventArgs e, string PermissionName, string SecurityId) { bool selected = (bool)e.Value; PermissionString permission = permissions.Find(item => item.PermissionName == PermissionName); if (permission != null) { List ids = permission.Permissions.Split(';').ToList(); if (selected) { ids.Add(SecurityId); } else { ids.Remove(SecurityId); } permissions[permissions.FindIndex(item => item.PermissionName == PermissionName)].Permissions = string.Join(";", ids.ToArray()); } } public string GetPermissions() { return UserSecurity.SetPermissionStrings(permissions); } }