Exemplo n.º 1
0
        public ActionResult EditInfos()
        {
            IUserProfile currUser = this.CurrentUser;

            if (currUser == null)
            {
                this.ForceUserLogOut();
                return(LoginPage());
            }
            UserInfosViewData userInfos = new UserInfosViewData(currUser);

            return(View(userInfos));
        }
Exemplo n.º 2
0
        public ActionResult EditInfos(UserInfosViewData newUserInfos)
        {
            /*
             * if(String.IsNullOrEmpty(newUserInfos.email))
             * {
             *   ModelState.AddModelError("email", "Vous devez enter une adresse email.");
             * }
             * else if(!CovCakeMailer.IsValidEmail(newUserInfos.email))
             * {
             *   ModelState.AddModelError("email", "Cette adresse email est invalide.");
             * }
             */
            if (string.IsNullOrEmpty(newUserInfos.nom))
            {
                ModelState.AddModelError("nom", "Vous devez entrer un nom, celui ci ne sera jamais affiché dans son entier (ex: Julien C).");
            }
            if (string.IsNullOrEmpty(newUserInfos.prenom))
            {
                ModelState.AddModelError("prenom", "Vous devez entrer un prénom.");
            }

            var file = Request.Files["userImage"];

            if ((file != null && (file.ContentLength != 0)) && (!file.ContentType.StartsWith("image") || Path.GetExtension(file.FileName) == ""))
            {
                ModelState.AddModelError("userImage", "Le format du fichier est invalide.");
            }

            //Test si le mail est déja prit
            //TODO: Ajaxer le test du mail déja prit

            /*
             * IUserProfile tMailUser = Data.UserDataAccess.GetUserByMail(newUserInfos.email.Trim().ToLower());
             * if (tMailUser != null && tMailUser.UserId != CurrentUser.UserId)
             * {
             *   ModelState.AddModelError("email", "Cette adresse email est déjà associée à un autre compte.");
             * }
             *
             * tMailUser = null; */
            if (ModelState.IsValid)
            {
                IUserProfile currUser = this.CurrentUser;

                /*
                 * bool emailChanged = false;
                 * if (currUser.Email.Trim().ToLower() != newUserInfos.email.Trim().ToLower())
                 * {
                 *  currUser.ActivationKey = Guid.NewGuid();
                 *  emailChanged = true;
                 * }
                 */
                try
                {
                    currUser = newUserInfos.UpdateUserProfile(currUser, Data);
                    if (file != null && file.ContentLength != 0)
                    {
                        currUser.ImagePersoPath = SaveUserImage(file, currUser);
                    }
                    //Update DB
                    Data.UserDataAccess.Save();
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("_FORM", "Vos modifications n'ont pas pu être effectuées.");
                    CovCake.Log.Error(ex.Message, ex);
                    return(View(newUserInfos));
                }

                //refresh page ou vider cache client.
                this.ValidStateMessages.Add("Vos informations ont bien été modifiées.");

                /*
                 * if (emailChanged)
                 * {
                 *  var newMail= newUserInfos.email.Trim().ToLower();
                 *  this.CovCakeMailer.SendChangeEmailMail(currUser, newMail);
                 *  this.ValidStateMessages.Add("Vous avez changé votre adresse email, un email de confirmation vous a été envoyé.");
                 *
                 * }*/
                TempData["ViewInfos"] = this.ValidStateMessages;
                return(RedirectToRoute(CovCake.Routes.MONCOMPTE));//"MonCompte");
            }

            return(View(newUserInfos));
        }
