예제 #1
0
        public virtual async Task <ActionResult> Edit(EditUserViewModel viewModel)
        {
            #region Validation
            if (_userManager.CheckUserNameExist(viewModel.UserName, viewModel.Id))
            {
                this.AddErrors("UserName", "این نام کاربری قبلا در سیستم ثبت شده است");
            }
            if (_userManager.CheckNameForShowExist(viewModel.NameForShow, viewModel.Id))
            {
                this.AddErrors("NameForShow", "این نام نمایشی قبلا  در سیستم ثبت شده است");
            }
            if (viewModel.Password.IsNotEmpty() && !viewModel.Password.IsSafePasword())
            {
                this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است");
            }
            if (_userManager.CheckEmailExist(viewModel.Email, viewModel.Id))
            {
                this.AddErrors("Email", "این ایمیل قبلا در سیستم ثبت شده است");
            }
            //if (_userManager.CheckFacebookIdExist(viewModel.FaceBookId, viewModel.Id))
            //    this.AddErrors("FaceBookId", "این آد دی قبلا در سیستم ثبت شده است");
            //if (_userManager.CheckFacebookIdExist(viewModel.GooglePlusId, viewModel.Id))
            //    this.AddErrors("GooglePlusId", "این آد دی قبلا در سیستم ثبت شده است");

            #endregion

            if (!ModelState.IsValid)
            {
                await PopulateRoles(viewModel.RoleIds);

                return(View(viewModel));
            }

            var dbUser = await _userManager.FindByIdAsync(viewModel.Id);

            if (dbUser == null)
            {
                return(HttpNotFound());
            }

            var avatarName = viewModel.Id.ToString();
            if (viewModel.AvatarImage != null && viewModel.AvatarImage.ContentLength > 0)
            {
                avatarName = this.UploadAvatarFile(viewModel.AvatarImage, avatarName);
            }
            viewModel.AvatarFileName = avatarName;

            if (!await _userManager.EditUser(viewModel))
            {
                ViewBag.ErrorMessage = "لطفا برای کاربر مورد نظر ، گروه کاربری تعیین کنید";
                await PopulateRoles();

                return(View(viewModel));
            }


            ViewBag.Message = "عملیات  ویرایش کاربر با موفقیت انجام شد";
            return(RedirectToAction("Index", "User"));
        }
예제 #2
0
        public virtual async Task <ActionResult> Register(RegisterViewModel model)
        {
            #region Validation
            if (_userManager.CheckEmailExist(model.Email, null))
            {
                this.AddErrors("Email", "این ایمیل قبلا در سیستم ثبت شده است");
            }

            if (_userManager.CheckUserNameExist(model.UserName, null))
            {
                this.AddErrors("UserName", "این نام کاربری قبلا در سیستم ثبت شده است");
            }

            if (_userManager.CheckNameForShowExist(model.NameForShow, null))
            {
                this.AddErrors("NameForShow", "این نام نمایشی قبلا در سیستم ثبت شده است");
            }

            if (!model.Password.IsSafePasword())
            {
                this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }


            #endregion

            var userId = await _userManager.CreateAsync(model);

            await SendConfirmationEmail(model.Email, userId);

            this.NotySuccess("حساب کاربری شما با موفقیت ایجاد شد. برای فعال سازی " +
                             "حساب خود به صندوق پستی خود مراجعه کنید",
                             isSticky: true);

            return(RedirectToAction(MVC.Home.ActionNames.Index, MVC.Home.Name));
        }
예제 #3
0
        public virtual JsonResult IsEmailExist(string email, Guid?id)
        {
            var check = _userManager.CheckEmailExist(email, id);

            return(check ? Json(false) : Json(true));
        }
