Commit 5259e6dc by ryun

账户密码登录相关BUG修复

parent e0d351f1
......@@ -49,7 +49,7 @@ public class AccountController : Controller
/// {
/// "logintype": 2,
/// "account": "admin",
/// "password": "1111",
/// "password": "e10adc3949ba59abbe56e057f20f883e",
/// "appname": "string",
/// "device": "web"
/// }
......@@ -75,6 +75,7 @@ public ApiResponse<JwtToken> Login([FromBody] LoginRequest request)
new Claim(JwtClaimTypes.AppName, request.AppName ?? ""),
new Claim(JwtClaimTypes.Device, request.Device ?? ""),
new Claim(JwtClaimTypes.Department, user.Department ?? ""),
new Claim(JwtClaimTypes.QuickLogin, EQuickLogin.NO.ToString()),
};
var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes);
......@@ -104,6 +105,7 @@ public ApiResponse<JwtToken> QuickLogin([FromBody] ResetPwdRequest request)
new Claim(JwtClaimTypes.AppName, request.AppName ?? ""),
new Claim(JwtClaimTypes.Device, request.Device ?? ""),
new Claim(JwtClaimTypes.Department, user.Department ?? ""),
new Claim(JwtClaimTypes.QuickLogin, EQuickLogin.YES.ToString()),
};
var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes);
......@@ -148,6 +150,16 @@ public ApiResponse SelfInfo()
{
var userid = _claim.GetUserId();
var user = _userService.GetUser(userid);
var userClaim = _claim.GetUserClaim();
// 如果用户是快捷登录的,则不需要重置密码
var quickLogin = userClaim.FirstOrDefault(t => t.Type == JwtClaimTypes.QuickLogin)?.Value ?? "";
if (quickLogin.Equals(EQuickLogin.YES.ToString(), StringComparison.OrdinalIgnoreCase))
{
user.IsInitialPassword = (int)InitialPassword.修改;
}
user.Role = _roleService.GetUserRole(user.UserID);
user.Hospital = _hospitalService.GetUserHopital(user.UserID);
......@@ -299,6 +311,16 @@ public ApiResponse SelfInfos([FromBody] UserRequest request)
user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First().Type ?? 0) : false;
else
user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First(t => t.RoleID == request.Role).Type ?? 0) : false;
var userClaim = _claim.GetUserClaim();
// 如果用户是快捷登录的,则不需要重置密码
var quickLogin = userClaim.FirstOrDefault(t => t.Type == JwtClaimTypes.QuickLogin)?.Value ?? "";
if (quickLogin.Equals(EQuickLogin.YES.ToString(), StringComparison.OrdinalIgnoreCase))
{
user.IsInitialPassword = (int)InitialPassword.修改;
}
return new ApiResponse(ResponseType.OK, user);
}
......
......@@ -10,7 +10,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>D:\publish\jx</PublishUrl>
<PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net5.0</TargetFramework>
......
......@@ -99,6 +99,7 @@ public static class JwtClaimTypes
public const string AppName = "appname";
public const string Device = "device";
public const string Department = "department";
public const string QuickLogin = "quicklogin";
}
public static class Consts
......
......@@ -15,7 +15,7 @@
{
"logintype": 2,
"account": "admin",
"password": "1111",
"password": "e10adc3949ba59abbe56e057f20f883e",
"appname": "string",
"device": "web"
}
......@@ -24,11 +24,10 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AccountController.QuickLogin(System.Int32,Performance.DtoModels.ResetPwdRequest)">
<member name="M:Performance.Api.Controllers.AccountController.QuickLogin(Performance.DtoModels.ResetPwdRequest)">
<summary>
快速登录
</summary>
<param name="userId">登录目标用户id</param>
<param name="request"></param>
<returns></returns>
</member>
......
......@@ -2469,6 +2469,21 @@
<member name="P:Performance.DtoModels.ReportRequest.AccountingUnit">
<summary> 科室 </summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.Password">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.CurrentUserId">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.TargetUserId">
<summary>
目标登录人,希望登录的账号ID
</summary>
</member>
<member name="P:Performance.DtoModels.SecondAuditRequest.SecondId">
<summary> 二次绩效Id </summary>
</member>
......@@ -2501,11 +2516,6 @@
提交类型 1 模板提交 2 其他提交
</summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.Password">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.UserListRequest.Role">
<summary>
角色
......
......@@ -92,3 +92,14 @@ public enum UnitType
[Description("行政工勤")]
行政工勤 = 12,
}
public enum InitialPassword
{
初始 = 1,
修改 = 2,
}
public enum EQuickLogin
{
YES = 1,
NO = 2,
}
......@@ -314,6 +314,7 @@ public UserResponse UpdatePwd(PasswordRequest request, int userId)
//Md5小写加密
user.Password = PwdHelper.MD5AndSalt(request.NewPwd);
user.IsInitialPassword = (int)InitialPassword.修改;
if (!_userRepository.Update(user))
throw new PerformanceException("保存失败");
......@@ -423,7 +424,7 @@ public UserResponse ResetPwd(int userId, int loginUserId, string password)
//MD5小写加密
user.Password = PwdHelper.MD5AndSalt2(AppConst.InitPwd);
user.IsInitialPassword = 1; // 初始密码强制修改
user.IsInitialPassword = (int)InitialPassword.初始; // 初始密码强制修改
if (!_userRepository.Update(user))
throw new PerformanceException("重置失败");
return _mapper.Map<UserResponse>(user);
......@@ -686,7 +687,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" },
{ "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“关键信息缺失”请补全或删除" },
});
continue;
......@@ -700,7 +701,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" },
{ "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“角色”错误,请修改或删除" },
});
}
......@@ -713,7 +714,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" },
{ "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“分配医院”错误,请修改或删除" },
});
}
......@@ -773,10 +774,11 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
UnitCode = cts?.Code ?? "",
IsDelete = 1,
Login = data.Login,
Password = data?.Password ?? PwdHelper.MD5AndSalt2(AppConst.InitPwd),
Password = PwdHelper.MD5AndSalt2(AppConst.InitPwd),
States = 1,
Mobile = data?.Mobile ?? "",
Mail = data?.Mail ?? ""
Mail = data?.Mail ?? "",
IsInitialPassword = (int)InitialPassword.初始,
};
users.Add(user);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment