From d43f07b8b543c45a5efc5376b0d4ba15aab30dbe Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 25 May 2022 17:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Authorization/AuthorizationPolicySetup.cs | 23 +++++++++++++++---- IRaCIS.Core.Application/Auth/IRaCISPolicy.cs | 16 +++++++++---- .../Service/TrialSiteUser/TrialService.cs | 3 +-- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs b/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs index e75fc34bd..39def344c 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs @@ -35,21 +35,36 @@ namespace IRaCIS.Core.API policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ProjectManager).ToString(), ((int)UserTypeEnum.IQC).ToString()); }); + options.AddPolicy(IRaCISPolicy.CRC_IQC, policyBuilder => + { + policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ClinicalResearchCoordinator).ToString(), ((int)UserTypeEnum.IQC).ToString()); + }); + options.AddPolicy(IRaCISPolicy.PM, policyBuilder => { policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ProjectManager).ToString()); }); + options.AddPolicy(IRaCISPolicy.IQC, policyBuilder => + { + policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.IQC).ToString()); + }); + + options.AddPolicy(IRaCISPolicy.CRC, policyBuilder => + { + policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ClinicalResearchCoordinator).ToString()); + }); + options.AddPolicy(IRaCISPolicy.PM_APM_CRC_QC, policyBuilder => { policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ProjectManager).ToString(),((int)UserTypeEnum.ClinicalResearchCoordinator).ToString(), ((int)UserTypeEnum.APM).ToString(), ((int)UserTypeEnum.IQC).ToString()); }); - //options.AddPolicy(IRaCISPolicy.PM_APM, policyBuilder => - //{ - // policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ProjectManager).ToString(), ((int)UserTypeEnum.APM).ToString()); - //}); + options.AddPolicy(IRaCISPolicy.SPM_CPM, policyBuilder => + { + policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.SPM).ToString(), ((int)UserTypeEnum.CPM).ToString()); + }); }); } diff --git a/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs b/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs index 1a324502d..50610ea64 100644 --- a/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs +++ b/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs @@ -10,25 +10,31 @@ namespace IRaCIS.Core.Application.Auth public static class IRaCISPolicy { - public const string PM_APM = "PM_APM"; - public const string PM_APM_CRC = "PM_APM_CRC"; - public const string CRC_IQC = "CRC_IQC"; public const string CRC = "CRC"; public const string PM = "PM"; + public const string IQC = "IQC"; + public const string PM_IQC = "PM_IQC"; - public const string IQC = "IQC"; + public const string CRC_IQC = "CRC_IQC"; + + + public const string SPM_CPM = "SPM_CPM"; + public const string PM_APM = "PM_APM"; + public const string PM_APM_CRC = "PM_APM_CRC"; + + + public const string PM_APM_SPM_CPM = "PM_APM_SPM_CPM"; public const string PM_APM_CRC_QC = "PM_APM_CRC_QC"; - public const string SPM_CPM = "SPMAndCPM"; } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs index fb9068fe8..064f171c4 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs @@ -340,12 +340,11 @@ namespace IRaCIS.Application.Services /// 临床试验项目Id [HttpDelete, Route("{trialId:guid}")] - [TypeFilter(typeof(TrialResourceFilter))] public async Task DeleteTrial(Guid trialId) { - var trial = (await _trialRepository.FirstOrDefaultAsync(u => u.Id == trialId)).IfNullThrowException(); + var trial = (await _trialRepository.FirstOrDefaultAsync(u => u.Id == trialId,true)).IfNullThrowException(); if (_verifyConfig.CurrentValue.OpenTrialRelationDelete )