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)
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|