@@ -58,7 +58,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// <returns></returns>
|
||||
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
[UnitOfWork]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialExternalUser(TrialExternalUserAddAndSendEmail addOrEditTrialExternalUser)
|
||||
{
|
||||
|
||||
@@ -104,6 +104,15 @@ namespace IRaCIS.Core.Application.Service
|
||||
addEntity.IsSystemUser = true;
|
||||
addEntity.SystemUserId = existSysUser.Id;
|
||||
|
||||
if (!existSysUser.UserRoleList.Any(t => t.UserTypeId == addOrEditTrialExternalUser.UserTypeId))
|
||||
{
|
||||
var addRole = _mapper.Map<UserRole>(existSysUser);
|
||||
addRole.UserTypeEnum = _userTypeRepository.Where(t => t.Id == addOrEditTrialExternalUser.UserTypeId).Select(t => t.UserTypeEnum).First();
|
||||
addRole.UserTypeId = addOrEditTrialExternalUser.UserTypeId;
|
||||
addRole.IsUserRoleDisabled = true;
|
||||
existSysUser.UserRoleList.Add(addRole);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -241,7 +250,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
//New 省掉邀请流程
|
||||
[HttpPost]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> SendExternalUserJoinEmail(TrialExternalUserSendEmail sendEmail)
|
||||
{
|
||||
@@ -254,9 +263,9 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
var findTrialUser = await _trialIdentityUserRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.IdentityUserId == userId, true);
|
||||
|
||||
var findUserRoleId = await _identityUserRepository.Where(t => t.Id == userId,true).SelectMany(t => t.UserRoleList).Where(t => t.UserTypeId == userTypeId).Select(t => t.Id).FirstOrDefaultAsync();
|
||||
var findUserRoleId = await _identityUserRepository.Where(t => t.Id == userId, true).SelectMany(t => t.UserRoleList).Where(t => t.UserTypeId == userTypeId).Select(t => t.Id).FirstOrDefaultAsync();
|
||||
|
||||
if (findTrialUser == null || findUserRoleId==Guid.Empty)
|
||||
if (findTrialUser == null || findUserRoleId == Guid.Empty)
|
||||
{
|
||||
return ResponseOutput.NotOk("database dirty data ");
|
||||
}
|
||||
@@ -264,10 +273,10 @@ namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
var findTrialUserRole = await _trialUserRoleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.UserRole.IdentityUserId == userId && t.UserRole.UserTypeId == userTypeId, true);
|
||||
|
||||
if (findTrialUserRole==null)
|
||||
if (findTrialUserRole == null)
|
||||
{
|
||||
|
||||
await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, TrialUserId=findTrialUser.Id, UserId = findUserRoleId, JoinTime = DateTime.Now });
|
||||
await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, TrialUserId = findTrialUser.Id, UserId = findUserRoleId, JoinTime = DateTime.Now });
|
||||
|
||||
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => t.IdentityUserId == userId, u => new UserRole() { Status = UserStateEnum.Enable });
|
||||
|
||||
@@ -280,9 +289,9 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
}
|
||||
|
||||
foreach (var item in sendEmail.SendUsers.GroupBy(t=>t.SystemUserId))
|
||||
foreach (var item in sendEmail.SendUsers.GroupBy(t => t.SystemUserId))
|
||||
{
|
||||
await _mailVerificationService.ExternalUserJoinEmail(trialId, item.Key, sendEmail.BaseUrl, sendEmail.RouteUrl);
|
||||
await _mailVerificationService.ExternalUserJoinEmail(trialId, item.Key, sendEmail.BaseUrl, sendEmail.RouteUrl);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user