// CreateNewUserInExistingGroupe public void AddUtilisateurInGroupe(RegisterModel model, Groupe existingGroupe) { Utilisateur user = fabrique.CreateNewUtilisateur(model); uow.Utilisateur.Add(user); // Création de nouveau profil et connexion à sa famille var profileFab = new ProfileFabrique(); profileFab.AddUserProfileToUtilisateur(user, existingGroupe); // Commit uow.Commit(); }
public Groupe CreateGroupe(RegisterModel model) { // Fabrique new groupe var fabrique = new GroupeFabrique(uow); Groupe newGroupe = new Groupe { Name = model.GroupeName }; // Ajout au contexte et commit uow.Groupe.Add(newGroupe); // Retour return newGroupe; }
public ActionResult JsonRegister(RegisterModel model) { if (ModelState.IsValid) { // User service var userService = new UserService(uow); // Le système vérifie si le nom de famille existe Groupe groupe = uow.Groupe.GetByFamille(model.GroupeName); // Le nom de famille est connu du système; if (groupe != null) { // Le système vérifie que le prénom n'appartient pas déjà à la famille if (uow.Utilisateur.IsUserAlreadyInGroupe(model.Prenom, model.GroupeName)) { // Le prénom est déjà dans la famille, on n'autorise pas la création : message d'erreur ModelState.AddModelError("", "Le prénom existe déjà pour cette famille. Veuillez choisir un autre prénom."); } // Le prénom n'existe pas dans le groupe else { // On l'ajoute au groupe (profil 'Utilisateur') userService.AddUtilisateurInGroupe(model, groupe); // Enregistrement de l'utilisateur dans la session FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); return Json(new { success = true }); } } // Le nom de groupe n'est pas dans le système; else { // Création de l'utilisateur (profil 'GroupeAdmin') et du nouveau groupe userService.AddAdminUtilisateurToNewGroupe(model); // Enregistrement Session FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); return Json(new { success = true }); } } // If we got this far, something failed return Json(new { errors = GetErrorsFromModelState() }); }
// CreateNewUserInNewGroupe public void AddAdminUtilisateurToNewGroupe(RegisterModel model) { // Nouveau user Utilisateur user = fabrique.CreateNewUtilisateur(model); uow.Utilisateur.Add(user); // Nouveau groupe et nouveau profil // Le nom de famille n'est pas connu du système donc var groupeFab = new GroupeFabrique(uow); Groupe newGroupe = groupeFab.CreateGroupe(model); // Création Profil et association rôle var profileFab = new ProfileFabrique(); profileFab.AddGroupeAdminProfileToUtilisateur(user, newGroupe); // Commit uow.Commit(); }
public Utilisateur CreateNewUtilisateur(RegisterModel model) { // HashPassword string pass = Crypto.HashPassword(model.Password); var user = new Utilisateur { Actif = true , Password = pass , Prenom = model.Prenom , UserName = model.UserName }; return user; }
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Service user var userService = new UserService(uow); // Le système vérifie si le nom de famille existe Groupe groupe = uow.Groupe.GetByFamille(model.GroupeName); // Le nom de famille est connu du système; if (groupe != null) { // Le système vérifie que le prénom n'appartient pas déjà à la famille if (uow.Utilisateur.IsUserAlreadyInGroupe(model.Prenom, model.GroupeName)) { // Le prénom est déjà dans la famille, on n'autorise pas la création : message d'erreur ModelState.AddModelError("", "Le prénom existe déjà pour cette famille. Veuillez choisir un autre prénom."); } // Le prénom n'existe pas, dans le groupe else { // On l'ajoute au groupe avec un profil 'utilisateur' userService.AddUtilisateurInGroupe(model, groupe); // Enregistrement de l'utilisateur dans la session FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); // Redirection return RedirectToAction("Index", "Home"); } } // Le nom de groupe n'est pas connu du système; else { // Création new user (profil 'Admin') et new groupe userService.AddAdminUtilisateurToNewGroupe(model); // Enregistrement Session FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); // Redirection return RedirectToAction("Index", "Home"); } } // If we got this far, something failed, redisplay form return View(model); }