public ActionResult Edit(int id)
        {
            var user = UserBD.Get(id);
            var m    = new UserEditVM
            {
                Input = Map <User, UserEditVM.EditInput>(user)
            };

            foreach (var func in user.Dept.Corp.Funcs)
            {
                m.Input.CorpFuncIds = m.Input.CorpFuncIds + "," + func.Id;
            }
            if (m.Input.CorpFuncIds != "")
            {
                m.Input.CorpFuncIds = m.Input.CorpFuncIds.Substring(1);
            }
            foreach (var func in user.Dept.Funcs)
            {
                m.Input.DeptFuncIds = m.Input.DeptFuncIds + "," + func.Id;
            }
            if (m.Input.DeptFuncIds != "")
            {
                m.Input.DeptFuncIds = m.Input.DeptFuncIds.Substring(1);
            }
            foreach (var func in user.Funcs)
            {
                m.Input.UserFuncIds = m.Input.UserFuncIds + "," + func.Id;
            }
            if (m.Input.UserFuncIds != "")
            {
                m.Input.UserFuncIds = m.Input.UserFuncIds.Substring(1);
            }
            m.CanChangeUserFunc = (!user.Equals(GetLoginUser()) && CanAccess("_ChangeUserFunc"));
            return(ForView(m));
        }
 public ActionResult Delete(UserSearchVM searchvm, UserListVM listvm)
 {
     foreach (var id in listvm.Input.SelectedValues)
     {
         UserBD.Delete(id);
     }
     return(List(searchvm, listvm));
 }
        public ActionResult List(UserSearchVM searchvm, UserListVM listvm)
        {
            Expression <Func <User, bool> > filter = o => o.Corp.Id == GetLoginCorpId();

            if (Util.IsNotNull(searchvm.Input.Dept))
            {
                listvm.DeptId = searchvm.Input.Dept.Id;
                filter        = o => o.Dept.Id == searchvm.Input.Dept.Id;
            }
            listvm.ResultList = UserBD.GetDtoList <UserListVM.ListRow>(listvm.Input.Pager, filter, listvm.Input.OrderExpression);
            return(ForView("List", listvm));
        }
        public ActionResult ResetPassword(int userId)
        {
            if (!IsAdmin())
            {
                return(AuthFailure());
            }
            var user = UserBD.Get(userId);

            user.Password = DefaultPassword;

            return(ClientShowMessage(Res.M("ResetPassword_Succeed")));
        }
 public static UserModel Transform(UserBD entity)
 {
     return(new UserModel()
     {
         Education = entity.Education,
         Email = entity.Email,
         Information = entity.Information,
         InterestedTheme = entity.InterestedTheme,
         Login = entity.Login,
         Name = entity.Name,
         PhotoLink = entity.PhotoLink,
         Password = entity.Password,
         Phone = entity.Phone,
         SecondName = entity.SecondName,
         WorksOrdered = entity.WorksOrdered,
         WorksPerformed = entity.WorksPerformed
     });
 }
        private void Save(UserEditVM.EditInput input)
        {
            User user;

            if (input.Id == 0)
            {
                user          = new User();
                user.Corp     = GetLoginCorp();
                user.Password = DefaultPassword;
                user.Funcs    = new DomainList <Func>();
            }
            else
            {
                user = UserBD.Get(input.Id);
            }
            if (IsAdmin(user))
            {
                throw new AuthFailureException();
            }
            user.Dept = input.Dept.ToReferencedDO(DeptBD);
            if (!AdminCode.Equals(user.Code, StringComparison.OrdinalIgnoreCase))
            {
                user.Code = input.Code;
            }
            user.Name     = input.Name;
            user.IsActive = input.IsActive;
            if (user != GetLoginUser())
            {
                if (CanAccess("_ChangeUserFunc"))
                {
                    user.Funcs.Clear();
                    if (!string.IsNullOrEmpty(input.UserFuncIds))
                    {
                        Array.ForEach(input.UserFuncIds.Split(','), o => user.Funcs.Add(FuncBD.Get(int.Parse(o))));
                    }
                }
            }
            UserBD.Save(user);
        }