Пример #1
0
        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));
        }
Пример #2
0
        public ActionResult ResetPassword(int userId)
        {
            if (!IsAdmin())
            {
                return(AuthFailure());
            }
            var user = UserBD.Get(userId);

            user.Password = DefaultPassword;

            return(ClientShowMessage(Res.M("ResetPassword_Succeed")));
        }
Пример #3
0
        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);
        }