diff --git a/Controllers/CollaborateursApi.cs b/Controllers/CollaborateursApi.cs
index 29a4dbe..c727c50 100644
--- a/Controllers/CollaborateursApi.cs
+++ b/Controllers/CollaborateursApi.cs
@@ -24,6 +24,7 @@ using EPAServeur.Exceptions;
using IO.Swagger.ClientCollaborateur;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
namespace IO.Swagger.Controllers
{
@@ -50,7 +51,7 @@ namespace IO.Swagger.Controllers
/// Ressource n'a pas été trouvée
[HttpGet]
[Route("/api/collaborateurs/{idCollaborateur}")]
- //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
+ //[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "RH,Assistante,Commercial")]
[ValidateModelState]
[SwaggerOperation("GetCollaborateurById")]
[SwaggerResponse(statusCode: 200, type: typeof(CollaborateurDTO), description: "OK")]
@@ -72,7 +73,7 @@ namespace IO.Swagger.Controllers
}
catch (CollaborateurNotFoundException)
{
- logger.LogError("Le ccollaborateur {id} est introuvable", idCollaborateur);
+ logger.LogError("Le collaborateur {id} est introuvable", idCollaborateur);
ErreurDTO erreurDTO = new ErreurDTO()
{
Code = "404",
@@ -98,7 +99,7 @@ namespace IO.Swagger.Controllers
/// Ressource n'a pas été trouvée
[HttpGet]
[Route("/api/collaborateurs/mail/{mail}")]
- //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
+ //[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "RH,Assistante,Commercial")]
[ValidateModelState]
[SwaggerOperation("GetCollaborateurByMail")]
[SwaggerResponse(statusCode: 200, type: typeof(CollaborateurDTO), description: "OK")]
@@ -116,7 +117,7 @@ namespace IO.Swagger.Controllers
}
catch (CollaborateurNotFoundException)
{
- logger.LogError("Le ccollaborateur {mail} est introuvable", mail);
+ logger.LogError("Le collaborateur {mail} est introuvable", mail);
ErreurDTO erreurDTO = new ErreurDTO()
{
Code = "404",
@@ -152,7 +153,7 @@ namespace IO.Swagger.Controllers
/// Acces interdit
[HttpGet]
[Route("/api/collaborateurs")]
- //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "RH,Assistante,Commercial")]
[ValidateModelState]
[SwaggerOperation("GetCollaborateurs")]
[SwaggerResponse(statusCode: 200, type: typeof(List), description: "OK")]
@@ -195,7 +196,7 @@ namespace IO.Swagger.Controllers
/// Ressource n'a pas été trouvée
[HttpGet]
[Route("/api/collaborateurs/referent/{idReferent}")]
- //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
+ //[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "RH,Assistante,Commercial")]
[ValidateModelState]
[SwaggerOperation("GetCollaborateursByReferent")]
[SwaggerResponse(statusCode: 200, type: typeof(List), description: "OK")]
@@ -242,7 +243,7 @@ namespace IO.Swagger.Controllers
/// Ressource n'a pas été trouvée
[HttpGet]
[Route("/api/collaborateurs/profil/{mail}/")]
- //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
+ //[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "RH,Assistante,Commercial")]
[ValidateModelState]
[SwaggerOperation("GetProfilCollaborateurByMail")]
[SwaggerResponse(statusCode: 200, type: typeof(ProfilDTO), description: "OK")]
diff --git a/EPAServeur.csproj b/EPAServeur.csproj
index 5900bca..b88d2f0 100644
--- a/EPAServeur.csproj
+++ b/EPAServeur.csproj
@@ -6,6 +6,7 @@
+
diff --git a/Services/EngagementService.cs b/Services/EngagementService.cs
index cab7c58..cb9c4a9 100644
--- a/Services/EngagementService.cs
+++ b/Services/EngagementService.cs
@@ -54,9 +54,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence);
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence).Skip(skip).Take(take);
else
- engagements = epContext.Engagement.Include(engagement => engagement.Ep);
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Skip(skip).Take(take);
if (engagements == null || engagements.Count() == 0)
return new List();
@@ -79,9 +79,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence).Skip(skip).Take(take).ToListAsync();
else
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Skip(skip).Take(take).ToListAsync();
if (engagements == null || engagements.Count() == 0)
return new List();
@@ -105,9 +105,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Realise == null).ToList();
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Realise == null).Skip(skip).Take(take).ToList();
else
- engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise == null).ToList();
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise == null).Skip(skip).Take(take).ToList();
if (engagements == null || engagements.Count() == 0)
return new List();
@@ -130,9 +130,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Realise == null).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Realise == null).Skip(skip).Take(take).ToListAsync();
else
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise == null).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise == null).Skip(skip).Take(take).ToListAsync();
if (engagements == null || engagements.Count() == 0)
return new List();
@@ -156,9 +156,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Modalite.ToLower().Contains(texte));
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Modalite.ToLower().Contains(texte)).Skip(skip).Take(take);
else
- engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise != null && engagement.Modalite.ToLower().Contains(texte));
+ engagements = epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise != null && engagement.Modalite.ToLower().Contains(texte)).Skip(skip).Take(take);
if (engagements == null || engagements.Count() == 0)
return new List();
@@ -181,9 +181,9 @@ namespace EPAServeur.Services
int take = parPAge.Value;
if (idAgence != null)
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Modalite.ToLower().Contains(texte)).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Ep.IdAgence == idAgence && engagement.Modalite.ToLower().Contains(texte)).Skip(skip).Take(take).ToListAsync();
else
- engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise != null && engagement.Modalite.ToLower().Contains(texte)).ToListAsync();
+ engagements = await epContext.Engagement.Include(engagement => engagement.Ep).Where(engagement => engagement.Realise != null && engagement.Modalite.ToLower().Contains(texte)).Skip(skip).Take(take).ToListAsync();
if (engagements == null || engagements.Count() == 0)
return new List();
diff --git a/Services/FormationService.cs b/Services/FormationService.cs
index f164303..67c4c95 100644
--- a/Services/FormationService.cs
+++ b/Services/FormationService.cs
@@ -102,7 +102,7 @@ namespace EPAServeur.Services
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
- .Where(formation => formation.Statut.Id == statutFormation && formation.IdAgence == idAgence);
+ .Where(formation => formation.Statut.Id == statutFormation && formation.IdAgence == idAgence).Skip(skip).Take(take);
}
else if (statutFormation != null && idAgence == null)
{
@@ -111,7 +111,7 @@ namespace EPAServeur.Services
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
- .Where(formation => formation.Statut.Id == statutFormation);
+ .Where(formation => formation.Statut.Id == statutFormation).Skip(skip).Take(take);
}
else if (idAgence != null)
{
@@ -119,14 +119,14 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
else
{
formations = epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
@@ -168,7 +168,7 @@ namespace EPAServeur.Services
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
- .Where(formation => formation.Statut.Id == statutFormation && formation.IdAgence == idAgence).ToListAsync();
+ .Where(formation => formation.Statut.Id == statutFormation && formation.IdAgence == idAgence).Skip(skip).Take(take).ToListAsync();
}
else if (statutFormation != null && idAgence == null)
{
@@ -177,7 +177,7 @@ namespace EPAServeur.Services
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
- .Where(formation => formation.Statut.Id == statutFormation).ToListAsync();
+ .Where(formation => formation.Statut.Id == statutFormation).Skip(skip).Take(take).ToListAsync();
}
else if (idAgence != null)
{
@@ -186,7 +186,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).Where(formation => formation.IdAgence == idAgence).ToListAsync();
+ .Include(formation => formation.TypeFormation).Where(formation => formation.IdAgence == idAgence).Skip(skip).Take(take).ToListAsync();
}
else
@@ -195,7 +195,7 @@ namespace EPAServeur.Services
formations = await epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
}
@@ -236,13 +236,13 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
else
formations = epContext.Formation.Where(formation => formation.Statut.Id == 4)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
if (formations == null)
return null;
@@ -280,13 +280,13 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
else
formations = await epContext.Formation.Where(formation => formation.Statut.Id == 4)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
if (formations == null)
return null;
@@ -326,7 +326,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
else
@@ -336,7 +336,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
@@ -379,7 +379,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
}
else
@@ -389,7 +389,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
}
@@ -430,7 +430,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
else
@@ -439,7 +439,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation);
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take);
}
if (formations == null)
@@ -479,7 +479,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
}
@@ -489,7 +489,7 @@ namespace EPAServeur.Services
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
- .Include(formation => formation.TypeFormation).ToListAsync();
+ .Include(formation => formation.TypeFormation).Skip(skip).Take(take).ToListAsync();
}
if (formations == null)
diff --git a/Startup.cs b/Startup.cs
index 8d79041..2efbb17 100644
--- a/Startup.cs
+++ b/Startup.cs
@@ -2,10 +2,10 @@ using EPAServeur.Context;
using EPAServeur.IServices;
using EPAServeur.Services;
using IO.Swagger.ApiCollaborateur;
-using IO.Swagger.Security;
-using Microsoft.AspNetCore.Authentication;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -14,82 +14,129 @@ using System.IO;
namespace EPAServeur
{
- public class Startup
- {
-
- readonly string AllowCrossClientEPA = "_AllowsCrossOriginClientEPA";
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- }
-
- public IConfiguration Configuration { get; }
-
- // This method gets called by the runtime. Use this method to add services to the container.
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddCors(options =>
- {
- options.AddPolicy(name: AllowCrossClientEPA,
- builder =>
- {
- builder.WithOrigins("http://localhost:4200").AllowAnyHeader().AllowAnyMethod();
- });
- });
-
- services.AddControllers();
- services.AddAuthentication(BearerAuthenticationHandler.SchemeName)
- .AddScheme(BearerAuthenticationHandler.SchemeName, null);
-
- services.AddDbContext();
- using(var context = new EpContext())
- {
- context.Database.EnsureDeleted(); //PENSEZ A ENLEVER CETTE LIGNE ET A NE JAMAIS LA REMETTRE QUAND LE SERVEUR SERA MIS EN PRODUCTION ^^
- context.Database.EnsureCreated();
- context.SaveChanges();
- context.AjoutInformationsDeBase();
- context.AjoutChamps();
- context.AjouterNotes();
- }
- //faire using, check si kekchoz exkist puis appeler les m�thodes de cr�ation si il n'y a rien
-
- //API Collaborateurs
- services.AddScoped();
- services.AddScoped();
- services.AddScoped();
-
-
-
- //Services
- services.AddScoped();
- services.AddScoped();
- services.AddScoped();
- services.AddScoped();
- services.AddScoped();
- }
-
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory logger)
- {
- string path = Directory.GetCurrentDirectory();
- logger.AddFile(path+"Log/loggerfile-{Date}.txt");
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
-
- app.UseHttpsRedirection();
-
- app.UseRouting();
-
- app.UseCors(AllowCrossClientEPA);
-
- app.UseAuthorization();
-
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllers();
- });
- }
- }
+ public class Startup
+ {
+ readonly string AllowCrossClientEPA = "_AllowsCrossOriginClientEPA";
+
+ public Startup(IConfiguration configuration, IWebHostEnvironment env)
+ {
+ Configuration = configuration;
+ Environment = env;
+ }
+
+ public IConfiguration Configuration { get; }
+ public IWebHostEnvironment Environment { get; }
+
+ // This method gets called by the runtime. Use this method to add services to the container.
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddCors(options =>
+ {
+ options.AddPolicy(name: AllowCrossClientEPA,
+ builder =>
+ {
+ builder.WithOrigins("http://localhost:4200").AllowAnyHeader().AllowAnyMethod();
+ });
+ });
+
+ services.AddControllers();
+
+ services.AddAuthentication(options =>
+ {
+ options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
+ options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
+ }).AddJwtBearer(o =>
+ {
+ o.Authority = Configuration["Jwt:Authority"];
+ o.Audience = Configuration["Jwt:Audience"];
+
+ if (Environment.IsDevelopment())
+ {
+ o.RequireHttpsMetadata = false;
+ }
+
+ o.Events = new JwtBearerEvents()
+ {
+ OnAuthenticationFailed = c =>
+ {
+ c.NoResult();
+
+ c.Response.StatusCode = 500;
+ c.Response.ContentType = "text/plain";
+
+ if (Environment.IsDevelopment())
+ {
+ return c.Response.WriteAsync(c.Exception.ToString());
+ }
+
+ return c.Response.WriteAsync("Une erreur s'est produite lors du processus d'authentification.");
+ },
+ OnForbidden = c =>
+ {
+ c.NoResult();
+
+ c.Response.StatusCode = 403;
+ c.Response.ContentType = "text/plain";
+
+ return c.Response.WriteAsync("L'utilisateur n'est pas autorisé à accéder à cette ressource.");
+ }
+ };
+ });
+
+ services.AddDbContext();
+ using (var context = new EpContext())
+ {
+ context.Database.EnsureDeleted(); //PENSEZ A ENLEVER CETTE LIGNE ET A NE JAMAIS LA REMETTRE QUAND LE SERVEUR SERA MIS EN PRODUCTION ^^
+ context.Database.EnsureCreated();
+ context.SaveChanges();
+ context.AjoutInformationsDeBase();
+ context.AjoutChamps();
+ context.AjouterNotes();
+ }
+ //faire using, check si kekchoz exkist puis appeler les m�thodes de cr�ation si il n'y a rien
+
+ //API Collaborateurs
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+
+
+
+ //Services
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+
+ }
+
+ // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory logger)
+ {
+ string path = Directory.GetCurrentDirectory();
+ logger.AddFile(path + "Log/loggerfile-{Date}.txt");
+ if (env.IsDevelopment())
+ {
+ app.UseDeveloperExceptionPage();
+ }
+
+ app.UseHttpsRedirection();
+
+ app.UseRouting();
+
+ app.UseCors(AllowCrossClientEPA);
+
+ app.UseAuthentication();
+
+ app.UseAuthorization();
+
+
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapControllers();
+ });
+
+ }
+ }
}
diff --git a/appsettings.json b/appsettings.json
index d9d9a9b..aad810b 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -1,4 +1,8 @@
{
+ "Jwt": {
+ "Authority": "http://localhost:8080/auth/realms/Apside",
+ "Audience": "account"
+ },
"Logging": {
"LogLevel": {
"Default": "Information",