diff --git a/Oqtane.Server/Repository/Interfaces/IRoleRepository.cs b/Oqtane.Server/Repository/Interfaces/IRoleRepository.cs index 61541336..a83d7194 100644 --- a/Oqtane.Server/Repository/Interfaces/IRoleRepository.cs +++ b/Oqtane.Server/Repository/Interfaces/IRoleRepository.cs @@ -7,6 +7,7 @@ namespace Oqtane.Repository { IEnumerable GetRoles(); IEnumerable GetRoles(int SiteId); + IEnumerable GetRoles(int SiteId, bool IncludeGlobalRoles); Role AddRole(Role Role); Role UpdateRole(Role Role); Role GetRole(int RoleId); diff --git a/Oqtane.Server/Repository/PermissionRepository.cs b/Oqtane.Server/Repository/PermissionRepository.cs index 67a72b0d..682e797e 100644 --- a/Oqtane.Server/Repository/PermissionRepository.cs +++ b/Oqtane.Server/Repository/PermissionRepository.cs @@ -192,7 +192,7 @@ namespace Oqtane.Repository public List DecodePermissions(string PermissionStrings, int SiteId, string EntityName, int EntityId) { List permissions = new List(); - List roles = Roles.GetRoles(SiteId).ToList(); + List roles = Roles.GetRoles(SiteId, true).ToList(); string securityid = ""; foreach (PermissionString permissionstring in JsonSerializer.Deserialize>(PermissionStrings)) { diff --git a/Oqtane.Server/Repository/RoleRepository.cs b/Oqtane.Server/Repository/RoleRepository.cs index afb1fc09..fe99ecf8 100644 --- a/Oqtane.Server/Repository/RoleRepository.cs +++ b/Oqtane.Server/Repository/RoleRepository.cs @@ -38,6 +38,19 @@ namespace Oqtane.Repository } } + public IEnumerable GetRoles(int SiteId, bool IncludeGlobalRoles) + { + try + { + return db.Role.Where(item => item.SiteId == SiteId || item.SiteId == null).ToList(); + } + catch + { + throw; + } + } + + public Role AddRole(Role Role) { try diff --git a/Oqtane.Shared/Models/Role.cs b/Oqtane.Shared/Models/Role.cs index f892cabc..03da1f77 100644 --- a/Oqtane.Shared/Models/Role.cs +++ b/Oqtane.Shared/Models/Role.cs @@ -5,7 +5,7 @@ namespace Oqtane.Models public class Role : IAuditable { public int RoleId { get; set; } - public int SiteId { get; set; } + public int? SiteId { get; set; } public string Name { get; set; } public string Description { get; set; } public bool IsAutoAssigned { get; set; }