|
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Caching.Memory;
|
using System;
|
using System.Linq.Expressions;
|
using System.Threading.Tasks;
|
using WIDESEA_Core.Configuration;
|
using WIDESEA_Core.Controllers.Basic;
|
using WIDESEA_Core.DBManager;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_Core.Extensions;
|
using WIDESEA_Core.Filters;
|
using WIDESEA_Core.Infrastructure;
|
using WIDESEA_Core.ManageUser;
|
using WIDESEA_Core.ObjectActionValidator;
|
using WIDESEA_Core.Utilities;
|
using WIDESEA_Entity.AttributeManager;
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Services.IRepositories;
|
using WIDESEA_Services.IServices;
|
using WIDESEA_Services.Repositories;
|
|
namespace WIDESEA_Services.Controllers
|
{
|
[Route("api/User")]
|
public partial class Sys_UserController
|
{
|
[HttpPost, HttpGet, Route("login"), AllowAnonymous]
|
[ObjectModelValidatorFilter(ValidatorModel.Login)]
|
public async Task<IActionResult> Login([FromBody]LoginInfo loginInfo)
|
{
|
return Json(await Service.Login(loginInfo));
|
}
|
|
[HttpPost, Route("replaceToken"), AllowAnonymous]
|
public async Task<IActionResult> ReplaceToken()
|
{
|
return Json(await Service.ReplaceToken());
|
}
|
|
[HttpPost, Route("modifyPwd")]
|
[ApiActionPermission]
|
//通过ObjectGeneralValidatorFilter校验参数,不再需要if esle判断OldPwd与NewPwd参数
|
[ObjectGeneralValidatorFilter(ValidatorGeneral.OldPwd, ValidatorGeneral.NewPwd)]
|
public async Task<IActionResult> ModifyPwd(string oldPwd, string newPwd)
|
{
|
return Json(await Service.ModifyPwd(oldPwd, newPwd));
|
}
|
|
[HttpPost, Route("getCurrentUserInfo")]
|
public async Task<IActionResult> GetCurrentUserInfo()
|
{
|
return Json(await Service.GetCurrentUserInfo());
|
}
|
|
//只能超级管理员才能修改密码
|
//2020.08.01增加修改密码功能
|
[HttpPost, Route("modifyUserPwd"), ApiActionPermission(ActionRolePermission.SuperAdmin)]
|
public IActionResult ModifyUserPwd(string password, string userName)
|
{
|
WebResponseContent webResponse = new WebResponseContent();
|
if (string.IsNullOrEmpty(password) || string.IsNullOrEmpty(userName))
|
{
|
return Json(webResponse.Error("参数不完整"));
|
}
|
if (password.Length < 6) return Json(webResponse.Error("密码长度不能少于6位"));
|
|
ISys_UserRepository repository = Sys_UserRepository.Instance;
|
Sys_User user = repository.FindFirst(x => x.UserName == userName);
|
if (user == null)
|
{
|
return Json(webResponse.Error("用户不存在"));
|
}
|
user.UserPwd = password.EncryptDES(AppSetting.Secret.User);
|
repository.Update(user, x => new { x.UserPwd }, true);
|
//如果用户在线,强制下线
|
UserContext.Current.LogOut(user.User_Id);
|
return Json(webResponse.OK("密码修改成功"));
|
}
|
|
/// <summary>
|
/// 2020.06.15增加登陆验证码
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet, Route("getVierificationCode"), AllowAnonymous]
|
public IActionResult GetVierificationCode()
|
{
|
string code = /*VierificationCode.RandomText();*/"1234";
|
var data = new
|
{
|
img = VierificationCode.CreateBase64Imgage(code),
|
uuid = Guid.NewGuid()
|
};
|
HttpContext.GetService<IMemoryCache>().Set(data.uuid.ToString(), code, new TimeSpan(0, 5, 0));
|
return Json(data);
|
}
|
}
|
}
|