链接点击一次后端跳转

This commit is contained in:
2022-05-30 11:28:01 +08:00
parent 144f53e809
commit a261605bde
7 changed files with 49 additions and 37 deletions
@@ -390,7 +390,6 @@
传入参数记录ID
</summary>
<param name="SignInfo"></param>
<param name="response"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.Inspection.InspectionService.CompletedSign(System.Guid,IRaCIS.Core.Infrastructure.Extention.IResponseOutput)">
@@ -971,7 +970,6 @@
发送验证码
</summary>
<param name="userInfo"></param>
<param name="_mailVerificationService"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.VerifySendCode(IRaCIS.Core.Application.Contracts.LoginDto,IRaCIS.Core.Application.Auth.ITokenService)">
@@ -2354,13 +2352,6 @@
<member name="M:IRaCIS.Application.Services.UserService.SendVerificationCode(System.String)">
<summary>发送验证码 修改邮箱(已经登陆修改) New </summary>
</member>
<member name="M:IRaCIS.Application.Services.UserService.VerifyCanInitSetUserNameAndPwd(System.Guid)">
<summary>
Result 为true 的时候 允许提交设置
</summary>
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.UserService.ResetPassword(System.Guid)">
<summary>
重置密码为 默认密码
@@ -18,7 +18,7 @@ namespace IRaCIS.Application.Services
Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode);
Task AddUserSendEmailAsync(Guid userId, string routeUrl);
Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl);
Task AdminResetPwdSendEmailAsync(Guid userId);
@@ -253,8 +253,9 @@ namespace IRaCIS.Application.Services
//添加用户发送邮件
public async Task AddUserSendEmailAsync(Guid userId, string routeUrl)
public async Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl)
{
var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).Include(t => t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException();
@@ -281,6 +282,10 @@ namespace IRaCIS.Application.Services
await _userRepository.BatchUpdateNoTrackingAsync(t => t.Id == sysUserInfo.Id, u => new User() { EmailToken = token });
routeUrl = routeUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token;
var domain=baseUrl.Substring(0,baseUrl.IndexOf("/login"));
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
{
@@ -291,7 +296,7 @@ namespace IRaCIS.Application.Services
sysUserInfo.FullName,
sysUserInfo.UserName,
sysUserInfo.UserTypeRole.UserTypeShortName,
routeUrl
redirectUrl
);
}
@@ -389,6 +394,10 @@ namespace IRaCIS.Application.Services
var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token;
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
builder.HtmlBody = string.Format(templateInfo,
sysUserInfo.FullName,
trialInfo.ExperimentName,
@@ -396,7 +405,7 @@ namespace IRaCIS.Application.Services
trialInfo.TrialCode,
sysUserInfo.UserName,
sysUserInfo.UserTypeRole.UserTypeShortName,
sysUserInfo.IsFirstAdd ? routeUrl : baseUrl
sysUserInfo.IsFirstAdd ? redirectUrl : baseUrl
);
}
@@ -443,8 +452,12 @@ namespace IRaCIS.Application.Services
{
var templateInfo = SourceReader.ReadToEnd();
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token;
var redirectUrl = $"{domain}/api/User/UserRedirect?url={ System.Web.HttpUtility.UrlEncode(routeUrl) }";
builder.HtmlBody = string.Format(templateInfo,
sysUserInfo.FullName,
trialInfo.ExperimentName,
@@ -452,7 +465,7 @@ namespace IRaCIS.Application.Services
trialInfo.TrialCode,
sysUserInfo.UserName,
sysUserInfo.UserTypeRole.UserTypeShortName,
sysUserInfo.IsFirstAdd ? routeUrl : baseUrl
sysUserInfo.IsFirstAdd ? redirectUrl : baseUrl
);
}
@@ -158,7 +158,6 @@ namespace IRaCIS.Core.Application.Service.Inspection
/// 传入参数记录ID
/// </summary>
/// <param name="SignInfo"></param>
/// <param name="response"></param>
/// <returns></returns>
public async Task<Guid> RecordSing(SignDTO SignInfo)
{
@@ -159,7 +159,7 @@ namespace IRaCIS.Application.Contracts
public class UserCommand : UserInfo
{
public string BaseUrl { get; set; } = string.Empty;
public string RouteUrl { get; set; } = string.Empty;
//public string FirstName { get; set; }
@@ -199,26 +199,23 @@ namespace IRaCIS.Application.Services
return ResponseOutput.Ok();
}
/// <summary>
/// Result 为true 的时候 认为链接没有失效
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IResponseOutput> VerifyCanInitSetUserNameAndPwd(Guid userId)
{
return ResponseOutput.Ok(await _userRepository.AnyAsync(t => t.Id == userId && t.EmailToken == _userInfo.UserToken && t.IsFirstAdd));
}
///// <summary>
///// Result 为true 的时候 认为链接没有失效
///// </summary>
///// <param name="userId"></param>
///// <returns></returns>
//[HttpGet]
//public async Task<IResponseOutput> VerifyCanInitSetUserNameAndPwd(Guid userId)
//{
// return ResponseOutput.Ok(await _userRepository.AnyAsync(t => t.Id == userId && t.EmailToken == _userInfo.UserToken && t.IsFirstAdd));
//}
[HttpGet]
public async Task<IResponseOutput> InitSetUserNameAndPwd(Guid userId, string newUserName, string newPWd)
{
if (!await _userRepository.AnyAsync(t => t.Id == userId && t.EmailToken==_userInfo.UserToken && t.IsFirstAdd))
{
return ResponseOutput.NotOk("您的初始化链接已过期");
}
await VerifyUserPwdAsync(userId, newPWd);
@@ -489,7 +486,7 @@ namespace IRaCIS.Application.Services
var success = await _userRepository.SaveChangesAsync();
await _mailVerificationService.AddUserSendEmailAsync(saveItem.Id, userAddModel.RouteUrl);
await _mailVerificationService.AddUserSendEmailAsync(saveItem.Id, userAddModel.BaseUrl, userAddModel.RouteUrl);
return ResponseOutput.Result(success, new UserAddedReturnDTO { Id = saveItem.Id, UserCode = saveItem.UserCode });
@@ -52,7 +52,6 @@ namespace IRaCIS.Core.Application.Contracts
/// 发送验证码
/// </summary>
/// <param name="userInfo"></param>
/// <param name="_mailVerificationService"></param>
/// <returns></returns>
[AllowAnonymous]
public async Task<IResponseOutput> SendVerifyCode(SiteSurveySendVerifyCode userInfo)