예제 #4
0
        public virtual async Task <ActionResult> Register(RegisterViewModel model)
        {
            #region Validation
            var allRoles = await _roleManager.GetAllRolesAsync();

            var isDefaultForRegister = allRoles.FirstOrDefault(q => q.IsDefaultForRegister);

            if (_userManager.CheckEmailExist(model.Email, null))
            {
                this.AddErrors("Email", "این ایمیل قبلا در سیستم ثبت شده است");
            }

            if (_userManager.CheckUserNameExist(model.UserName, null))
            {
                this.AddErrors("UserName", "این نام کاربری قبلا در سیستم ثبت شده است");
            }

            if (_userManager.CheckNameForShowExist(model.NameForShow, null))
            {
                this.AddErrors("NameForShow", "این نام نمایشی قبلا در سیستم ثبت شده است");
            }

            if (!model.Password.IsSafePasword())
            {
                this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است");
            }

            if (!model.Password.IsSafePasword())
            {
                this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است");
            }

            if (isDefaultForRegister == null)
            {
                this.AddErrors("Role", "نقشی برای کاربران ثبت نام شده تعیین نشده است");
            }


            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            #endregion

            model.RegistrationIp = Network.GetClientIp();
            model.RegisterDate   = DateTime.Now;
            var userId = await _userManager.CreateAsync(model);

            await _userManager.AddToRolesAsync(userId, isDefaultForRegister.Name);

            //TODO
            // Send Confirmation Email
            await _emailService.SendEmailAsync(new IdentityMessage
            {
                Body =
                    "<table style=\"background-color: #f6f6f6; width: 100%; font-family: calibri; font-size: 16px; direction: rtl; line-height: 18pt; text-align: right;\"> " +
                    "<tbody> <tr> <td style=\"display: block !important; max-width: 600px !important; margin: 0 auto !important; clear: both !important;\" width=\"600\"> " +
                    "<div style=\"max-width: 600px; margin: 0 auto; display: block; padding: 20px;\"> " +
                    "<table style=\"background: #fff; border: 1px solid #e9e9e9; border-radius: 3px;\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"> " +
                    "<tbody> <tr> <td style=\"padding: 20px;\"> <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"> " +
                    "<tbody> <tr> <td style=\"padding: 0 0 20px; text-align: center\"> <img src=\"http://aminmohamadi.ir/content/images/logo.png\" alt=\"\" /> </td> </tr> <tr> " +
                    "<td style=\"padding: 0 0 20px;\"> " + model.NameForShow +
                    " عزیز </td> </tr> <tr> <td style=\"padding: 0 0 20px;\">" +
                    " با عرض سلام و احترام <br />" +
                    " از این پس میتوانید با استفاده از نام کاربری و رمز عبور زیر جهت ورود به حساب کاربری خود وارد شوید </td> </tr> <tr> " +
                    "<td style=\"padding: 0 0 20px;\"> نام کاربری: " + model.UserName + " <br /> کلمه عبور: " + model.Password +
                    " </td> </tr> <tr> " +
                    "<td style=\"padding: 0 0 20px;\"> برای تغییر کلمه عبور باید کافیست به قسمت حساب کاربری سایت مراجعه کنید. </td> </tr> <tr> " +
                    "<td style=\"padding: 20px; text-align: center\"> <a href=\"http://aminmohamadi.ir\" style=\"text-decoration: none; color: #FFF; font-size: 14px; background-color:" +
                    " #348eda;border: solid #348eda; border-width: 10px 20px; line-height: 2; font-weight: bold; text-align: center; cursor: pointer; display: inline-block; border-radius: 5px; text-transform: capitalize;\">" +
                    "صفحه اصلی سایت</a> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </div> </td> <td></td> </tr> </tbody></table>",

                Destination = model.Email,
                Subject     = "ایجاد حساب کاربری جدید - AminMohamadi.ir"
            });



            ViewBag.Message = "حساب کاربری شما با موفقیت ایجاد شد. ایمیلی حاوی نام کاربری و رمز عبور شما برای شما فرستاده شد. " +
                              "برای مشاهده اطلاعات کاربری به ایمیل خود مراجعه کنید.";

            return(View("RegisterSuccessfully"));
        }