check issue #6

This commit is contained in:
yubaolee 2016-01-07 15:55:53 +08:00
parent f0b42e83d4
commit 5317e07ae5
6 changed files with 34 additions and 29 deletions

View File

@ -96,15 +96,17 @@ namespace OpenAuth.App
_repository.Delete(u =>u.Id ==id); _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)); _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)); _relevanceRepository.AddRelevance("UserElement", ids.ToLookup(u => userId));
} }
} }

View File

@ -39,7 +39,7 @@ namespace OpenAuth.App.ViewModel
/// <summary> /// <summary>
/// 用户可访问的机构 /// 用户可访问的机构
/// </summary> /// </summary>
public List<Org> AccessedOrgs { get; set; } public IEnumerable<Org> AccessedOrgs { get; set; }
} }
} }

View File

@ -77,13 +77,21 @@ namespace OpenAuth.Mvc.Controllers
ViewBag.RoleId = roleId; ViewBag.RoleId = roleId;
return View(); return View();
} }
/// <summary>
/// 为角色分配菜单
/// </summary>
/// <param name="roleId">角色ID</param>
/// <param name="moduleId">模块ID</param>
/// <param name="menuIds">菜单ID列表</param>
/// <returns></returns>
[HttpPost] [HttpPost]
public string AssignForRole(int roleId, string menuIds) public string AssignForRole(int roleId,int moduleId, string menuIds)
{ {
try try
{ {
var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray(); var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray();
_app.AssignForRole(roleId, ids); _app.AssignForRole(roleId,moduleId, ids);
} }
catch (Exception e) catch (Exception e)
{ {
@ -106,13 +114,20 @@ namespace OpenAuth.Mvc.Controllers
ViewBag.UserId = userId; ViewBag.UserId = userId;
return View(); return View();
} }
/// <summary>
/// 为用户分配菜单
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="moduleId">模块ID</param>
/// <param name="menuIds">菜单ID列表</param>
/// <returns></returns>
[HttpPost] [HttpPost]
public string AssignForUser(int userId, string menuIds) public string AssignForUser(int userId,int moduleId, string menuIds)
{ {
try try
{ {
var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray(); var ids = menuIds.Split(',').Select(id => int.Parse(id)).ToArray();
_app.AssignForUser(userId, ids); _app.AssignForUser(userId,moduleId, ids);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -3,6 +3,7 @@ using OpenAuth.App;
using OpenAuth.Domain; using OpenAuth.Domain;
using OpenAuth.Mvc.Models; using OpenAuth.Mvc.Models;
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Web.Mvc; using System.Web.Mvc;
using Infrastructure.Helper; using Infrastructure.Helper;
@ -59,16 +60,15 @@ namespace OpenAuth.Mvc.Controllers
var orgs = SessionHelper.GetSessionUser<LoginUserVM>().AccessedOrgs; var orgs = SessionHelper.GetSessionUser<LoginUserVM>().AccessedOrgs;
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
} }
public string LoadOrg()
public string LoadOrgWithRoot()
{ {
var orgs = SessionHelper.GetSessionUser<LoginUserVM>().AccessedOrgs; var orgs = SessionHelper.GetSessionUser<LoginUserVM>().AccessedOrgs.MapToList<Org>();
//添加根节点 //添加根节点
orgs.Add(new Org orgs.Add(new Org
{ {
Id = 0, Id = 0,
ParentId = -1, ParentId = -1,
Name = "根点", Name = "根点",
CascadeId = "0" CascadeId = "0"
}); });
return JsonHelper.Instance.Serialize(orgs); return JsonHelper.Instance.Serialize(orgs);
@ -164,21 +164,7 @@ namespace OpenAuth.Mvc.Controllers
} }
return JsonHelper.Instance.Serialize(BjuiResponse); 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) public string LoadChildren(int id)
{ {
return JsonHelper.Instance.Serialize(_orgApp.LoadAllChildren(id)); return JsonHelper.Instance.Serialize(_orgApp.LoadAllChildren(id));

View File

@ -117,7 +117,8 @@
$.post("ModuleElementManager/AssignForRole", $.post("ModuleElementManager/AssignForRole",
{ {
roleId:$('#roleId').val(), roleId: $('#roleId').val(),
moduleId: selectedId,
menuIds: selected menuIds: selected
}, },
function (data) { function (data) {

View File

@ -115,6 +115,7 @@
$.post("ModuleElementManager/AssignForUser", $.post("ModuleElementManager/AssignForUser",
{ {
userId: $('#userId').val(), userId: $('#userId').val(),
moduleId:selectedId,
menuIds: selected menuIds: selected
}, },
function (data) { function (data) {