예제 #1
0
        public ActionResult Edit(Guid Id)
        {
            var user = MembershipService.Get(Id, true);

            if (LoginUser.UserName == user.UserName)
            {
                return(RedirectToAction("ChangeInfo"));
            }

            if (!LoginRequest.IsSuperAccount())
            {
                if (MembershipService.UserInRole(user, AppConstants.AdminRoleName))
                {
                    TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Bạn không có quyện hạn thực hiện thao tác này!",
                        MessageType = GenericMessages.warning
                    };

                    return(RedirectToAction("Index"));
                }
            }

            AdminEditMemberViewModel viewModel = new AdminEditMemberViewModel {
                Id       = Id,
                UserName = user.UserName,
                Email    = user.Email,
                Avatar   = user.Avatar,

                Roles = GetRolesEdit(user),
            };


            return(View(viewModel));
        }
예제 #2
0
        public ActionResult Edit(AdminEditMemberViewModel viewModel)
        {
            var user = MembershipService.Get(viewModel.Id, true);

            if (LoginUser.UserName == user.UserName)
            {
                return(RedirectToAction("ChangeInfo"));
            }

            if (!LoginRequest.IsSuperAccount())
            {
                if (MembershipService.UserInRole(user, AppConstants.AdminRoleName))
                {
                    TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Bạn không có quyện hạn thực hiện thao tác này!",
                        MessageType = GenericMessages.warning
                    };

                    return(RedirectToAction("Index"));
                }
            }

            if (ModelState.IsValid)
            {
                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    try
                    {
                        user.Email  = viewModel.Email;
                        user.Avatar = viewModel.Avatar;

                        MembershipService.ClearRolesByUser(user);
                        if (viewModel.Roles != null)
                        {
                            foreach (var it in viewModel.Roles)
                            {
                                if (!it.Check)
                                {
                                    continue;
                                }
                                it.RoleName = _roleSevice.GetRoleNameById(it.RoleId);
                                if (it.RoleName == AppConstants.AdminRoleName && !LoginRequest.IsSuperAccount())
                                {
                                    continue;
                                }
                                if (it.RoleName == AppConstants.GuestRoleName || it.RoleName == AppConstants.StandardRoleName)
                                {
                                    continue;
                                }


                                MembershipService.AddRoleByUser(user.Id, it.RoleId);
                            }
                        }


                        unitOfWork.Commit();

                        TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                        {
                            Message     = LocalizationService.GetResourceString("Cập nhật tài khoản thành công."),
                            MessageType = GenericMessages.success
                        };
                    }
                    catch (Exception ex)
                    {
                        LoggingService.Error(ex);
                        unitOfWork.Rollback();

                        ModelState.AddModelError("", "Có lỗi không mong muốn xảy ra! Xin thử lại.");
                    }
                }
            }

            viewModel.UserName = user.UserName;
            return(View(viewModel));
        }