update 实现修改密码. 并对一些用户填写的格式进行了验证
This commit is contained in:
@@ -2801,6 +2801,71 @@
|
||||
<param name="refreshToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.SysDictDataSeedData">
|
||||
<summary>
|
||||
系统字典值种子数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Ewide.Core.SysDictDataSeedData.HasData(Microsoft.EntityFrameworkCore.DbContext,System.Type)">
|
||||
<summary>
|
||||
种子数据
|
||||
</summary>
|
||||
<param name="dbContext"></param>
|
||||
<param name="dbContextLocator"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.SysDictTypeSeedData">
|
||||
<summary>
|
||||
系统字典类型种子数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Ewide.Core.SysDictTypeSeedData.HasData(Microsoft.EntityFrameworkCore.DbContext,System.Type)">
|
||||
<summary>
|
||||
种子数据
|
||||
</summary>
|
||||
<param name="dbContext"></param>
|
||||
<param name="dbContextLocator"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.SysMenuSeedData">
|
||||
<summary>
|
||||
系统菜单表种子数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Ewide.Core.SysMenuSeedData.HasData(Microsoft.EntityFrameworkCore.DbContext,System.Type)">
|
||||
<summary>
|
||||
种子数据
|
||||
</summary>
|
||||
<param name="dbContext"></param>
|
||||
<param name="dbContextLocator"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.SysTimerSeedData">
|
||||
<summary>
|
||||
系统任务调度表种子数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Ewide.Core.SysTimerSeedData.HasData(Microsoft.EntityFrameworkCore.DbContext,System.Type)">
|
||||
<summary>
|
||||
种子数据
|
||||
</summary>
|
||||
<param name="dbContext"></param>
|
||||
<param name="dbContextLocator"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.SysUserSeedData">
|
||||
<summary>
|
||||
系统用户表种子数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Ewide.Core.SysUserSeedData.HasData(Microsoft.EntityFrameworkCore.DbContext,System.Type)">
|
||||
<summary>
|
||||
种子数据
|
||||
</summary>
|
||||
<param name="dbContext"></param>
|
||||
<param name="dbContextLocator"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Ewide.Core.Service.AppInput">
|
||||
<summary>
|
||||
系统应用参数
|
||||
@@ -6604,11 +6669,6 @@
|
||||
用户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Id">
|
||||
<summary>
|
||||
用户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Core.Service.ChangePasswordUserInput.Password">
|
||||
<summary>
|
||||
密码
|
||||
|
||||
@@ -115,6 +115,15 @@ namespace Ewide.Core.Service
|
||||
var httpContext = App.GetService<IHttpContextAccessor>().HttpContext;
|
||||
var loginOutput = user.Adapt<LoginOutput>();
|
||||
|
||||
// 隐藏手机号/邮箱中间几位
|
||||
loginOutput.Phone = String.IsNullOrEmpty(loginOutput.Phone) ? loginOutput.Phone
|
||||
: loginOutput.Phone.Substring(0, 3) + "****" + loginOutput.Phone.Substring(7, 4);
|
||||
loginOutput.Email = String.IsNullOrEmpty(loginOutput.Email) ? loginOutput.Email
|
||||
: String.Join("@", loginOutput.Email.Split('@').Select((p, i) =>
|
||||
{
|
||||
return i == 0 ? (p.Length > 3 ? p.Substring(0, 3).PadRight(p.Length, '*') : "".PadRight(3, '*')) : p;
|
||||
}));
|
||||
|
||||
loginOutput.LastLoginTime = user.LastLoginTime = DateTime.Now;
|
||||
var ip = httpContext.Request.Headers["X-Real-IP"].FirstOrDefault();
|
||||
loginOutput.LastLoginIp = user.LastLoginIp = string.IsNullOrEmpty(user.LastLoginIp) ? httpContext.GetRemoteIpAddressToIPv4() : ip;
|
||||
@@ -153,18 +162,18 @@ namespace Ewide.Core.Service
|
||||
}
|
||||
|
||||
// 增加登录日志
|
||||
await new SysLogVis
|
||||
{
|
||||
Name = "登录",
|
||||
Success = true,
|
||||
Message = "登录成功",
|
||||
Ip = loginOutput.LastLoginIp,
|
||||
Browser = loginOutput.LastLoginBrowser,
|
||||
Os = loginOutput.LastLoginOs,
|
||||
VisType = 1,
|
||||
VisTime = loginOutput.LastLoginTime,
|
||||
Account = loginOutput.Account
|
||||
}.InsertAsync();
|
||||
//await new SysLogVis
|
||||
//{
|
||||
// Name = "登录",
|
||||
// Success = true,
|
||||
// Message = "登录成功",
|
||||
// Ip = loginOutput.LastLoginIp,
|
||||
// Browser = loginOutput.LastLoginBrowser,
|
||||
// Os = loginOutput.LastLoginOs,
|
||||
// VisType = 1,
|
||||
// VisTime = loginOutput.LastLoginTime,
|
||||
// Account = loginOutput.Account
|
||||
//}.InsertAsync();
|
||||
|
||||
return loginOutput;
|
||||
}
|
||||
|
||||
@@ -46,11 +46,13 @@ namespace Ewide.Core.Service
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
[RegularExpression(@"^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$", ErrorMessage = "邮箱格式不正确")]
|
||||
public virtual string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机
|
||||
/// </summary>
|
||||
[RegularExpression(@"^((13[0-9])|(14[5,7])|(15[^4,\\D])|(17[0,1,3,6-8])|(18[0-9])|(19[8,9])|(166))[0-9]{8}$", ErrorMessage = "手机号格式不正确")]
|
||||
public virtual string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -120,12 +122,6 @@ namespace Ewide.Core.Service
|
||||
|
||||
public class ChangePasswordUserInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户Id
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "用户Id不能为空")]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码
|
||||
/// </summary>
|
||||
|
||||
@@ -239,7 +239,7 @@ namespace Ewide.Core.Service
|
||||
nameof(SysUser.Password),
|
||||
nameof(SysUser.AdminType),
|
||||
nameof(SysUser.Status),
|
||||
// 邮箱和手机号作为可能登录的方式,不能在此处直接进行修改
|
||||
// 邮箱和手机号作为安全验证的方式,不能在此处直接进行修改
|
||||
nameof(SysUser.Phone),
|
||||
nameof(SysUser.Email)
|
||||
}, true);
|
||||
@@ -253,7 +253,7 @@ namespace Ewide.Core.Service
|
||||
[HttpPost("/sysUser/updatePwd")]
|
||||
public async Task UpdateUserPwd(ChangePasswordUserInput input)
|
||||
{
|
||||
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id);
|
||||
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == _userManager.UserId);
|
||||
if (MD5Encryption.Encrypt(input.Password) != user.Password)
|
||||
throw Oops.Oh(ErrorCode.D1004);
|
||||
if (MD5Encryption.Encrypt(input.NewPassword).Equals(user.Password))
|
||||
|
||||
Reference in New Issue
Block a user