From c5412082906867ad09aafc6233925719bfaebbb5 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 2 Jun 2022 15:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Authorization/AuthorizationPolicySetup.cs | 13 ++++++++----- .../BusinessFilter/TrialResourceFilter.cs | 5 ++--- .../Service/Common/MailService.cs | 2 +- .../Service/SiteSurvey/TrialSiteSurveyService.cs | 5 +++-- IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs | 2 +- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs b/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs index 39def344c..f0a455941 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/Authorization/AuthorizationPolicySetup.cs @@ -34,11 +34,7 @@ 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 => { @@ -66,6 +62,13 @@ namespace IRaCIS.Core.API policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.SPM).ToString(), ((int)UserTypeEnum.CPM).ToString()); }); + options.AddPolicy(IRaCISPolicy.PM_APM_SPM_CPM, policyBuilder => + { + policyBuilder.RequireClaim("userTypeEnumInt", ((int)UserTypeEnum.ProjectManager).ToString(), ((int)UserTypeEnum.APM).ToString(),((int)UserTypeEnum.SPM).ToString(), ((int)UserTypeEnum.CPM).ToString()); + }); + + + }); } diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs index 72926f151..4fca5c213 100644 --- a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs +++ b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs @@ -92,8 +92,8 @@ namespace IRaCIS.Core.Application.Filter var trialStatusStr = cacheResultDic[trialIdStr]; - - // 这里是统一拦截 项目有关的操作允许情况(特殊的地方,比如项目配置(有的在多种状态(初始化,ongoing)都可以操作,有的仅仅在Initializing)还有 项目添加和更新,不走这里,特殊处理,不然在这里显得很乱,判断是哪个接口) + await next.Invoke(); + // 这里是统一拦截 项目有关的操作允许情况(特殊的地方,比如项目配置(有的在多种状态(初始化,ongoing)都可以操作,有的仅仅在Initializing)还有 项目添加和更新,不走这里,特殊处理,不然在这里显得很乱,判断是哪个接口) if (trialStatusStr.Value == StaticData.TrialState.TrialOngoing) { @@ -101,7 +101,6 @@ namespace IRaCIS.Core.Application.Filter } // 项目停止、或者完成 不允许操作 - else { context.Result = new JsonResult(ResponseOutput.NotOk("只有项目状态处于进行中时,才允许进行操作")); diff --git a/IRaCIS.Core.Application/Service/Common/MailService.cs b/IRaCIS.Core.Application/Service/Common/MailService.cs index dd86a8869..9714d12de 100644 --- a/IRaCIS.Core.Application/Service/Common/MailService.cs +++ b/IRaCIS.Core.Application/Service/Common/MailService.cs @@ -357,7 +357,7 @@ namespace IRaCIS.Application.Services public async Task SiteSurveyUserJoinEmail(Guid trialId, Guid userId, string baseUrl, string rootUrl) { - var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).FirstOrDefaultAsync()).IfNullThrowException(); + var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).Include(t => t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException(); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 8c968f014..ea62095dc 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -697,7 +697,6 @@ namespace IRaCIS.Core.Application.Contracts await GenerateAccountAsync(needGenerateList); await SendSiteSurveyUserJoinEmail(new TrialSiteUserSurveyJoinCommand() { TrialId = trialId, TrialSiteSurveyId = trialSiteSurveyId, RouteUrl = siteSurvyeSubmit.RouteUrl, BaseUrl = siteSurvyeSubmit.BaseUrl, UserList = needGenerateList }); - await _trialSiteSurveyRepository.UpdatePartialFromQueryAsync(t => t.Id == trialSiteSurveyId && t.State == TrialSiteSurveyEnum.SPMApproved, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.PMCreatedAndLock, ReviewerUserId = _userInfo.Id, ReviewerTime = DateTime.Now }); } await _trialSiteSurveyRepository.SaveChangesAsync(); @@ -783,8 +782,10 @@ namespace IRaCIS.Core.Application.Contracts await _trialSiteUserSurveyRepository.UpdatePartialFromQueryAsync(t => t.Id == userInfo.Id, u => new TrialSiteUserSurvey() { IsJoin = true }); - await _userRepository.SaveChangesAsync(); } + await _trialSiteSurveyRepository.UpdatePartialFromQueryAsync(t => t.Id == trialSiteSurvey.Id && t.State == TrialSiteSurveyEnum.SPMApproved, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.PMCreatedAndLock, ReviewerUserId = _userInfo.Id, ReviewerTime = DateTime.Now }); + await _userRepository.SaveChangesAsync(); + } return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs index 50ab3f8a0..f1f5733f6 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs @@ -10,7 +10,7 @@ using System.Collections.Generic; namespace IRaCIS.Core.Domain.Models { /// - ///阅片期设置 + ///阅片期设置 只会设计到所有人 或者某个Site 针对全局 /// [Table("ReadingPeriodSet")] public class ReadingPeriodSet : Entity, IAuditAdd