コード例 #1
0
ファイル: UserService.cs プロジェクト: paulkornikov/Pragonas
        // 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();
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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() });
        }
コード例 #4
0
ファイル: UserService.cs プロジェクト: paulkornikov/Pragonas
        // 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();
        }
コード例 #5
0
ファイル: UserFabrique.cs プロジェクト: paulkornikov/Pragonas
        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;
        }
コード例 #6
0
        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);
        }