完成资源授权,元旦节正式发布1.0版,敬请期待!

This commit is contained in:
yubaolee
2015-12-22 15:04:15 +08:00
parent f853bd13b7
commit 935f5e5cc1
13 changed files with 463 additions and 42 deletions

View File

@@ -32,11 +32,6 @@ namespace OpenAuth.Mvc.Controllers
return View();
}
public ActionResult LookupMulti()
{
return View();
}
public ActionResult AddOrg()
{
return View();

View File

@@ -1,13 +1,13 @@
using System;
using System.Web.Mvc;
using Infrastructure;
using OpenAuth.App;
using OpenAuth.Domain;
using System;
using System.Linq;
using System.Web.Mvc;
namespace OpenAuth.Mvc.Controllers
{
public class ResourceManagerController : BaseController
public class ResourceManagerController : BaseController
{
private ResourceManagerApp _app;
@@ -35,7 +35,6 @@ namespace OpenAuth.Mvc.Controllers
try
{
_app.AddOrUpdate(model);
}
catch (Exception ex)
{
@@ -52,20 +51,20 @@ namespace OpenAuth.Mvc.Controllers
{
return JsonHelper.Instance.Serialize(_app.Load(categoryId, pageCurrent, pageSize));
}
public string LoadForTree()
{
var models = _app.LoadAll();
//添加根节点
models.Add(new Resource
{
Id = 0,
ParentId = -1,
Name = "根结点",
CascadeId = "0"
});
return JsonHelper.Instance.Serialize(models);
}
public string LoadForTree()
{
var models = _app.LoadAll();
//添加根节点
models.Add(new Resource
{
Id = 0,
ParentId = -1,
Name = "根结点",
CascadeId = "0"
});
return JsonHelper.Instance.Serialize(models);
}
public string Delete(int Id)
{
@@ -82,6 +81,63 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(BjuiResponse);
}
#region
public ActionResult LookupMultiForUser(int userId)
{
ViewBag.UserId = userId;
return View();
}
public string LoadWithUserAccess(int cId, int userId)
{
return JsonHelper.Instance.Serialize(_app.LoadWithAccess("UserResource",userId, cId));
}
public string AccessForUser(int userId, string ids)
{
try
{
var resIds = ids.Split(',').Select(id => int.Parse(id)).ToArray();
_app.AssignResForUser(userId, resIds);
}
catch (Exception e)
{
BjuiResponse.message = e.Message;
BjuiResponse.statusCode = "300";
}
return JsonHelper.Instance.Serialize(BjuiResponse);
}
#endregion
#region
public ActionResult LookupMultiForRole(int roleId)
{
ViewBag.RoleId = roleId;
return View();
}
public string LoadWithRoleAccess(int cId, int roleId)
{
return JsonHelper.Instance.Serialize(_app.LoadWithAccess("RoleResource", roleId, cId));
}
public string AccessForRole(int roleId, string ids)
{
try
{
var resIds = ids.Split(',').Select(id => int.Parse(id)).ToArray();
_app.AssignResForRole(roleId, resIds);
}
catch (Exception e)
{
BjuiResponse.message = e.Message;
BjuiResponse.statusCode = "300";
}
return JsonHelper.Instance.Serialize(BjuiResponse);
}
#endregion
}
}

View File

@@ -575,6 +575,8 @@
<Content Include="Views\ResourceManager\Add.cshtml" />
<Content Include="Views\ResourceManager\Index.cshtml" />
<Content Include="Views\RoleManager\LookupMulti.cshtml" />
<Content Include="Views\ResourceManager\LookupMultiForUser.cshtml" />
<Content Include="Views\ResourceManager\LookupMultiForRole.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />

View File

@@ -0,0 +1,126 @@
@{
string _prefix = "assignResForRole";
var _treeId = _prefix + "Tree";
var _gridId = _prefix + "Grid";
var _treeDetail = _prefix + "Detail";
}
<div class="bjui-pageHeader">
<div class="bjui-searchBar">
<input style="display: none" id="roleId" value="@ViewBag.RoleId" />
<div class="pull-right">
<div class="alert alert-info search-inline">
<i class="fa fa-info-circle"></i> 点击行为单选,点击复选框可多选统一授权
</div>&nbsp;
<button type="button" class="btn-green" data-num="1" data-icon="plus" onclick="assign()">
授权选中项目
</button>&nbsp;
</div>
</div>
</div>
<div class="bjui-pageContent tableContent">
<div class="clearfix">
<div style="float: left; width: 220px; overflow: auto;" class="table table-bordered">
<ul id="@_treeId" class="ztree"></ul>
</div>
<div id="@_treeDetail" style="margin-left: 225px;">
</div>
</div>
</div>
<script type="text/javascript">
var selectedId = 0;
$(document).ready(function () {
initZtree();
loadDataGrid();
});
//加载数据到datagrid
function loadDataGrid() {
//b-jui的datagrid需要重新处理HTML
$('#@_treeDetail').empty()
.append('<table id="@_gridId" class="table table-bordered table-hover table-striped table-top"></table>');
$('#@_gridId').datagrid({
showToolbar: false,
filterThead: false,
columns: [
{
name: 'Id',
label: '角色ID',
hide: true
},
{
name: 'Name',
label: '角色名称',
width: 100
},
{
name: 'IsBelongUser',
label: '是否已经授权',
type: 'select',
align: 'center',
items: [{ 'false': '未授权', 'true': '已授权' }],
width: 100
}
],
dataUrl: 'ResourceManager/LoadWithRoleAccess?cId=' + selectedId + '&roleId=' + $('#roleId').val(),
fullGrid: true,
showLinenumber: true,
showCheckboxcol: true,
paging: true,
filterMult: false,
showTfoot: true
});
}
function zTreeOnClick(event, treeId, treeNode) {
selectedId = treeNode.Id;
loadDataGrid();
}
function initZtree() {
var setting = {
view: { selectedMulti: false },
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: { onClick: zTreeOnClick }
};
$.getJSON('CategoryManager/LoadForTree', function (json) {
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
zTreeObj.expandAll(true);
});
}
//授权选中的
function assign() {
var selected = getSelectedMany('#@_gridId', 2);
if (selected == null) return;
$.post('ResourceManager/AccessForRole', {
roleId: $('#roleId').val(),
ids: selected
},
function (json) {
// var rel = $.parseJSON(json);
refreshGrid();
});
}
function refreshGrid() {
$('#@_gridId').datagrid('refresh');
// loadDataGrid();
}
//@@ sourceURL=RoleLookup.js
</script>

View File

@@ -0,0 +1,126 @@
@{
string _prefix = "assignResForUser";
var _treeId = _prefix + "Tree";
var _gridId = _prefix + "Grid";
var _treeDetail = _prefix + "Detail";
}
<div class="bjui-pageHeader">
<div class="bjui-searchBar">
<input style="display: none" id="userId" value="@ViewBag.UserId" />
<div class="pull-right">
<div class="alert alert-info search-inline">
<i class="fa fa-info-circle"></i> 点击行为单选,点击复选框可多选统一授权
</div>&nbsp;
<button type="button" class="btn-green" data-num="1" data-icon="plus" onclick="assign()">
授权选中项目
</button>&nbsp;
</div>
</div>
</div>
<div class="bjui-pageContent tableContent">
<div class="clearfix">
<div style="float: left; width: 220px; overflow: auto;" class="table table-bordered">
<ul id="@_treeId" class="ztree"></ul>
</div>
<div id="@_treeDetail" style="margin-left: 225px;">
</div>
</div>
</div>
<script type="text/javascript">
var selectedId = 0;
$(document).ready(function () {
initZtree();
loadDataGrid();
});
//加载数据到datagrid
function loadDataGrid() {
//b-jui的datagrid需要重新处理HTML
$('#@_treeDetail').empty()
.append('<table id="@_gridId" class="table table-bordered table-hover table-striped table-top"></table>');
$('#@_gridId').datagrid({
showToolbar: false,
filterThead: false,
columns: [
{
name: 'Id',
label: '角色ID',
hide: true
},
{
name: 'Name',
label: '角色名称',
width: 100
},
{
name: 'IsBelongUser',
label: '是否已经授权',
type: 'select',
align: 'center',
items: [{ 'false': '未授权', 'true': '已授权' }],
width: 100
}
],
dataUrl: 'ResourceManager/LoadWithUserAccess?cId=' + selectedId + '&userId=' + $('#userId').val(),
fullGrid: true,
showLinenumber: true,
showCheckboxcol: true,
paging: true,
filterMult: false,
showTfoot: true
});
}
function zTreeOnClick(event, treeId, treeNode) {
selectedId = treeNode.Id;
loadDataGrid();
}
function initZtree() {
var setting = {
view: { selectedMulti: false },
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: { onClick: zTreeOnClick }
};
$.getJSON('CategoryManager/LoadForTree', function (json) {
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
zTreeObj.expandAll(true);
});
}
//授权选中的
function assign() {
var selected = getSelectedMany('#@_gridId', 2);
if (selected == null) return;
$.post('ResourceManager/AccessForUser', {
userId: $('#userId').val(),
ids: selected
},
function (json) {
// var rel = $.parseJSON(json);
refreshGrid();
});
}
function refreshGrid() {
$('#@_gridId').datagrid('refresh');
// loadDataGrid();
}
//@@ sourceURL=RoleLookup.js
</script>

View File

@@ -169,6 +169,23 @@
});
}
//为角色分配资源
function openRoleReourceAccess(obj) {
var selected = getSelected('#@_gridId', 2);
if (selected == null) return;
$(obj).dialog({
id: 'accessUserRole',
url: '/ResourceManager/LookupMultiForRole',
title: '为角色分配资源',
width: 600,
height: 380,
data: {
roleId: selected
}
});
}
//为角色分配菜单
function assignRoleElement(obj) {
var selected = getSelected('#@_gridId', 2);

View File

@@ -190,6 +190,23 @@
});
}
//为用户分配资源
function openUserReourceAccess(obj) {
var selected = getSelected('#@_gridId', 2);
if (selected == null) return;
$(obj).dialog({
id: 'accessUserRole',
url: '/ResourceManager/LookupMultiForUser',
title: '为用户分配资源',
width: 600,
height: 380,
data: {
userId: selected
}
});
}
//分配菜单
function openAssignUserElement(obj) {
var selected = getSelected('#@_gridId', 2);