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 ResetPassword(int userId) { if (!IsAdmin()) { return(AuthFailure()); } var user = UserBD.Get(userId); user.Password = DefaultPassword; return(ClientShowMessage(Res.M("ResetPassword_Succeed"))); }
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); }