Added backend
This commit is contained in:
148
gswi/Controllers/AuthController.cs
Normal file
148
gswi/Controllers/AuthController.cs
Normal file
@@ -0,0 +1,148 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using gswi.Interface.Services;
|
||||
using gswi.Model.DTOs;
|
||||
using gswi.Share.Common;
|
||||
|
||||
namespace gswi.Controllers
|
||||
{
|
||||
[Route("api/auth")]
|
||||
[ApiController]
|
||||
public class AuthController : ControllerBase
|
||||
{
|
||||
private readonly IAuthService _authService;
|
||||
|
||||
public AuthController(
|
||||
IAuthService authServce
|
||||
)
|
||||
{
|
||||
_authService = authServce;
|
||||
}
|
||||
|
||||
/* Data requests */
|
||||
// Get /api/auth/users
|
||||
[HttpGet("users")]
|
||||
[Authorize]
|
||||
public async Task<List<AuthUserDTO>> GetAllAuthUsers()
|
||||
{
|
||||
return await _authService.GetAllAuthUsersAsync();
|
||||
}
|
||||
|
||||
// POST /api/auth/users/get/filtered
|
||||
[HttpPost("users/get/filtered")]
|
||||
[Authorize]
|
||||
public async Task<GetFilteredAuthUsersResultDTO> GetFilteredAuthUsers(AuthUserSelectCriterion selectCriterion)
|
||||
{
|
||||
return await _authService.GetFilteredAuthUsersAsync(selectCriterion);
|
||||
}
|
||||
|
||||
// Get /api/auth/users/get/<mail>
|
||||
[HttpGet("users/get/{email}")]
|
||||
[Authorize]
|
||||
public async Task<AuthUserDTO> GetUserFromEMail(string email)
|
||||
{
|
||||
return await _authService.GetAuthUserByEMailAsync(email);
|
||||
}
|
||||
|
||||
// Get /api/auth/users/find/<mail>
|
||||
[HttpGet("users/find/{email}")]
|
||||
[Authorize]
|
||||
public async Task<AuthUserDTO> FindUserFromEMail(string email)
|
||||
{
|
||||
return await _authService.FindAuthUserByEMailAsync(email);
|
||||
}
|
||||
|
||||
/* Auth requests */
|
||||
// POST /api/auth/register
|
||||
[HttpPost("register")]
|
||||
public async Task Register(AuthUserDTO userDTO)
|
||||
{
|
||||
await _authService.AddAuthUserAsync(userDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/register/<id>
|
||||
[HttpPost("register/{id}")]
|
||||
public async Task<bool> ConfirmEMail(string id)
|
||||
{
|
||||
return await _authService.ConfirmEMail(id);
|
||||
}
|
||||
|
||||
// POST /api/auth/login
|
||||
[HttpPost("login")]
|
||||
public async Task<TokenDTO> Login(AuthUserDTO userDTO)
|
||||
{
|
||||
return await _authService.Login(userDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/forgot-password
|
||||
[HttpPost("forgot-password")]
|
||||
public async Task ForgotPassword([FromBody] string email)
|
||||
{
|
||||
await _authService.ForgotPassword(email);
|
||||
}
|
||||
|
||||
// POST /api/auth/confirm-forgot-password
|
||||
[HttpPost("confirm-forgot-password")]
|
||||
public async Task<EMailStringDTO> ConfirmForgotPassword([FromBody] string id)
|
||||
{
|
||||
return await _authService.ConfirmForgotPassword(id);
|
||||
}
|
||||
|
||||
// POST /api/auth/reset-password
|
||||
[HttpPost("reset-password")]
|
||||
public async Task ResetPassword(ResetPasswordDTO rpDTO)
|
||||
{
|
||||
await _authService.ResetPassword(rpDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/update-user
|
||||
[HttpPost("update-user")]
|
||||
public async Task UpdateUser(UpdateUserDTO updateUserDTO)
|
||||
{
|
||||
await _authService.UpdateUser(updateUserDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/update-user-as-admin
|
||||
[HttpPost("update-user-as-admin")]
|
||||
[Authorize]
|
||||
public async Task UpdateUserAsAdmin(AdminUpdateUserDTO updateUserDTO)
|
||||
{
|
||||
await _authService.UpdateUserAsAdmin(updateUserDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/refresh
|
||||
[HttpPost("refresh")]
|
||||
public async Task<TokenDTO> Refresh(TokenDTO tokenDTO)
|
||||
{
|
||||
return await _authService.Refresh(tokenDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/revoke
|
||||
[HttpPost("revoke")]
|
||||
public async Task Revoke(TokenDTO tokenDTO)
|
||||
{
|
||||
await _authService.Revoke(tokenDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/delete-user
|
||||
[HttpPost("delete-user")]
|
||||
public async Task DeleteAuthUserAsync(AuthUserDTO userDTO)
|
||||
{
|
||||
await _authService.DeleteAuthUserAsync(userDTO);
|
||||
}
|
||||
|
||||
// POST /api/auth/delete-user
|
||||
[HttpPost("delete-user-by-mail/{mail}")]
|
||||
public async Task DeleteAuthUserByEMailAsync(string mail)
|
||||
{
|
||||
await _authService.DeleteAuthUserByEMailAsync(mail);
|
||||
}
|
||||
}
|
||||
}
|
92
gswi/Controllers/GUIController.cs
Normal file
92
gswi/Controllers/GUIController.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using gswi.Configuration;
|
||||
using gswi.Model.DTOs;
|
||||
using gswi.SMTP.Interface;
|
||||
using gswi.SMTP.Model;
|
||||
|
||||
namespace gswi.Controllers
|
||||
{
|
||||
[Route("api/gui")]
|
||||
[ApiController]
|
||||
public class GUIController : ControllerBase
|
||||
{
|
||||
private APISettings _apiSettings;
|
||||
private DatabaseSettings _databaseSettings;
|
||||
private AuthentificationSettings _authSettings;
|
||||
private EMailSettings _mailSettings;
|
||||
private FrontendSettings _frontendSettings;
|
||||
private IHostEnvironment _env;
|
||||
private readonly ISMTPClient _smtpClient;
|
||||
|
||||
public GUIController(
|
||||
APISettings apiSettings,
|
||||
DatabaseSettings databaseSettings,
|
||||
AuthentificationSettings authSettings,
|
||||
EMailSettings mailSettings,
|
||||
FrontendSettings frontendSettings,
|
||||
IHostEnvironment env,
|
||||
ISMTPClient smtpClient
|
||||
)
|
||||
{
|
||||
this._apiSettings = apiSettings;
|
||||
this._databaseSettings = databaseSettings;
|
||||
this._authSettings = authSettings;
|
||||
this._mailSettings = mailSettings;
|
||||
this._frontendSettings = frontendSettings;
|
||||
this._env = env;
|
||||
this._smtpClient = smtpClient;
|
||||
}
|
||||
|
||||
// GET /api/gui/api-version
|
||||
[HttpGet("api-version")]
|
||||
public ApiVersionDTO GetApiVersion()
|
||||
{
|
||||
return new ApiVersionDTO()
|
||||
{
|
||||
Major = this._apiSettings.ApiVersion.Major,
|
||||
Minor = this._apiSettings.ApiVersion.Minor,
|
||||
Micro = this._apiSettings.ApiVersion.Micro
|
||||
};
|
||||
}
|
||||
|
||||
// GET /api/gui/settings
|
||||
[HttpGet("settings")]
|
||||
[Authorize]
|
||||
public SettingsDTO GetSettingsDTO()
|
||||
{
|
||||
return new SettingsDTO()
|
||||
{
|
||||
ApiVersion = this._apiSettings.ApiVersion.ToString(),
|
||||
ConfigPath = this._env.ContentRootPath,
|
||||
WebBaseURL = this._frontendSettings.URL,
|
||||
ApiBaseURL = "",
|
||||
|
||||
TokenExpireTime = this._authSettings.TokenExpireTime,
|
||||
RefreshTokenExpireTime = this._authSettings.RefreshTokenExpireTime,
|
||||
|
||||
MailUser = this._mailSettings.Username,
|
||||
MailPort = this._mailSettings.MailServerPort,
|
||||
MailHost = this._mailSettings.MailServerAddress,
|
||||
MailTransceiver = this._mailSettings.FromName,
|
||||
MailTransceiverAddress = this._mailSettings.FromAddress
|
||||
};
|
||||
}
|
||||
|
||||
// POST /api/gui/send-test-mail/<email>
|
||||
[HttpPost("send-test-mail/{email}")]
|
||||
[Authorize]
|
||||
public async Task SendTestMail(string email)
|
||||
{
|
||||
await _smtpClient.SendEmailAsync(new EMail()
|
||||
{
|
||||
Receiver = email,
|
||||
Subject = $"Login counter Test E-Mail",
|
||||
Message = $"Login counter Test E-Mail"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user