Exemplo n.º 3
0
        public ActionResult Inscription(UserInfosViewData registerData)
        {
            //string nom = form["nom"].ToTitleCase();
            //string prenom = form["prenom"].ToTitleCase();
            //string age_jour = form["age_jour"];
            //string age_mois = form["age_mois"];
            //string age_annee = form["sexe"];
            //string sexe = form["age_annee"];
            //string numdept = form["numdept"];
            //string ville = form["ville"];
            //string password = form["password"];
            //string confirmPassword = form["confirmPassword"];
            //string email = form["email"].ToLower();

            string nom             = registerData.nom.ToTitleCase().Trim();
            string prenom          = registerData.prenom.ToTitleCase().Trim();
            string age_jour        = registerData.age_jour;
            string age_mois        = registerData.age_mois;
            string age_annee       = registerData.age_annee;
            string sexe            = registerData.sexe;
            string numdept         = registerData.numdept;
            string ville           = registerData.ville.ToTitleCase().Trim();
            string password        = registerData.password;
            string confirmPassword = registerData.confirmPassword;
            string email           = registerData.email.ToLower().Trim();

            ViewData["PasswordLength"] = this.MembershipUserManager.MinRequiredPasswordLength;

            // Basic parameter validation
            if (String.IsNullOrEmpty(email))
            {
                ModelState.AddModelError("email", "Vous devez entrer une adresse email.");
            }
            else if (!CovCakeMailer.IsValidEmail(email))
            {
                ModelState.AddModelError("email", "Cette adresse email est invalide.");
            }
            if (password == null || password.Length < this.MembershipUserManager.MinRequiredPasswordLength)
            {
                ModelState.AddModelError("password",
                                         String.Format(CultureInfo.CurrentCulture,
                                                       "Le mot de passe doit être composé d'au moins {0} caracteres.",
                                                       this.MembershipUserManager.MinRequiredPasswordLength));
            }
            if (string.IsNullOrEmpty(nom))
            {
                ModelState.AddModelError("nom", "Vous devez entrer un nom, seule son initiale sera affichée (ex: Julien C).");
            }
            if (string.IsNullOrEmpty(prenom))
            {
                ModelState.AddModelError("prenom", "Vous devez entrer un prénom.");
            }

            if (!String.Equals(password, confirmPassword, StringComparison.Ordinal))
            {
                ModelState.AddModelError("confirmPassword", "Le mot de passe et sa confirmation ne correspondent pas.");
            }

            if (ViewData.ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;

                MembershipUser newUser = this.MembershipUserManager.CreateUser(email, password, email, null, null, false, null, out createStatus);


                if (newUser != null)
                {
                    using (TransactionScope trans = new TransactionScope())
                    {
                        Guid         userID    = (Guid)newUser.ProviderUserKey;
                        int          ageAnnee  = 1900 + int.Parse(age_annee);
                        DateTime     dateNaiss = new DateTime(ageAnnee, int.Parse(age_mois), int.Parse(age_jour));
                        IUserProfile user      = Data.UserDataAccess.CreateUser(userID, nom, prenom, dateNaiss, bool.Parse(sexe));
                        user.NumDepartement = numdept;
                        user.Ville          = ville;
                        user.ActivationKey  = Guid.NewGuid();
                        //Insert in table
                        Data.UserDataAccess.InsertUser(user);
                        ViewData["email"] = email;

                        if (CovCakeConfiguration.ConfirmRegistration)
                        {
                            //envoi de mail de confirm
                            bool rezsend = this.CovCakeMailer.SendSignupMail(user, email, password);

                            if (rezsend == false)
                            {
                                return(Error("Une erreur est survenue lors de votre enregistrement."));
                            }
                            trans.Complete();
                            return(View("PendingRegistration", user));
                        }
                        else
                        {
                            //Envoi mail de bienvenue
                            this.CovCakeMailer.SendSignupConfirmation(user, email, password);
                            //activation directe
                            this.ActivateAccount(user.ActivationKey.Value);

                            trans.Complete();
                            return(HomeIndex());  //RedirectToAction("Index", "Home");
                        }
                    }
                }
                else
                {
                    this.SetModelError(createStatus);
                }
            }

            // If we got this far, something failed, redisplay form
            // UpdateModel(registerData);
            return(View(registerData));
        }