#1 : Modification droit et ip Keycloak.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
namespace Webzine.WebApplication.Areas.Administration.Controllers;
|
namespace Webzine.WebApplication.Areas.Administration.Controllers;
|
||||||
|
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
@@ -38,6 +39,7 @@ public class ArtisteController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="page">Le numéro de page pour la pagination des artistes (par défaut à 0).</param>
|
/// <param name="page">Le numéro de page pour la pagination des artistes (par défaut à 0).</param>
|
||||||
/// <returns>Redirection.</returns>
|
/// <returns>Redirection.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Index(int page = 0)
|
public IActionResult Index(int page = 0)
|
||||||
{
|
{
|
||||||
int artistes_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
int artistes_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
||||||
@@ -93,6 +95,7 @@ public class ArtisteController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">L'identifiant de l'artiste à modifier. </param>
|
/// <param name="id">L'identifiant de l'artiste à modifier. </param>
|
||||||
/// <returns>Redirection.</returns>
|
/// <returns>Redirection.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Edit(int id)
|
public IActionResult Edit(int id)
|
||||||
{
|
{
|
||||||
var artiste = this.artisteRepository.Find(id);
|
var artiste = this.artisteRepository.Find(id);
|
||||||
@@ -110,6 +113,7 @@ public class ArtisteController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model">Paramètre d'un artiste.</param>
|
/// <param name="model">Paramètre d'un artiste.</param>
|
||||||
/// <returns>Redirection sur Index.</returns>
|
/// <returns>Redirection sur Index.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public IActionResult Edit(ArtisteEditViewModel model)
|
public IActionResult Edit(ArtisteEditViewModel model)
|
||||||
{
|
{
|
||||||
@@ -133,6 +137,7 @@ public class ArtisteController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">L'identifiant de l'artiste à supprimer. </param>
|
/// <param name="id">L'identifiant de l'artiste à supprimer. </param>
|
||||||
/// <returns>Redirection.</returns>
|
/// <returns>Redirection.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Delete(int id)
|
public IActionResult Delete(int id)
|
||||||
{
|
{
|
||||||
var artiste = this.artisteRepository.Find(id);
|
var artiste = this.artisteRepository.Find(id);
|
||||||
@@ -156,6 +161,7 @@ public class ArtisteController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model">L'artiste à supprimer.</param>
|
/// <param name="model">L'artiste à supprimer.</param>
|
||||||
/// <returns>Redirige vers la page d'index d'admin artiste.</returns>
|
/// <returns>Redirige vers la page d'index d'admin artiste.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public IActionResult Delete(AdminArtisteForm model)
|
public IActionResult Delete(AdminArtisteForm model)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
@@ -40,6 +41,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="page">Le numéro de page pour la pagination des commentaires (par défaut à 0).</param>
|
/// <param name="page">Le numéro de page pour la pagination des commentaires (par défaut à 0).</param>
|
||||||
/// <returns>La vue Index avec le ViewModel contenant la liste des commentaires.</returns>
|
/// <returns>La vue Index avec le ViewModel contenant la liste des commentaires.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Index(int page = 0)
|
public IActionResult Index(int page = 0)
|
||||||
{
|
{
|
||||||
int commentaires_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
int commentaires_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
@@ -40,6 +41,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="page">Le numero de page pour la pagination des styles (par defaut a 0).</param>
|
/// <param name="page">Le numero de page pour la pagination des styles (par defaut a 0).</param>
|
||||||
/// <returns>La vue Index avec la liste des styles.</returns>
|
/// <returns>La vue Index avec la liste des styles.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Index(int page = 0)
|
public IActionResult Index(int page = 0)
|
||||||
{
|
{
|
||||||
int styles_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
int styles_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers;
|
|||||||
|
|
||||||
using Business.Contracts;
|
using Business.Contracts;
|
||||||
|
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ public class TitreController : Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="page">Le numéro de page pour la pagination des titres (par défaut à 0).</param>
|
/// <param name="page">Le numéro de page pour la pagination des titres (par défaut à 0).</param>
|
||||||
/// <returns>La vue Index avec le ViewModel contenant la liste des titres.</returns>
|
/// <returns>La vue Index avec le ViewModel contenant la liste des titres.</returns>
|
||||||
|
[Authorize(Roles = "ADMIN")]
|
||||||
public IActionResult Index(int page = 0)
|
public IActionResult Index(int page = 0)
|
||||||
{
|
{
|
||||||
int titres_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
int titres_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
@@ -34,7 +33,6 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="nom">Le nom de l'artiste à rechercher, formaté en kebab-case (ex: "fatal-bazooka").</param>
|
/// <param name="nom">Le nom de l'artiste à rechercher, formaté en kebab-case (ex: "fatal-bazooka").</param>
|
||||||
/// <returns>La vue de l'artiste avec son ViewModel, ou une redirection vers l'accueil si le nom est vide, ou une erreur 404 si l'artiste n'est pas trouvé.</returns>
|
/// <returns>La vue de l'artiste avec son ViewModel, ou une redirection vers l'accueil si le nom est vide, ou une erreur 404 si l'artiste n'est pas trouvé.</returns>
|
||||||
[Authorize(Roles = "ADMIN")]
|
|
||||||
public IActionResult Index(string nom)
|
public IActionResult Index(string nom)
|
||||||
{
|
{
|
||||||
this.logger.LogInformation("Tentative d'accès à l'artiste avec le nom : {NomArtiste}", nom);
|
this.logger.LogInformation("Tentative d'accès à l'artiste avec le nom : {NomArtiste}", nom);
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -26,7 +25,6 @@
|
|||||||
/// Affiche la page de contact du webzine.
|
/// Affiche la page de contact du webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>La vue Index de la page de contact.</returns>
|
/// <returns>La vue Index de la page de contact.</returns>
|
||||||
[Authorize(Roles = "ADMIN")]
|
|
||||||
public IActionResult Index()
|
public IActionResult Index()
|
||||||
{
|
{
|
||||||
return this.View();
|
return this.View();
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
@@ -39,8 +38,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
/// Affichage de la page Recherche depuis le header de l'app.
|
/// Affichage de la page Recherche depuis le header de l'app.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="mot">Nom d'artiste ou de titre.</param>
|
/// <param name="mot">Nom d'artiste ou de titre.</param>
|
||||||
/// <returns>Page de recherche avec les r<EFBFBD>sultats.</returns>
|
/// <returns>Page de recherche avec les résultats.</returns>
|
||||||
[Authorize(Roles = "ADMIN")]
|
|
||||||
public IActionResult Index(string mot)
|
public IActionResult Index(string mot)
|
||||||
{
|
{
|
||||||
// Logger la recherche.
|
// Logger la recherche.
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
@@ -48,7 +47,6 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
/// <param name="id">Identifiant du titre.</param>
|
/// <param name="id">Identifiant du titre.</param>
|
||||||
/// <param name="model">Model de donnée pour un commentaire.</param>
|
/// <param name="model">Model de donnée pour un commentaire.</param>
|
||||||
/// <returns>Vue des details ou 404 si introuvable.</returns>
|
/// <returns>Vue des details ou 404 si introuvable.</returns>
|
||||||
[Authorize(Roles = "ADMIN")]
|
|
||||||
public IActionResult Index(int id)
|
public IActionResult Index(int id)
|
||||||
{
|
{
|
||||||
this.logger.LogInformation("Demande d'affichage du detail pour le titre ID {Id}.", id);
|
this.logger.LogInformation("Demande d'affichage du detail pour le titre ID {Id}.", id);
|
||||||
|
|||||||
@@ -58,6 +58,27 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
@if (User.Identity?.IsAuthenticated == true)
|
||||||
|
{
|
||||||
|
<span class="text-primary">Bonjour @User.Identity.Name</span>
|
||||||
|
|
||||||
|
<a asp-controller="Account"
|
||||||
|
asp-action="Logout"
|
||||||
|
class="btn btn-outline-danger btn-sm">
|
||||||
|
Déconnexion
|
||||||
|
</a>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<a asp-controller="Account"
|
||||||
|
asp-action="Login"
|
||||||
|
class="btn btn-outline-primary btn-sm">
|
||||||
|
Connexion
|
||||||
|
</a>
|
||||||
|
}
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- Barre de recherche -->
|
<!-- Barre de recherche -->
|
||||||
|
|||||||
@@ -14,24 +14,6 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="d-flex flex-column min-vh-100">
|
<body class="d-flex flex-column min-vh-100">
|
||||||
<partial name="_Header"/>
|
<partial name="_Header"/>
|
||||||
@if (User.Identity?.IsAuthenticated == true)
|
|
||||||
{
|
|
||||||
<span class="me-2">Bonjour @User.Identity.Name</span>
|
|
||||||
|
|
||||||
<a asp-controller="Account"
|
|
||||||
asp-action="Logout"
|
|
||||||
class="btn btn-outline-danger btn-sm">
|
|
||||||
Déconnexion
|
|
||||||
</a>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<a asp-controller="Account"
|
|
||||||
asp-action="Login"
|
|
||||||
class="btn btn-outline-primary btn-sm">
|
|
||||||
Connexion
|
|
||||||
</a>
|
|
||||||
}
|
|
||||||
<div class="container-fluid flex-grow-1 py-4">
|
<div class="container-fluid flex-grow-1 py-4">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<main class="col mx-3">
|
<main class="col mx-3">
|
||||||
|
|||||||
Reference in New Issue
Block a user