From 5317e07ae5c6e587c8a66709e721e5b27a06bd7a Mon Sep 17 00:00:00 2001 From: yubaolee Date: Thu, 7 Jan 2016 15:55:53 +0800 Subject: [PATCH] check issue #6 --- OpenAuth.App/ModuleElementManagerApp.cs | 10 ++++---- OpenAuth.App/ViewModel/LoginUserVM.cs | 2 +- .../ModuleElementManagerController.cs | 23 ++++++++++++++---- .../Controllers/OrgManagerController.cs | 24 ++++--------------- .../ModuleElementManager/AssignForRole.cshtml | 3 ++- .../ModuleElementManager/AssignForUser.cshtml | 1 + 6 files changed, 34 insertions(+), 29 deletions(-) diff --git a/OpenAuth.App/ModuleElementManagerApp.cs b/OpenAuth.App/ModuleElementManagerApp.cs index e7ca45d5..a01f364e 100644 --- a/OpenAuth.App/ModuleElementManagerApp.cs +++ b/OpenAuth.App/ModuleElementManagerApp.cs @@ -96,15 +96,17 @@ namespace OpenAuth.App _repository.Delete(u =>u.Id ==id); } - public void AssignForRole(int roleId, int[] menuIds) + public void AssignForRole(int roleId,int moduleId, int[] menuIds) { - _relevanceRepository.DeleteBy("RoleElement", roleId); + var elements = _repository.Find(u => u.ModuleId == moduleId).Select(u =>u.Id); + _relevanceRepository.Delete(u =>elements.Contains(u.SecondId) &&u.Key =="RoleElement" && u.FirstId == roleId); _relevanceRepository.AddRelevance("RoleElement", menuIds.ToLookup(u => roleId)); } - public void AssignForUser(int userId, int[] ids) + public void AssignForUser(int userId, int moduleId, int[] ids) { - _relevanceRepository.DeleteBy("UserElement", userId); + var elements = _repository.Find(u => u.ModuleId == moduleId).Select(u => u.Id); + _relevanceRepository.Delete(u => elements.Contains(u.SecondId) && u.Key == "UserElement" && u.FirstId == userId); _relevanceRepository.AddRelevance("UserElement", ids.ToLookup(u => userId)); } } diff --git a/OpenAuth.App/ViewModel/LoginUserVM.cs b/OpenAuth.App/ViewModel/LoginUserVM.cs index 47cb5fed..7b216ab9 100644 --- a/OpenAuth.App/ViewModel/LoginUserVM.cs +++ b/OpenAuth.App/ViewModel/LoginUserVM.cs @@ -39,7 +39,7 @@ namespace OpenAuth.App.ViewModel /// /// 用户可访问的机构 /// - public List AccessedOrgs { get; set; } + public IEnumerable AccessedOrgs { get; set; } } } diff --git a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs index de08884c..76a9fd40 100644 --- a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs +++ b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs @@ -77,13 +77,21 @@ namespace OpenAuth.Mvc.Controllers ViewBag.RoleId = roleId; return View(); } + + /// + /// 为角色分配菜单 + /// + /// 角色ID + /// 模块ID + /// 菜单ID列表 + /// [HttpPost] - public string AssignForRole(int roleId, string menuIds) + public string AssignForRole(int roleId,int moduleId, string menuIds) { try { var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray(); - _app.AssignForRole(roleId, ids); + _app.AssignForRole(roleId,moduleId, ids); } catch (Exception e) { @@ -106,13 +114,20 @@ namespace OpenAuth.Mvc.Controllers ViewBag.UserId = userId; return View(); } + /// + /// 为用户分配菜单 + /// + /// 用户ID + /// 模块ID + /// 菜单ID列表 + /// [HttpPost] - public string AssignForUser(int userId, string menuIds) + public string AssignForUser(int userId,int moduleId, string menuIds) { try { var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray(); - _app.AssignForUser(userId, ids); + _app.AssignForUser(userId,moduleId, ids); } catch (Exception e) { diff --git a/OpenAuth.Mvc/Controllers/OrgManagerController.cs b/OpenAuth.Mvc/Controllers/OrgManagerController.cs index a3d24119..7cfce9bb 100644 --- a/OpenAuth.Mvc/Controllers/OrgManagerController.cs +++ b/OpenAuth.Mvc/Controllers/OrgManagerController.cs @@ -3,6 +3,7 @@ using OpenAuth.App; using OpenAuth.Domain; using OpenAuth.Mvc.Models; using System; +using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using Infrastructure.Helper; @@ -59,16 +60,15 @@ namespace OpenAuth.Mvc.Controllers var orgs = SessionHelper.GetSessionUser().AccessedOrgs; return JsonHelper.Instance.Serialize(orgs); } - - public string LoadOrgWithRoot() + public string LoadOrg() { - var orgs = SessionHelper.GetSessionUser().AccessedOrgs; + var orgs = SessionHelper.GetSessionUser().AccessedOrgs.MapToList(); //添加根节点 orgs.Add(new Org { Id = 0, ParentId = -1, - Name = "根节点", + Name = "根结点", CascadeId = "0" }); return JsonHelper.Instance.Serialize(orgs); @@ -164,21 +164,7 @@ namespace OpenAuth.Mvc.Controllers } return JsonHelper.Instance.Serialize(BjuiResponse); } - - public string LoadOrg() - { - var orgs = _orgApp.GetAll(); - //添加根节点 - orgs.Add(new Org - { - Id = 0, - ParentId = -1, - Name = "根结点", - CascadeId = "0" - }); - return JsonHelper.Instance.Serialize(orgs); - } - + public string LoadChildren(int id) { return JsonHelper.Instance.Serialize(_orgApp.LoadAllChildren(id)); diff --git a/OpenAuth.Mvc/Views/ModuleElementManager/AssignForRole.cshtml b/OpenAuth.Mvc/Views/ModuleElementManager/AssignForRole.cshtml index 573ff9d7..87a43ba1 100644 --- a/OpenAuth.Mvc/Views/ModuleElementManager/AssignForRole.cshtml +++ b/OpenAuth.Mvc/Views/ModuleElementManager/AssignForRole.cshtml @@ -117,7 +117,8 @@ $.post("ModuleElementManager/AssignForRole", { - roleId:$('#roleId').val(), + roleId: $('#roleId').val(), + moduleId: selectedId, menuIds: selected }, function (data) { diff --git a/OpenAuth.Mvc/Views/ModuleElementManager/AssignForUser.cshtml b/OpenAuth.Mvc/Views/ModuleElementManager/AssignForUser.cshtml index a5adefbb..987b9fe0 100644 --- a/OpenAuth.Mvc/Views/ModuleElementManager/AssignForUser.cshtml +++ b/OpenAuth.Mvc/Views/ModuleElementManager/AssignForUser.cshtml @@ -115,6 +115,7 @@ $.post("ModuleElementManager/AssignForUser", { userId: $('#userId').val(), + moduleId:selectedId, menuIds: selected }, function (data) {