From 3b71b7d707b60284917d85bf519c271076443eba Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 16 Dec 2025 18:24:18 +0330 Subject: [PATCH] add pmPermission to claim --- .../AccountApplication.cs | 23 ++++++++++++++++++- .../Pages/Accounts/Account/Create.cshtml | 4 ++-- .../Admin/Pages/Accounts/Account/Edit.cshtml | 4 ++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/AccountManagement.Application/AccountApplication.cs b/AccountManagement.Application/AccountApplication.cs index 545c991e..ff2fd102 100644 --- a/AccountManagement.Application/AccountApplication.cs +++ b/AccountManagement.Application/AccountApplication.cs @@ -155,6 +155,8 @@ public class AccountApplication : IAccountApplication if (command.IsProgramManagerUser) { + if (command.UserRoles == null) + return operation.Failed("حداقل یک نقش برای کاربر مدیریت پروژه لازم است"); var pmUserRoles = command.UserRoles.Where(x => x > 0).ToList(); var createPm = await _pmUserCommandService.Create(new CreatePmUserDto(command.Fullname, command.Username, account.Password, command.Mobile, null, account.id, pmUserRoles)); @@ -252,6 +254,8 @@ public class AccountApplication : IAccountApplication //); var userResult =await _pmUserQueryService.GetPmUserDataByAccountId(account.id); + if (command.UserRoles == null) + return operation.Failed("حداقل یک نقش برای کاربر مدیریت پروژه لازم است"); var pmUserRoles = command.UserRoles.Where(x => x > 0).ToList(); //اگر کاربر در پروگرام منیجر قبلا ایجاد شده @@ -396,6 +400,23 @@ public class AccountApplication : IAccountApplication .Permissions .Select(x => x.Code) .ToList(); + //PmPermission + var PmUserData = _pmUserQueryService.GetPmUserDataByAccountId(account.id).GetAwaiter().GetResult(); + if (PmUserData.AccountId > 0 && PmUserData.IsActive) + { + + var pmUserPermissions = + PmUserData.RoleListDto != null + ? PmUserData.RoleListDto + .SelectMany(x => x.Permissions) + .Where(p => p != 99) + .Distinct() + .ToList() + : new List(); + permissions.AddRange(pmUserPermissions); + } + + int? positionValue; if (account.PositionId != null) { @@ -405,7 +426,7 @@ public class AccountApplication : IAccountApplication { positionValue = null; } - var pmUserId = _pmUserQueryService.GetCurrentPmUserIdFromAccountId(account.id).GetAwaiter().GetResult(); + var pmUserId = PmUserData.AccountId > 0 ? PmUserData.AccountId : null; var authViewModel = new AuthViewModel(account.id, account.RoleId, account.Fullname , account.Username, account.Mobile, account.ProfilePhoto, permissions, account.RoleName, account.AdminAreaPermission, diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml index 4819c826..fede8b2a 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/Create.cshtml @@ -129,7 +129,7 @@
- فعالیت کاربر در پروگرام منیجر + فعالیت کاربر در مدیریت پروژه