Software_Engineering_Field_.../SiteManagementSystem(Softwa.../Controllers/UserController.cs

57 lines
1.8 KiB
C#
Raw Normal View History

2024-10-30 17:52:22 +08:00
using Microsoft.AspNetCore.Mvc;
using SiteManagementSystem_SoftwareEngineering_.Entity;
using SiteManagementSystem_SoftwareEngineering_.Extension;
using SiteManagementSystem_SoftwareEngineering_.Factory;
using SiteManagementSystem_SoftwareEngineering_.Interface;
using SiteManagementSystem_SoftwareEngineering_.Model;
namespace SiteManagementSystem_SoftwareEngineering_.Controllers
{
public class UserController : ControllerBase
{
private readonly IUserManageService _userManageService;
private readonly ITokenFactory _tokenFactory;
public UserController(IUserManageService userManageService,ITokenFactory tokenFactory)
{
_userManageService = userManageService;
_tokenFactory = tokenFactory;
}
[HttpGet("AddInitAdministratorUser")]
public IActionResult AddInitAdministratorUser()
{
_userManageService.AddUser(
new User
{
Name = "admin",
RoleName = "Administrator",
Secret = "admin"
}
);
return this.Success();
}
[HttpPost("AddUser")]
public IActionResult AddUser(UserModel user)
{
_userManageService.AddUser(new User(user));
return this.Success();
}
[HttpPost("Login")]
public IActionResult Login(UserModel model)
{
var user = new User(model);
var (result, info) = _userManageService.IsUserExist(ref user);
if (!result)
return this.Forbidden(info);
return this.Success("", new
{
AccessToken = _tokenFactory.CreateAccessToken(user),
RefreshToken = _tokenFactory.CreateRefreshToken(user)
});
}
}
}