From 007f7ac62e3ab34e76fef189d02d1945eb237730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Tue, 15 Mar 2022 16:19:51 +0500 Subject: [PATCH] Fix UserService.GetNestedPermissions(). returns all permissions for all nested roles --- AsbCloudApp/Services/IUserService.cs | 2 +- AsbCloudDb/UsefulQueries/timescale_restore_dump.sql | 1 + AsbCloudInfrastructure/Services/UserService.cs | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/AsbCloudApp/Services/IUserService.cs b/AsbCloudApp/Services/IUserService.cs index beb6e3d1..fe38eeb2 100644 --- a/AsbCloudApp/Services/IUserService.cs +++ b/AsbCloudApp/Services/IUserService.cs @@ -7,7 +7,7 @@ namespace AsbCloudApp.Services { IUserRoleService RoleService { get; } IEnumerable GetNestedPermissions(int idUser); - IEnumerable GetRolesByIdUser(int idUser); + IEnumerable GetRolesByIdUser(int idUser, int nestedLevel = 0); bool HasAnyRoleOf(int idUser, IEnumerable roleNames); bool HasAnyRoleOf(int idUser, IEnumerable roleIds); public bool HasPermission(int idUser, string permissionName); diff --git a/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql b/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql index daa347dd..c8dd8bf5 100644 --- a/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql +++ b/AsbCloudDb/UsefulQueries/timescale_restore_dump.sql @@ -8,3 +8,4 @@ SELECT timescaledb_pre_restore(); SELECT timescaledb_post_restore(); +select * from t_telemetry_message ttm where id_event = 206; \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/UserService.cs b/AsbCloudInfrastructure/Services/UserService.cs index a4c06d17..a8512981 100644 --- a/AsbCloudInfrastructure/Services/UserService.cs +++ b/AsbCloudInfrastructure/Services/UserService.cs @@ -130,17 +130,17 @@ namespace AsbCloudInfrastructure.Services ?.Select(r => r.Caption) .Distinct(); - public IEnumerable GetRolesByIdUser(int idUser) + public IEnumerable GetRolesByIdUser(int idUser, int nestedLevel = 0) { var roles = cacheRelationUserToRoles.Where(r => r.IdUser == idUser); if (roles?.Any() != true) return null; - return roles.SelectMany(r => RoleService.GetNestedById(r.IdUserRole, 0)); + return roles.SelectMany(r => RoleService.GetNestedById(r.IdUserRole, nestedLevel)); } public IEnumerable GetNestedPermissions(int idUser) { - var roles = GetRolesByIdUser(idUser); + var roles = GetRolesByIdUser(idUser, 7); if(roles?.Any() != true) return null; var permissions = roles