|
|
|
@ -308,7 +308,8 @@ namespace Shentun.Peis.MyUser |
|
|
|
Surname = s.Surname, |
|
|
|
TenantId = s.TenantId, |
|
|
|
UserName = s.UserName, |
|
|
|
OrganizationUnitId = identityUserOrganizationUnitList.FirstOrDefault(m => m.UserId == s.Id).OrganizationUnitId, |
|
|
|
//OrganizationUnitId = identityUserOrganizationUnitList.FirstOrDefault(m => m.UserId == s.Id) != null? identityUserOrganizationUnitList.FirstOrDefault(m => m.UserId == s.Id).OrganizationUnitId:Guid.Empty,
|
|
|
|
OrganizationUnitId = identityUserOrganizationUnitList.FirstOrDefault(m => m.UserId == s.Id)?.OrganizationUnitId, |
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(s.Surname) |
|
|
|
|
|
|
|
}).ToList(); |
|
|
|
@ -317,358 +318,358 @@ namespace Shentun.Peis.MyUser |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取列表 根据用户类别
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpPost("api/identity/users/GetListByOperatorType")] |
|
|
|
public async Task<List<ListByOperatorTypeDto>> GetListByOperatorTypeAsync(OperatorTypeIuputDto input) |
|
|
|
/// <summary>
|
|
|
|
/// 获取列表 根据用户类别
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpPost("api/identity/users/GetListByOperatorType")] |
|
|
|
public async Task<List<ListByOperatorTypeDto>> GetListByOperatorTypeAsync(OperatorTypeIuputDto input) |
|
|
|
{ |
|
|
|
var entlist = await _identityUserRepository.GetListAsync(m => m.IsDeleted == false); |
|
|
|
var entlistDto = entlist.Where(m => input.OperatorTypes.Contains(m.GetProperty<char>("operator_type"))).Select(s => new ListByOperatorTypeDto |
|
|
|
{ |
|
|
|
var entlist = await _identityUserRepository.GetListAsync(m => m.IsDeleted == false); |
|
|
|
var entlistDto = entlist.Where(m => input.OperatorTypes.Contains(m.GetProperty<char>("operator_type"))).Select(s => new ListByOperatorTypeDto |
|
|
|
{ |
|
|
|
Id = s.Id, |
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(s.Surname), |
|
|
|
Surname = s.Surname, |
|
|
|
UserName = s.UserName |
|
|
|
}).ToList(); |
|
|
|
Id = s.Id, |
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(s.Surname), |
|
|
|
Surname = s.Surname, |
|
|
|
UserName = s.UserName |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
return entlistDto; |
|
|
|
} |
|
|
|
return entlistDto; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 修改用户信息
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
//[Authorize(PeisPermissions.Users.Edit)]
|
|
|
|
//[HttpPost("api/identity/users/update")]
|
|
|
|
[RemoteService(false)] |
|
|
|
public override async Task<IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) |
|
|
|
{ |
|
|
|
var entityDto = await base.UpdateAsync(id, input); |
|
|
|
/// <summary>
|
|
|
|
/// 修改用户信息
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
//[Authorize(PeisPermissions.Users.Edit)]
|
|
|
|
//[HttpPost("api/identity/users/update")]
|
|
|
|
[RemoteService(false)] |
|
|
|
public override async Task<IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) |
|
|
|
{ |
|
|
|
var entityDto = await base.UpdateAsync(id, input); |
|
|
|
|
|
|
|
var entity = await _identityUserRepository.GetAsync(id); |
|
|
|
await _userCache.SetAsync(id, entity); |
|
|
|
return entityDto; |
|
|
|
var entity = await _identityUserRepository.GetAsync(id); |
|
|
|
await _userCache.SetAsync(id, entity); |
|
|
|
return entityDto; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 修改
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Edit)] |
|
|
|
[HttpPost("api/identity/users/update")] |
|
|
|
public async Task<IdentityUserDto> UpdateIdentityUserAsync(Guid id, IdentityUserUpdateInputDto input) |
|
|
|
/// <summary>
|
|
|
|
/// 修改
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Edit)] |
|
|
|
[HttpPost("api/identity/users/update")] |
|
|
|
public async Task<IdentityUserDto> UpdateIdentityUserAsync(Guid id, IdentityUserUpdateInputDto input) |
|
|
|
{ |
|
|
|
|
|
|
|
#region 上传图片
|
|
|
|
string userPhoto = UploadUserPhotoAsync(new UploadUserPhotoInputDto |
|
|
|
{ |
|
|
|
PictureBaseStr = input.UserPhoto, |
|
|
|
UserId = id |
|
|
|
}); |
|
|
|
string userSign = UploadUserSignAsync(new UploadUserPhotoInputDto |
|
|
|
{ |
|
|
|
PictureBaseStr = input.UserSign, |
|
|
|
UserId = id |
|
|
|
}); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 上传图片
|
|
|
|
string userPhoto = UploadUserPhotoAsync(new UploadUserPhotoInputDto |
|
|
|
{ |
|
|
|
PictureBaseStr = input.UserPhoto, |
|
|
|
UserId = id |
|
|
|
}); |
|
|
|
string userSign = UploadUserSignAsync(new UploadUserPhotoInputDto |
|
|
|
{ |
|
|
|
PictureBaseStr = input.UserSign, |
|
|
|
UserId = id |
|
|
|
}); |
|
|
|
#endregion
|
|
|
|
input.Email = input.UserName + "@qq.com"; |
|
|
|
|
|
|
|
input.Email = input.UserName + "@qq.com"; |
|
|
|
|
|
|
|
await IdentityOptions.SetAsync(); |
|
|
|
|
|
|
|
await IdentityOptions.SetAsync(); |
|
|
|
var user = await UserManager.GetByIdAsync(id); |
|
|
|
|
|
|
|
var user = await UserManager.GetByIdAsync(id); |
|
|
|
user.SetProperty("user_sign", userSign); |
|
|
|
user.SetProperty("user_photo", userPhoto); |
|
|
|
user.SetProperty("operator_type", input.OperatorType); |
|
|
|
user.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
|
|
|
|
|
|
|
user.SetProperty("user_sign", userSign); |
|
|
|
user.SetProperty("user_photo", userPhoto); |
|
|
|
user.SetProperty("operator_type", input.OperatorType); |
|
|
|
user.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
|
|
|
(await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); |
|
|
|
|
|
|
|
(await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); |
|
|
|
await UpdateUserByInput(user, input); |
|
|
|
input.MapExtraPropertiesTo(user); |
|
|
|
|
|
|
|
await UpdateUserByInput(user, input); |
|
|
|
input.MapExtraPropertiesTo(user); |
|
|
|
(await UserManager.UpdateAsync(user)).CheckErrors(); |
|
|
|
|
|
|
|
(await UserManager.UpdateAsync(user)).CheckErrors(); |
|
|
|
if (!input.Password.IsNullOrEmpty()) |
|
|
|
{ |
|
|
|
(await UserManager.RemovePasswordAsync(user)).CheckErrors(); |
|
|
|
(await UserManager.AddPasswordAsync(user, input.Password)).CheckErrors(); |
|
|
|
} |
|
|
|
|
|
|
|
if (!input.Password.IsNullOrEmpty()) |
|
|
|
{ |
|
|
|
(await UserManager.RemovePasswordAsync(user)).CheckErrors(); |
|
|
|
(await UserManager.AddPasswordAsync(user, input.Password)).CheckErrors(); |
|
|
|
} |
|
|
|
await CurrentUnitOfWork.SaveChangesAsync(); |
|
|
|
|
|
|
|
await CurrentUnitOfWork.SaveChangesAsync(); |
|
|
|
var entityDto = ObjectMapper.Map<IdentityUser, IdentityUserDto>(user); |
|
|
|
|
|
|
|
var entityDto = ObjectMapper.Map<IdentityUser, IdentityUserDto>(user); |
|
|
|
|
|
|
|
var entity = await _identityUserRepository.GetAsync(id); |
|
|
|
await _userCache.SetAsync(id, entity); |
|
|
|
return entityDto; |
|
|
|
} |
|
|
|
|
|
|
|
var entity = await _identityUserRepository.GetAsync(id); |
|
|
|
await _userCache.SetAsync(id, entity); |
|
|
|
return entityDto; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取用户信息 根据ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
//[Authorize(PeisPermissions.Users.Default)]
|
|
|
|
//[HttpGet("api/identity/users/getinfo")]
|
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> GetAsync(Guid id) |
|
|
|
{ |
|
|
|
return base.GetAsync(id); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取用户信息 根据ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
//[Authorize(PeisPermissions.Users.Default)]
|
|
|
|
//[HttpGet("api/identity/users/getinfo")]
|
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> GetAsync(Guid id) |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///上传用户照片 图片base64
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private string UploadUserPhotoAsync(UploadUserPhotoInputDto input) |
|
|
|
{ |
|
|
|
string fileName = ""; |
|
|
|
if (input.UserId != null) |
|
|
|
{ |
|
|
|
return base.GetAsync(id); |
|
|
|
fileName = input.UserId.ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///上传用户照片 图片base64
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private string UploadUserPhotoAsync(UploadUserPhotoInputDto input) |
|
|
|
else |
|
|
|
{ |
|
|
|
string fileName = ""; |
|
|
|
if (input.UserId != null) |
|
|
|
{ |
|
|
|
fileName = input.UserId.ToString(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
fileName = Guid.NewGuid().ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
string imgurl = $"UserPhoto/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}"; |
|
|
|
var isupload = ImageHelper.Base64StrToImage(input.PictureBaseStr, imgurl); |
|
|
|
if (!string.IsNullOrEmpty(isupload)) |
|
|
|
return isupload; |
|
|
|
else |
|
|
|
return ""; |
|
|
|
fileName = Guid.NewGuid().ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
string imgurl = $"UserPhoto/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}"; |
|
|
|
var isupload = ImageHelper.Base64StrToImage(input.PictureBaseStr, imgurl); |
|
|
|
if (!string.IsNullOrEmpty(isupload)) |
|
|
|
return isupload; |
|
|
|
else |
|
|
|
return ""; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 上传用户签名 图片base64
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private string UploadUserSignAsync(UploadUserPhotoInputDto input) |
|
|
|
{ |
|
|
|
string fileName = ""; |
|
|
|
if (input.UserId != null) |
|
|
|
{ |
|
|
|
fileName = input.UserId.ToString(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
fileName = Guid.NewGuid().ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
string imgurl = $"UserSign/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}"; |
|
|
|
var isupload = ImageHelper.Base64StrToImage(input.PictureBaseStr, imgurl); |
|
|
|
if (!string.IsNullOrEmpty(isupload)) |
|
|
|
return isupload; |
|
|
|
else |
|
|
|
return ""; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取用户信息 根据ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getinfo")] |
|
|
|
public async Task<IdentityUserWithExtensionDto> GetWithExtensionAsync(Guid id) |
|
|
|
/// <summary>
|
|
|
|
/// 上传用户签名 图片base64
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private string UploadUserSignAsync(UploadUserPhotoInputDto input) |
|
|
|
{ |
|
|
|
string fileName = ""; |
|
|
|
if (input.UserId != null) |
|
|
|
{ |
|
|
|
var ent = await UserManager.GetByIdAsync(id); |
|
|
|
var userSign = !string.IsNullOrWhiteSpace(ent.GetProperty<string>("user_sign")) ? ImageHelper.GetImageBase64StringAsync(ent.GetProperty<string>("user_sign")) : ""; |
|
|
|
var userPhoto = !string.IsNullOrWhiteSpace(ent.GetProperty<string>("user_photo")) ? ImageHelper.GetImageBase64StringAsync(ent.GetProperty<string>("user_photo")) : ""; |
|
|
|
var operatorType = ent.GetProperty<char>("operator_type"); |
|
|
|
var entDto = ObjectMapper.Map<IdentityUser, IdentityUserWithExtensionDto>(ent); |
|
|
|
entDto.UserPhoto = userPhoto; |
|
|
|
entDto.UserSign = userSign; |
|
|
|
entDto.OperatorType = operatorType; |
|
|
|
return entDto; |
|
|
|
fileName = input.UserId.ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 给用户绑定角色
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id">用户ID</param>
|
|
|
|
/// <param name="input">角色集合</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Edit)] |
|
|
|
[HttpPost("api/identity/users/updateroles")] |
|
|
|
public override Task UpdateRolesAsync(Guid id, IdentityUserUpdateRolesDto input) |
|
|
|
else |
|
|
|
{ |
|
|
|
return base.UpdateRolesAsync(id, input); |
|
|
|
fileName = Guid.NewGuid().ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
string imgurl = $"UserSign/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{fileName}"; |
|
|
|
var isupload = ImageHelper.Base64StrToImage(input.PictureBaseStr, imgurl); |
|
|
|
if (!string.IsNullOrEmpty(isupload)) |
|
|
|
return isupload; |
|
|
|
else |
|
|
|
return ""; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取用户的角色信息 根据用户ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id">用户ID</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getroles")] |
|
|
|
public override Task<ListResultDto<IdentityRoleDto>> GetRolesAsync(Guid id) |
|
|
|
{ |
|
|
|
return base.GetRolesAsync(id); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取用户信息 根据ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getinfo")] |
|
|
|
public async Task<IdentityUserWithExtensionDto> GetWithExtensionAsync(Guid id) |
|
|
|
{ |
|
|
|
var ent = await UserManager.GetByIdAsync(id); |
|
|
|
var userSign = !string.IsNullOrWhiteSpace(ent.GetProperty<string>("user_sign")) ? ImageHelper.GetImageBase64StringAsync(ent.GetProperty<string>("user_sign")) : ""; |
|
|
|
var userPhoto = !string.IsNullOrWhiteSpace(ent.GetProperty<string>("user_photo")) ? ImageHelper.GetImageBase64StringAsync(ent.GetProperty<string>("user_photo")) : ""; |
|
|
|
var operatorType = ent.GetProperty<char>("operator_type"); |
|
|
|
var entDto = ObjectMapper.Map<IdentityUser, IdentityUserWithExtensionDto>(ent); |
|
|
|
entDto.UserPhoto = userPhoto; |
|
|
|
entDto.UserSign = userSign; |
|
|
|
entDto.OperatorType = operatorType; |
|
|
|
return entDto; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取当前登录用户的角色信息
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getassignableroles")] |
|
|
|
public override Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync() |
|
|
|
{ |
|
|
|
return base.GetAssignableRolesAsync(); |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 给用户绑定角色
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id">用户ID</param>
|
|
|
|
/// <param name="input">角色集合</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Edit)] |
|
|
|
[HttpPost("api/identity/users/updateroles")] |
|
|
|
public override Task UpdateRolesAsync(Guid id, IdentityUserUpdateRolesDto input) |
|
|
|
{ |
|
|
|
return base.UpdateRolesAsync(id, input); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 暂未用到
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="userName"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> FindByUsernameAsync(string userName) |
|
|
|
{ |
|
|
|
return base.FindByUsernameAsync(userName); |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取用户的角色信息 根据用户ID
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="id">用户ID</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getroles")] |
|
|
|
public override Task<ListResultDto<IdentityRoleDto>> GetRolesAsync(Guid id) |
|
|
|
{ |
|
|
|
return base.GetRolesAsync(id); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 暂未用到
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="email"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> FindByEmailAsync(string email) |
|
|
|
{ |
|
|
|
return base.FindByEmailAsync(email); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 用户登录
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/identity/users/login")] |
|
|
|
public async Task<UserLoginDto> UserLogin(UserLoginRequestDto input) |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// 获取当前登录用户的角色信息
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[HttpGet("api/identity/users/getassignableroles")] |
|
|
|
public override Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync() |
|
|
|
{ |
|
|
|
return base.GetAssignableRolesAsync(); |
|
|
|
} |
|
|
|
|
|
|
|
UserLoginDto msg; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 暂未用到
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="userName"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> FindByUsernameAsync(string userName) |
|
|
|
{ |
|
|
|
return base.FindByUsernameAsync(userName); |
|
|
|
} |
|
|
|
|
|
|
|
var user = await _userManager.FindByNameAsync(input.UserName); |
|
|
|
if (user != null) |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// 暂未用到
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="email"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[Authorize(PeisPermissions.Users.Default)] |
|
|
|
[RemoteService(false)] |
|
|
|
public override Task<IdentityUserDto> FindByEmailAsync(string email) |
|
|
|
{ |
|
|
|
return base.FindByEmailAsync(email); |
|
|
|
} |
|
|
|
|
|
|
|
var verifyResult = await _userManager.CheckPasswordAsync(user, input.PassWord); |
|
|
|
if (verifyResult) |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// 用户登录
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/identity/users/login")] |
|
|
|
public async Task<UserLoginDto> UserLogin(UserLoginRequestDto input) |
|
|
|
{ |
|
|
|
|
|
|
|
var PeisId = await _peisOrganizationUnitManager.GetPeisIdAsync(user.Id); |
|
|
|
UserLoginDto msg; |
|
|
|
|
|
|
|
if (user.IsActive == false) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("账号已被禁用"); |
|
|
|
} |
|
|
|
|
|
|
|
if (user.LockoutEnabled == true) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("账号已被锁定"); |
|
|
|
} |
|
|
|
var user = await _userManager.FindByNameAsync(input.UserName); |
|
|
|
if (user != null) |
|
|
|
{ |
|
|
|
|
|
|
|
TokenResponse token = await RequestAuthServerLoginByPasswordAsync(input.UserName, input.PassWord); |
|
|
|
var verifyResult = await _userManager.CheckPasswordAsync(user, input.PassWord); |
|
|
|
if (verifyResult) |
|
|
|
{ |
|
|
|
|
|
|
|
if (token.HttpResponse != null && token.HttpResponse.StatusCode == HttpStatusCode.OK) |
|
|
|
{ |
|
|
|
msg = new UserLoginDto |
|
|
|
{ |
|
|
|
//code = 1,
|
|
|
|
//msg = "登录成功",
|
|
|
|
peisid = PeisId, |
|
|
|
UserId = user.Id, |
|
|
|
OperatorType = user.GetProperty<char>("operator_type"), |
|
|
|
access_token = token.AccessToken, |
|
|
|
expires_in = token.ExpiresIn, |
|
|
|
refresh_token = token.RefreshToken, |
|
|
|
token_type = token.TokenType |
|
|
|
}; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
//msg = new UserLoginDto { code = 1, msg = "登录成功", peisid = PeisId };
|
|
|
|
throw new UserFriendlyException("获取token失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
var PeisId = await _peisOrganizationUnitManager.GetPeisIdAsync(user.Id); |
|
|
|
|
|
|
|
if (user.IsActive == false) |
|
|
|
{ |
|
|
|
//msg = new UserLoginDto { code = -1, msg = "密码不正确" };
|
|
|
|
throw new UserFriendlyException("密码不正确"); |
|
|
|
throw new UserFriendlyException("账号已被禁用"); |
|
|
|
} |
|
|
|
|
|
|
|
if (user.LockoutEnabled == true) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("账号已被锁定"); |
|
|
|
} |
|
|
|
|
|
|
|
TokenResponse token = await RequestAuthServerLoginByPasswordAsync(input.UserName, input.PassWord); |
|
|
|
|
|
|
|
#region MyRegion
|
|
|
|
//var verifyResult = _passwordHasher.VerifyHashedPassword(user, user.PasswordHash, PassWord);
|
|
|
|
|
|
|
|
//if (verifyResult == PasswordVerificationResult.Success)
|
|
|
|
//{
|
|
|
|
// return "1";
|
|
|
|
//}
|
|
|
|
//else
|
|
|
|
//{
|
|
|
|
// throw new UserFriendlyException("密码错误");
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
if (token.HttpResponse != null && token.HttpResponse.StatusCode == HttpStatusCode.OK) |
|
|
|
{ |
|
|
|
msg = new UserLoginDto |
|
|
|
{ |
|
|
|
//code = 1,
|
|
|
|
//msg = "登录成功",
|
|
|
|
peisid = PeisId, |
|
|
|
UserId = user.Id, |
|
|
|
OperatorType = user.GetProperty<char>("operator_type"), |
|
|
|
access_token = token.AccessToken, |
|
|
|
expires_in = token.ExpiresIn, |
|
|
|
refresh_token = token.RefreshToken, |
|
|
|
token_type = token.TokenType |
|
|
|
}; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
//msg = new UserLoginDto { code = 1, msg = "登录成功", peisid = PeisId };
|
|
|
|
throw new UserFriendlyException("获取token失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
//msg = new UserLoginDto { code = -1, msg = "用户不存在" };
|
|
|
|
throw new UserFriendlyException("用户不存在"); |
|
|
|
//msg = new UserLoginDto { code = -1, msg = "密码不正确" };
|
|
|
|
throw new UserFriendlyException("密码不正确"); |
|
|
|
} |
|
|
|
|
|
|
|
return msg; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#region MyRegion
|
|
|
|
//var verifyResult = _passwordHasher.VerifyHashedPassword(user, user.PasswordHash, PassWord);
|
|
|
|
|
|
|
|
//if (verifyResult == PasswordVerificationResult.Success)
|
|
|
|
//{
|
|
|
|
// return "1";
|
|
|
|
//}
|
|
|
|
//else
|
|
|
|
//{
|
|
|
|
// throw new UserFriendlyException("密码错误");
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
protected virtual async Task<TokenResponse> RequestAuthServerLoginByPasswordAsync(string username, string password) |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var client = _httpClientFactory.CreateClient(); |
|
|
|
//msg = new UserLoginDto { code = -1, msg = "用户不存在" };
|
|
|
|
throw new UserFriendlyException("用户不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
var request = new PasswordTokenRequest |
|
|
|
{ |
|
|
|
Address = _configuration["AuthServer:Authority"] + "/connect/token", |
|
|
|
//GrantType = "password",
|
|
|
|
//UserName = username,
|
|
|
|
//Password = password,
|
|
|
|
//Scope = "Peis offline_access",
|
|
|
|
//ClientId = "Peis_App",
|
|
|
|
Parameters = |
|
|
|
return msg; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected virtual async Task<TokenResponse> RequestAuthServerLoginByPasswordAsync(string username, string password) |
|
|
|
{ |
|
|
|
var client = _httpClientFactory.CreateClient(); |
|
|
|
|
|
|
|
var request = new PasswordTokenRequest |
|
|
|
{ |
|
|
|
Address = _configuration["AuthServer:Authority"] + "/connect/token", |
|
|
|
//GrantType = "password",
|
|
|
|
//UserName = username,
|
|
|
|
//Password = password,
|
|
|
|
//Scope = "Peis offline_access",
|
|
|
|
//ClientId = "Peis_App",
|
|
|
|
Parameters = |
|
|
|
{ |
|
|
|
{"username",username}, |
|
|
|
{"password",password }, |
|
|
|
@ -676,12 +677,12 @@ namespace Shentun.Peis.MyUser |
|
|
|
{"client_id","Peis_App" }, |
|
|
|
{"grant_type","password" } |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
//request.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
}; |
|
|
|
|
|
|
|
return await client.RequestTokenAsync(request); |
|
|
|
} |
|
|
|
//request.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
|
|
|
|
return await client.RequestTokenAsync(request); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |