private bool ValidateUserAdmin(string login, string password) { ClubContactContext db = new ClubContactContext(); try { //on va chercher le membre si celui-ci n'est pas supprimé CompteAdmin admin = db.CompteAdmins.Where(m => m.nomCompte.ToLower() == login.ToLower()).FirstOrDefault(); if (admin != null) { //on vérifie si le mdp qu'il a entré est égal au mdp de la BD if (Membre.hashedPwd(password).Equals(admin.motDePasseHashe)) { return(true); } } } catch (Exception e) { //Renvoyer un message d'erreur dans Elmah, mais on fait comme si la connexion n'as simplement pas fonctionner au niveau de l'utilisateur. Elmah.ErrorSignal.FromCurrentContext().Raise( new Exception("Action: ValidateUser, Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login : "******".", e) ); ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer."); } return(false); }
public static IQueryable <Membre> ListeOrganisateursActivite(bool?annulee, bool?payant, int?noTheme, int?noProvince, int?noVille, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin, bool organisateursDesactiver = false) { ClubContactContext db = new ClubContactContext(); IQueryable <int> listeActiviteResultat = db.Activites.Where(m => (annulee == null ? true : false || m.annulee == annulee) && (payant == null ? true : false || (payant == true ? m.cout > 0 : (m.cout == 0 || m.cout == null))) && (noTheme == null ? true : false || m.noTheme == noTheme) && (organisateursDesactiver == false ? (m.membreOrganisateur.compteSupprimeParAdmin == null && m.membreOrganisateur.dateSuppressionDuCompte == null) : true) && (noProvince == null ? true : false || m.noProvince == noProvince) && (noVille == null ? true : false || m.noVille == noVille) && (anneeDebut == null ? true : false || ( (m.date.Year > anneeDebut) || (m.date.Year == anneeDebut && (moisDebut == null || m.date.Month > moisDebut)) || (m.date.Year == anneeDebut && m.date.Month == moisDebut && (jourDebut == null || m.date.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.date.Year < anneeFin) || (m.date.Year == anneeFin && (moisFin == null || m.date.Month < moisFin)) || (m.date.Year == anneeFin && m.date.Month == moisFin && (jourFin == null || m.date.Day <= jourFin)) ) ) ).Select(m => m.noMembreOrganisateur); return(db.Membres.Where(m => listeActiviteResultat.Contains(m.noMembre))); }
public static string AnnulerActivite(int noActivite, int?noMembreCo, out Activite activite) { ClubContactContext db = new ClubContactContext(); activite = db.Activites.Where(p => p.noActivite == noActivite).Include(m => m.listeAvisActivite).Include(m => m.listePhotosActivites).Include(m => m.membresParticipants).FirstOrDefault(); if (activite == null) { return("Activité non trouvée."); } if (noMembreCo != null) { if (activite.noMembreOrganisateur != noMembreCo) { return("Interdit"); } } try { activite.annulee = true; db.SaveChanges(); return("Reussi"); } catch (Exception e) { throw Utilitaires.templateException("annulerActivite", "Objet Utilitaires.cs", "Suppression de l'activité n'as pas fonctionné.", e); } }
public static IQueryable <Signalement> ListeSignalement(int?noEtatSignalement = null) { ClubContactContext db = new ClubContactContext(); return(db.Signalements .Where(m => (noEtatSignalement == null ? true : false || m.noEtatSignalementActuel == noEtatSignalement) )); }
//Signalement public static int NbSignalementsRecu(bool?traiteUniquement = null, bool?nouveauUniquement = null) { ClubContactContext db = new ClubContactContext(); return(db.Signalements.Where(m => ((traiteUniquement == null ? true : false) || (traiteUniquement == true ? m.etatSignalementActuel.nomEtatSignalement == "Traité" : true)) && ((nouveauUniquement == null ? true : false) || (nouveauUniquement == true ? m.etatSignalementActuel.nomEtatSignalement == "Nouveau" : true)) ).Count()); }
public ActionResult ResetMotDePasse(int noMembre) { ClubContactContext db = new ClubContactContext(); Membre leMembreAResetLeMotDePasse = db.Membres.Where(m => m.noMembre == noMembre).FirstOrDefault(); return(View("ResetPassword", leMembreAResetLeMotDePasse)); }
public static IQueryable <Membre> ListeMembres(bool?premium = null, int?ageMin = null, int?ageMax = null, int?noProvince = null, int?noVille = null, bool membresDesactiver = false) { ClubContactContext db = new ClubContactContext(); #region trouverAgeEnChiffre //DateTime? dateAgeMax = null; //DateTime? dateAgeMin = null; //if (ageMax != null) //{ // dateAgeMax = DateTime.Now.AddYears(-(int)ageMax); //} //if (ageMin != null) //{ // dateAgeMin = DateTime.Now.AddYears(-(int)ageMin); //} #endregion IQueryable <Membre> lesMembres = db.Membres; if (ageMin != null) { lesMembres = (from m in lesMembres let years = DateTime.Now.Year - ((DateTime)m.dateNaissance).Year let birthdayThisYear = DbFunctions.AddYears(m.dateNaissance, years) where ageMax >= (birthdayThisYear > DateTime.Now ? years - 1 : years) select m ); } if (ageMax != null) { lesMembres = (from m in lesMembres let years = DateTime.Now.Year - ((DateTime)m.dateNaissance).Year let birthdayThisYear = DbFunctions.AddYears(m.dateNaissance, years) where ageMin <= (birthdayThisYear > DateTime.Now ? years - 1 : years) select m ); } return(lesMembres .Where(m => (premium == null ? true : false || m.premium == premium) && (noProvince == null ? true : false || m.noProvince == noProvince) && (noVille == null ? true : false || m.noVille == noVille) && (membresDesactiver == false ? (m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null) : (m.compteSupprimeParAdmin != null && m.dateSuppressionDuCompte != null)) //((dateAgeMax == null ? true : false) || m.dateNaissance >= dateAgeMax) && //((dateAgeMin == null ? true : false) || m.dateNaissance <= dateAgeMin) )); }
public ActionResult ResetMotDePasse(Membre leMembre, string motDePasse1) { ClubContactContext db = new ClubContactContext(); Membre leMembreAResetLeMotDePasse = db.Membres.Where(m => m.noMembre == leMembre.noMembre).FirstOrDefault(); ValiderMotDePasse(motDePasse1, null, leMembre.noMembre, true); //Reste validation Coté serveur à faire leMembreAResetLeMotDePasse.motDePasse = motDePasse1; db.SaveChanges(); return(RedirectToAction("Login", "Authentification")); }
public ActionResult MotDePasseOublier(LoginViewModel loginViewModel, int?test) { ClubContactContext db = new ClubContactContext(); Membre leMembreAReset = db.Membres.Where(m => m.courriel == loginViewModel.Login).FirstOrDefault(); if (leMembreAReset != null) { Utilitaires.envoieCourriel( "Réinitialisation de votre mot de passe Club Contact", Utilitaires.RenderRazorViewToString(this, "MotDePasseOublierCourrielEnvoye", leMembreAReset.noMembre), loginViewModel.Login ); } return(RedirectToAction("Login")); }
public static int NbMessagesOuCadeaux(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin, bool cadeaux = false) { ClubContactContext db = new ClubContactContext(); if (cadeaux == true) { return(db.Gifts.Where(m => (anneeDebut == null ? true : false || ( (m.dateEnvoi.Year > anneeDebut) || (m.dateEnvoi.Year == anneeDebut && (moisDebut == null || m.dateEnvoi.Month > moisDebut)) || (m.dateEnvoi.Year == anneeDebut && m.dateEnvoi.Month == moisDebut && (jourDebut == null || m.dateEnvoi.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.dateEnvoi.Year < anneeFin) || (m.dateEnvoi.Year == anneeFin && (moisFin == null || m.dateEnvoi.Month < moisFin)) || (m.dateEnvoi.Year == anneeFin && m.dateEnvoi.Month == moisFin && (jourFin == null || m.dateEnvoi.Day <= jourFin)) ) ) ).Count()); } else { return(db.Messages.Where(m => (anneeDebut == null ? true : false || ( (m.dateEnvoi.Year > anneeDebut) || (m.dateEnvoi.Year == anneeDebut && (moisDebut == null || m.dateEnvoi.Month > moisDebut)) || (m.dateEnvoi.Year == anneeDebut && m.dateEnvoi.Month == moisDebut && (jourDebut == null || m.dateEnvoi.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.dateEnvoi.Year < anneeFin) || (m.dateEnvoi.Year == anneeFin && (moisFin == null || m.dateEnvoi.Month < moisFin)) || (m.dateEnvoi.Year == anneeFin && m.dateEnvoi.Month == moisFin && (jourFin == null || m.dateEnvoi.Day <= jourFin)) ) ) && (m.membreEnvoyeur != null) ).Count()); } }
public static int NbActiviteEtParticipantsOrganises(bool participantACalculer, bool?annulee, bool?payant, int?noTheme, int?noProvince, int?noVille, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin) { ClubContactContext db = new ClubContactContext(); IQueryable <Activite> activitesQuiCorrespondent = db.Activites.Where(m => (annulee == null ? true : false || m.annulee == annulee) && (payant == null ? true : false || (payant == true ? m.cout > 0 : (m.cout == 0 || m.cout == null))) && (noTheme == null ? true : false || m.noTheme == noTheme) && (noProvince == null ? true : false || m.noProvince == noProvince) && (noVille == null ? true : false || m.noVille == noVille) && (anneeDebut == null ? true : false || ( (m.date.Year > anneeDebut) || (m.date.Year == anneeDebut && (moisDebut == null || m.date.Month > moisDebut)) || (m.date.Year == anneeDebut && m.date.Month == moisDebut && (jourDebut == null || m.date.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.date.Year < anneeFin) || (m.date.Year == anneeFin && (moisFin == null || m.date.Month < moisFin)) || (m.date.Year == anneeFin && m.date.Month == moisFin && (jourFin == null || m.date.Day <= jourFin)) ) ) ); //Nb d'activités if (participantACalculer == false) { return(activitesQuiCorrespondent.Count()); } //NbParticipants else { return(activitesQuiCorrespondent.Sum(m => (int?)m.membresParticipants.Count()) ?? 0); } }
/// <summary> /// Méthode validant un utilisateur avec son mot de passe /// </summary> /// <param name="login"></param> /// <param name="password"></param> /// <returns></returns> private bool ValidateUser(string login, string password) { //si l'admin veut se logger if (login.ToLower().Equals("admin")) { //son mot de passe est stocké dans le code if (password == "jaimeADMIN") { return(true); } } else { ClubContactContext db = new ClubContactContext(); try { //on va chercher le membre si celui-ci n'est pas supprimé Membre membre = db.Membres.Where(m => m.courriel.ToLower() == login.ToLower() && m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null).FirstOrDefault(); if (membre != null) { //on vérifie si le mdp qu'il a entré est égal au mdp de la BD if (Membre.hashedPwd(password).Equals(membre.motDePasseHashe)) { return(true); } } } catch (Exception e) { //Renvoyer un message d'erreur dans Elmah, mais on fait comme si la connexion n'as simplement pas fonctionner au niveau de l'utilisateur. Elmah.ErrorSignal.FromCurrentContext().Raise( new Exception("Action: ValidateUser, Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login : "******".", e) ); ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer."); } } return(false); }
//Visites public static int NbConnexion(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin, bool?premium) { ClubContactContext db = new ClubContactContext(); return(db.Connexions.Where(m => (m.premiumAuMomentDeConnexion == premium) && (anneeDebut == null ? true : false || ( (m.dateConnexion.Year > anneeDebut) || (m.dateConnexion.Year == anneeDebut && (moisDebut == null || m.dateConnexion.Month > moisDebut)) || (m.dateConnexion.Year == anneeDebut && m.dateConnexion.Month == moisDebut && (jourDebut == null || m.dateConnexion.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.dateConnexion.Year < anneeFin) || (m.dateConnexion.Year == anneeFin && (moisFin == null || m.dateConnexion.Month < moisFin)) || (m.dateConnexion.Year == anneeFin && m.dateConnexion.Month == moisFin && (jourFin == null || m.dateConnexion.Day <= jourFin)) ) ) ).Count()); }
public static IQueryable <Abonnement> LesAbonnements(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin) { ClubContactContext db = new ClubContactContext(); return(db.Abonnements.Where(m => (anneeDebut == null ? true : false || ( (m.datePaiement.Year > anneeDebut) || (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) || (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.datePaiement.Year < anneeFin) || (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) || (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin)) ) ) )); }
public static int NbDesabonnement(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin) { ClubContactContext db = new ClubContactContext(); return(db.Abonnements.Where(m => (m.renouveler == false) && (anneeDebut == null ? true : false || ( (m.datePaiement.Year > anneeDebut) || (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) || (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.datePaiement.Year < anneeFin) || (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) || (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin)) ) ) ).Count()); }
public static double RevenuTVQ(int?forfait, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin) { ClubContactContext db = new ClubContactContext(); return(db.Abonnements.Where(m => (forfait == null ? true : false || m.typeAbonnement == forfait) && (anneeDebut == null ? true : false || ( (m.datePaiement.Year > anneeDebut) || (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) || (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.datePaiement.Year < anneeFin) || (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) || (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin)) ) ) ).Sum(m => (double?)m.prixTVQ) ?? 0.00); }
public static string ParticiperActivite(int noActivite, int noMembre) { try { ClubContactContext db = new ClubContactContext(); string etaitDejaParticipant; Membre leMembreCo = db.Membres.Where(m => m.noMembre == noMembre).FirstOrDefault(); Activite lActivite = db.Activites.Where(a => a.noActivite == noActivite).Include(a => a.membresParticipants).FirstOrDefault(); if (lActivite.membresParticipants.Contains(leMembreCo)) { lActivite.membresParticipants.Remove(leMembreCo); etaitDejaParticipant = "True"; } else { lActivite.membresParticipants.Add(leMembreCo); etaitDejaParticipant = "False"; } db.SaveChanges(); return(etaitDejaParticipant); } catch (Exception e) { Dictionary <string, string> parametres = new Dictionary <string, string>() { { "noActivite", noActivite.ToString() }, { "noMembre", noMembre.ToString() } }; throw Utilitaires.templateException("ParticiperActivite", "Classe Utilitaires.js", "Requête LINQ n'a pas fonctionnée.", e, parametres); } }
public static int NbAbonnement(int?forfait, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin) { ClubContactContext db = new ClubContactContext(); return(db.Abonnements.Where(m => (forfait == null ? true : false || m.typeAbonnement == forfait) && //Gestion des dates (anneeDebut == null ? true : false || ( (m.datePaiement.Year > anneeDebut) || (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) || (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut)) ) ) && (anneeFin == null ? true : false || ( (m.datePaiement.Year < anneeFin) || (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) || (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin)) ) ) ).Count()); }
public static IQueryable <Activite> RechercheActiviteAvecCriteres(int noMembreCo, RechercheActiviteViewModel rechercheActivite) { ClubContactContext db = new ClubContactContext(); IQueryable <Activite> listActiviteTrouves = db.Activites; if (noMembreCo != -1) { Membre leMembreCo = db.Membres.Where(m => m.noMembre == noMembreCo).FirstOrDefault(); if (leMembreCo != null) { //On trouve uniquement les activités compatibles. listActiviteTrouves = listActiviteTrouves .Where(a => //Si le membre organisateur est le membre connecté, on affiche l'activité... (a.noMembreOrganisateur == leMembreCo.noMembre) ? true : ( ((a.hommeSeulement == null ? true : false) || (a.hommeSeulement == leMembreCo.homme)) && ((a.ageMax == null ? true : false) || leMembreCo.age <= a.ageMax) && ((a.ageMin == null ? true : false) || leMembreCo.age >= a.ageMin) ) ); //Critères Communs listActiviteTrouves = listActiviteTrouves .Where(a => //Activites que j'organise ((rechercheActivite.organiseParMoi == false ? true : (a.membreOrganisateur.noMembre == noMembreCo))) && //Uniquement ActivitesQueJeParticipe ((rechercheActivite.uniquementActivitesQueJeParticipe == false ? true : (a.membresParticipants.Select(m => m.noMembre).Contains((int)noMembreCo)))) && //Ne pas voir les activités dont le membre organisateur nous a dans sa liste noire (!a.membreOrganisateur.listeNoire.Select(m => m.noMembre).Contains(leMembreCo.noMembre)) ); } } listActiviteTrouves = listActiviteTrouves .Where(a => ((rechercheActivite.noTheme == null ? true : false) || a.noTheme == rechercheActivite.noTheme) ); //Ne doit pas changé de place, car c'est fait avec les critères IQueryable <Activite> listActiviteTrouvesPourDates = listActiviteTrouves .Where(a => (DbFunctions.TruncateTime(DateTime.Now) <= DbFunctions.TruncateTime(a.date)) ); listActiviteTrouves = listActiviteTrouves .Where(a => ((rechercheActivite.dateRecherche == null ? true : false) || DbFunctions.TruncateTime(a.date) == DbFunctions.TruncateTime(rechercheActivite.dateRecherche)) && (rechercheActivite.activiteFuturs == true ? a.date >= DateTime.Now : a.date < DateTime.Now) ); IQueryable <Activite> listActiviteTrouvesPreliminaire = listActiviteTrouves .Where(a => ((rechercheActivite.motCle == null ? true : false) || a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower())) ); if (listActiviteTrouvesPreliminaire.Count() == 0) { listActiviteTrouves = listActiviteTrouves .Where(a => ((rechercheActivite.motCle == null ? true : false) || (a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()) || a.description.ToLower().Contains(rechercheActivite.motCle.ToLower()))) ); listActiviteTrouvesPourDates = listActiviteTrouvesPourDates .Where(a => ((rechercheActivite.motCle == null ? true : false) || (a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()) || a.description.ToLower().Contains(rechercheActivite.motCle.ToLower()))) ); } else { listActiviteTrouves = listActiviteTrouvesPreliminaire; listActiviteTrouvesPourDates = listActiviteTrouvesPourDates .Where(a => ((rechercheActivite.motCle == null ? true : false) || a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower())) ); } rechercheActivite.datesOuIlYAActivites = listActiviteTrouvesPourDates.Select(m => DbFunctions.TruncateTime(m.date).Value).Distinct().ToList(); rechercheActivite.nbActivitesTrouvesTotal = listActiviteTrouves.Count(); if (rechercheActivite.activiteFuturs == true) { listActiviteTrouves = listActiviteTrouves.OrderBy(m => m.date).ThenBy(a => a.cout).ThenBy(a => a.noActivite); } else { listActiviteTrouves = listActiviteTrouves.OrderByDescending(m => m.date).ThenBy(a => a.cout).ThenBy(a => a.noActivite); } return(listActiviteTrouves); }
public ActionResult LoginAdmin(LoginViewModel model, string returnUrl) { ClubContactContext db = new ClubContactContext(); ViewBag.ReturnUrl = returnUrl; ViewBag.Title = "Se connecter administrateur"; if (!ModelState.IsValid) { return(View(model)); } if (!ValidateUserAdmin(model.Login, model.Password)) { ModelState.AddModelError(string.Empty, "Le nom d'utilisateur ou le mot de passe est incorrect."); return(View(model)); } // L'authentification est réussie, // injecter les informations utilisateur dans le cookie d'authentification : var userClaims = new List <Claim>(); try { //on trouve le membre CompteAdmin leCompte = db.CompteAdmins .Where(m => m.nomCompte.ToLower() == model.Login.ToLower()) .FirstOrDefault(); if (leCompte != null) { // Identifiant utilisateur : userClaims.Add(new Claim(ClaimTypes.Name, leCompte.nomCompte)); userClaims.Add(new Claim(ClaimTypes.NameIdentifier, leCompte.nomCompte)); } else { throw new Exception("Erreur: Le membre recherché est égale à null à la suite de la requête LINQ."); } //-------------------------création du cookie------------------------------------------- HttpCookie myCookie = new HttpCookie("Admin"); myCookie["niveauDePermission"] = leCompte.permission.nomNiveauDePermissionAdmin.ToString(); if (model.seSouvenirDeMoi) { myCookie.Expires = new System.DateTime(2020, 1, 1); } Response.Cookies.Add(myCookie); } catch (Exception e) { Exception exc = new Exception("Action: Login (POST), Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login Membre : " + model.Login + ".", e); Elmah.ErrorSignal.FromCurrentContext().Raise(exc); ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer."); return(View(model)); } // Rôles utilisateur : userClaims.AddRange(LoadRoles(model.Login, true)); var claimsIdentity = new ClaimsIdentity(userClaims, DefaultAuthenticationTypes.ApplicationCookie); var ctx = Request.GetOwinContext(); var authenticationManager = ctx.Authentication; var properties = new AuthenticationProperties { IsPersistent = model.seSouvenirDeMoi }; authenticationManager.SignIn(properties, claimsIdentity); //?? à revoir une fois que ça fonctionne, avec la prof // Rediriger vers l'url d'origine : if (Url.IsLocalUrl(ViewBag.ReturnUrl)) { return(Redirect(ViewBag.ReturnUrl)); } // Par défaut, rediriger vers la page d'accueil : return(RedirectToAction("Gestion", "Admin")); }
public ActivitesController() { db = new ClubContactContext(); }
public static int NbMembresSupprimeAdmin() { ClubContactContext db = new ClubContactContext(); return(db.Membres.Where(m => m.compteSupprimeParAdmin == true).Count()); }
public ActionResult Login(LoginViewModel model, string returnUrl) { ClubContactContext db = new ClubContactContext(); ViewBag.ReturnUrl = returnUrl; ViewBag.Title = "Se connecter"; if (!ModelState.IsValid) { return(View(model)); } if (!ValidateUser(model.Login, model.Password)) { ModelState.AddModelError(string.Empty, "Le courriel ou le mot de passe est incorrect."); return(View(model)); } // L'authentification est réussie, // injecter les informations utilisateur dans le cookie d'authentification : var userClaims = new List <Claim>(); if (model.Login.ToLower() != "admin") { try { //on trouve le membre Membre leMembre = db.Membres .Where(m => m.courriel.ToLower() == model.Login.ToLower() && m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null) .FirstOrDefault(); //Gestion de l'abonnement (vérifie qu'il est encore premium) Abonnement abonnementActuel = db.Abonnements .Where(m => (m.noMembre == leMembre.noMembre) && (m.dateDebut < DateTime.Now) && (m.dateFin > DateTime.Now) ).AsNoTracking().FirstOrDefault(); if (abonnementActuel == null) { //Si le membre est premium mais que son abonnement est terminé... if (leMembre.premium) { abonnementActuel.renouveler = false; leMembre.premium = false; db.SaveChanges(); } } else if ((abonnementActuel.dateFin.Date - DateTime.Now.Date) <= new TimeSpan(1, 0, 0, 0)) { //Afficher message qu'il reste juste 1 journée à son abonnement } if (leMembre != null) { // Identifiant utilisateur : userClaims.Add(new Claim(ClaimTypes.Name, leMembre.surnom)); userClaims.Add(new Claim(ClaimTypes.NameIdentifier, leMembre.surnom)); } else { throw new Exception("Erreur: Le membre recherché est égale à null à la suite de la requête LINQ."); } //-------------------------création du cookie------------------------------------------- HttpCookie myCookie = new HttpCookie("SiteDeRencontre"); myCookie["noMembre"] = leMembre.noMembre.ToString(); myCookie["premium"] = leMembre.premium ? "true" : "false"; myCookie["seSouvenirDeMoi"] = model.seSouvenirDeMoi ? "true" : "false"; /*---------pour analytics---------*/ HttpCookie analytics = new HttpCookie("AnalyticsCC"); analytics.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(analytics); /*---------pour analytics---------*/ if (model.seSouvenirDeMoi) { myCookie.Expires = new System.DateTime(2020, 1, 1); } Response.Cookies.Add(myCookie); } catch (Exception e) { Exception exc = new Exception("Action: Login (POST), Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login Membre : " + model.Login + ".", e); Elmah.ErrorSignal.FromCurrentContext().Raise(exc); ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer."); return(View(model)); } } else { // Identifiant utilisateur : userClaims.Add(new Claim(ClaimTypes.Name, model.Login)); userClaims.Add(new Claim(ClaimTypes.NameIdentifier, model.Login)); } // Rôles utilisateur : userClaims.AddRange(LoadRoles(model.Login)); var claimsIdentity = new ClaimsIdentity(userClaims, DefaultAuthenticationTypes.ApplicationCookie); var ctx = Request.GetOwinContext(); var authenticationManager = ctx.Authentication; var properties = new AuthenticationProperties { IsPersistent = model.seSouvenirDeMoi }; authenticationManager.SignIn(properties, claimsIdentity); //?? à revoir une fois que ça fonctionne, avec la prof // Rediriger vers l'url d'origine : if (Url.IsLocalUrl(ViewBag.ReturnUrl)) { return(Redirect(ViewBag.ReturnUrl)); } // Par défaut, rediriger vers la page d'accueil : return(RedirectToAction("Home", "Home")); }
public HomeController() { db = new ClubContactContext(); }