57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
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)
|
|
});
|
|
}
|
|
}
|
|
}
|