public async Task <IActionResult> DeleteConfirmed(string id) { Logger.Trace($"[{nameof(DeleteConfirmed)}] 用户[{SignUser.SignName}]()删除出用户({id})"); try { // 1. 权限验证 if (!await RoleOrgPerManager.HasPermission <User>(SignUser.Id, Constants.USER_DELETE, id)) { Logger.Warn($"[{nameof(Edit)}] 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.USER_DELETE})"); ViewData["ErrMsg"] = "没有权限"; return(RedirectToAction(nameof(Index))); } // 2. 业务处理 await UserManager.DeleteByUserId(SignUser.Id, id); // 删除成功 -跳转到用户列表 return(RedirectToAction(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(DeleteConfirmed)}] 用户删除失败:\r\n" + e); // 跳转回删除界面 -需要在界面说明发生了错误 --不清楚routeValues式怎么匹配的需要了解一下 return(RedirectToAction(nameof(Delete), new { id, errMsg = e.Message })); } }
/// <summary> /// 列表 -跳转到列表界面 /// </summary> /// <returns></returns> // GET: UserBaseJsons public async Task <IActionResult> Index(int pageIndex = 0, int pageSize = 10) { Logger.Trace($"[{nameof(Index)}] 用户[{SignUser.SignName}]({SignUser.Id})查询可见用户列表, 请求参数: pageIndex: {pageIndex}, pageSize: {pageSize}"); ViewData[Constants.SIGNUSER] = SignUser; try { // 1. 权限验证 -在自己组织有没权限 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.USER_QUERY)) { Logger.Warn($"[{nameof(Index)}] 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.USER_QUERY})"); ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(HomeController.Index), HomeController.Name)); } // 2. 业务处理 var users = await UserManager.FindByUserId(SignUser.Id); // 分页查询用户列表 var data = users.AsQueryable().Page(pageIndex, pageSize).ToList(); Logger.Trace($"[{nameof(Index)}] 响应数据:\r\n{JsonUtil.ToJson(data)}"); return(View(data)); } catch (Exception e) { Logger.Error($"[{nameof(Index)}] 服务器错误:\r\n{e.ToString()}"); return(RedirectToAction(nameof(HomeController.Index), HomeController.Name)); } }
public async Task <IActionResult> Edit(string id, [Bind("Id,SignName,PassWord")] UserJson user) { Logger.Trace($"[{nameof(Edit)}] 用户[{SignUser.SignName}]({SignUser.Id})编辑用户({id}) 请求参数:\r\n" + JsonUtil.ToJson(user)); // 0. 参数检查 if (id != user.Id) { return(NotFound()); } try { // 1. 权限验证 if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.USER_UPDATE)) { Logger.Warn($"[{nameof(Edit)}] 没有权限"); ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 await UserManager.Update(user); // 编辑成功 -跳转到用户列表 return(RedirectToAction(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 用户信息更新失败: " + e); if (!await UserManager.ExistById(user.Id)) { return(NotFound()); } ModelState.AddModelError("All", "用户信息更新失败"); return(View(user)); } }
/// <summary> /// MVC 编辑 -跳转到编辑界面 /// </summary> /// <param name="id"></param> /// <returns></returns> // GET: UserBaseJsons/Edit/5 public async Task <IActionResult> Edit(string id) { Logger.Trace($"[{nameof(Edit)}] 请求参数: 用户ID({id})"); if (id == null) { return(NotFound()); } try { // 1. 权限验证 if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.USER_UPDATE)) { Logger.Warn($"[{nameof(Edit)}] 没有权限"); ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 var user = await UserManager.FindById(id).SingleOrDefaultAsync(); Logger.Trace($"[{nameof(Edit)}] 响应数据:\r\n{JsonUtil.ToJson(user)}"); if (user == null) { Logger.Trace($"[{nameof(Edit)}] 进入编辑界面-用户不存在({id})"); return(NotFound()); } return(View(Mapper.Map <UserJson>(user))); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 服务器错误:\r\n{e}"); return(RedirectToAction(nameof(Index))); } }
/// <summary> /// [MVC] 跳转到用户新建界面 /// 在组织(orgId)下创建用户 /// </summary> /// <param name="orgId">组织ID</param> /// <returns></returns> // GET: UserBaseJsons/Create public async Task <IActionResult> Create(string orgId) { Logger.Trace($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})跳转到用户新建界面, 请求参数:{nameof(orgId)}({orgId})"); try { // 1. 权限验证 if (orgId == null) { if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.USER_CREATE)) { return(RedirectToAction(nameof(Index))); } } else { if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.USER_CREATE, orgId)) { return(RedirectToAction(nameof(Index))); } } // 查询有权限添加用户的组织 var organizations = await RoleOrgPerManager.FindOrgByUserIdPerName(SignUser.Id, Constants.USER_CREATE); ViewData["OrgId"] = new SelectList(organizations, nameof(Organization.Id), nameof(Organization.Name), orgId); return(View()); } catch (Exception e) { Logger.Error($"[{nameof(Details)}] 用户[{SignUser.SignName}]({SignUser.Id})跳转界面(在组织({orgId})下创建用户)失败, 服务器错误:\r\n{e}"); ViewData["ErrMsg"] = e.Message; return(RedirectToAction(nameof(Index))); } }
public async Task <IActionResult> Create(string orgId, UserJson userJson) { Logger.Trace($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})在组织({orgId??"本组织"})新增用户:\r\n{JsonUtil.ToJson(userJson)}"); // 0. 检查参数 if (string.IsNullOrWhiteSpace(userJson.SignName) || string.IsNullOrWhiteSpace(userJson.PassWord)) { ModelState.AddModelError("All", "用户名或密码不能为空"); return(View()); } try { // 1. 权限检查 -这里创建用户是在自己公司创建 -指定公司创建需要UserOrg表 if (!(await RoleOrgPerManager.HasPermissionForUser(SignUser.Id, Constants.USER_CREATE, SignUser.Id))) { Logger.Warn($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.USER_CREATE})操作用户({SignUser.Id})"); ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } if (await UserManager.ExistByName(userJson.SignName)) { ModelState.AddModelError("All", "创建的用户已经存在"); return(View(userJson)); } // 2. 处理业务 var user = await UserManager.CreateToOrgByUserId(SignUser.Id, userJson, orgId); if (user != null) { return(RedirectToAction(nameof(Index))); } else { ModelState.AddModelError("All", "新增失败"); return(View(userJson)); } } catch (Exception e) { Logger.Error($"[{nameof(Details)}] 服务器错误:\r\n{e}"); ModelState.AddModelError("All", e.Message); return(View(userJson)); } }
/// <summary> /// 详情 -跳转到详情界面 /// </summary> /// <param name="id">用户ID</param> /// <returns></returns> // GET: UserBaseJsons/Details/5 public async Task <IActionResult> Details(string id) { Logger.Trace($"[{nameof(Details)}] 查看用户详情 用户ID: {id}"); // 0. 检查参数 if (id == null) { return(NotFound()); } try { // 1. 权限检查 if (!(await RoleOrgPerManager.HasPermissionForUser(SignUser.Id, Constants.USER_QUERY, id))) { Logger.Warn($"用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.USER_QUERY})操作用户({id})"); ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 var user = await UserManager.FindById(id).SingleOrDefaultAsync(); Logger.Trace($"[{nameof(Details)}] 响应数据:\r\n{JsonUtil.ToJson(user)}"); if (user == null) { return(NotFound()); } else { // 再查询用户绑定的角色列表 ViewData[Constants.ROLES] = await RoleManager.FindByUserId(id); ViewData[Constants.USERROLES] = await UserRoleManager.FindByUserId(id).ToListAsync(); return(View(user)); } } catch (Exception e) { Logger.Error($"[{nameof(Details)}] 服务器错误:\r\n{e}"); return(RedirectToAction(nameof(Index))); } }