This commit is contained in:
walkor 2022-12-22 15:53:29 +08:00
parent db97119704
commit 8032d26fb9
36 changed files with 75 additions and 42 deletions

View File

@ -20,7 +20,7 @@ class RuleController extends Crud
* *
* @var string[] * @var string[]
*/ */
protected $noNeedAuth = ['get', 'permissionCodes']; protected $noNeedAuth = ['get', 'auth'];
/** /**
* @var Rule * @var Rule
@ -88,11 +88,11 @@ class RuleController extends Crud
} }
/** /**
* 获取控制器详细权限 * 获取权限
* @param Request $request * @param Request $request
* @return Response * @return Response
*/ */
public function permissionCodes(Request $request): Response public function auth(Request $request): Response
{ {
$rules = $this->getRules(admin('roles')); $rules = $this->getRules(admin('roles'));
// 超级管理员 // 超级管理员

View File

@ -783,7 +783,7 @@ EOF
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>
@ -968,7 +968,7 @@ EOF;
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
@ -1043,7 +1043,7 @@ EOF;
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>

View File

@ -104,7 +104,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
layui.use(["form", "popup"], function () { layui.use(["form", "popup"], function () {

View File

@ -97,7 +97,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -88,7 +88,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口
@ -132,6 +132,11 @@
success: function (e) { success: function (e) {
let value = layui.$("#roles").attr("value"); let value = layui.$("#roles").attr("value");
let initValue = value ? value.split(",") : []; let initValue = value ? value.split(",") : [];
if (!top.Admin.Account.isSupperAdmin) {
layui.each(e.data, function (k, v) {
v.disabled = true;
});
}
layui.xmSelect.render({ layui.xmSelect.render({
el: "#roles", el: "#roles",
name: "roles", name: "roles",

View File

@ -87,7 +87,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口
@ -155,12 +155,17 @@
success: function (e) { success: function (e) {
let value = layui.$("#roles").attr("value"); let value = layui.$("#roles").attr("value");
let initValue = value ? value.split(",") : []; let initValue = value ? value.split(",") : [];
if (!top.Admin.Account.isSupperAdmin) {
layui.each(e.data, function (k, v) {
v.disabled = true;
});
}
layui.xmSelect.render({ layui.xmSelect.render({
el: "#roles", el: "#roles",
name: "roles", name: "roles",
initValue: initValue, initValue: initValue,
data: e.data, data: e.data,
tree: {show: true, expandedKeys: initValue, strict: false}, tree: {show: true, expandedKeys: true, strict: false},
toolbar: {show: true, list: ["ALL","CLEAR","REVERSE"]}, toolbar: {show: true, list: ["ALL","CLEAR","REVERSE"]},
}) })
} }

View File

@ -16,6 +16,6 @@
</div> </div>
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
</body> </body>
</html> </html>

View File

@ -176,7 +176,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 基础设置 // 基础设置

View File

@ -106,7 +106,7 @@
</body> </body>
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
layui.use("design"); layui.use("design");
</script> </script>

View File

@ -63,7 +63,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -92,7 +92,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const INSERT_API = "/app/admin/dict/insert"; const INSERT_API = "/app/admin/dict/insert";

View File

@ -92,7 +92,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const DICT_NAME = layui.url().search.name; const DICT_NAME = layui.url().search.name;

View File

@ -94,6 +94,12 @@
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<!-- 框 架 初 始 化 --> <!-- 框 架 初 始 化 -->
<script> <script>
// Admin
window.Admin = {
Account: {}
};
layui.use(["admin","jquery","popup","drawer"], function() { layui.use(["admin","jquery","popup","drawer"], function() {
var $ = layui.$; var $ = layui.$;
var admin = layui.admin; var admin = layui.admin;
@ -121,9 +127,18 @@
return false; return false;
}) })
$.ajax({
url: "/app/admin/account/info",
dataType: 'json',
success: function (res) {
window.Admin.Account = res.data;
}
});
// 消息点击回调 // 消息点击回调
//admin.message(function(id, title, context, form) {}); //admin.message(function(id, title, context, form) {});
}) });
</script> </script>
</body> </body>
</html> </html>

View File

@ -31,7 +31,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
layui.use(["form", "button", "popup", "layer"], function() { layui.use(["form", "button", "popup", "layer"], function() {
var $ = layui.$, layer = layui.layer, form = layui.form; var $ = layui.$, layer = layui.layer, form = layui.form;

View File

@ -35,7 +35,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const SELECT_API = "/app/admin/plugin/list"; const SELECT_API = "/app/admin/plugin/list";

View File

@ -39,7 +39,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -53,7 +53,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>

View File

@ -52,7 +52,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>

View File

@ -61,7 +61,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -87,7 +87,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 接口 // 接口

View File

@ -86,7 +86,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口

View File

@ -215,7 +215,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const CREATE_API = "/app/admin/table/create"; const CREATE_API = "/app/admin/table/create";

View File

@ -73,7 +73,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const CRUD_API = "/app/admin/table/crud"; const CRUD_API = "/app/admin/table/crud";

View File

@ -31,7 +31,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -32,7 +32,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const INSERT_API = "/app/admin/table/insert"; const INSERT_API = "/app/admin/table/insert";

View File

@ -219,7 +219,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
const MODIFY_API = "/app/admin/table/modify"; const MODIFY_API = "/app/admin/table/modify";

View File

@ -35,7 +35,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
let PRIMARY_KEY = "id"; let PRIMARY_KEY = "id";

View File

@ -52,7 +52,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -87,7 +87,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -88,7 +88,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -38,7 +38,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 字段 文件 url // 字段 文件 url

View File

@ -38,7 +38,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口

View File

@ -166,7 +166,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script src="/app/admin/admin/js/common.js"></script> <script src="/app/admin/admin/js/common.js"></script>
<script> <script>

View File

@ -152,7 +152,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口

View File

@ -151,7 +151,7 @@
<script src="/app/admin/component/layui/layui.js"></script> <script src="/app/admin/component/layui/layui.js"></script>
<script src="/app/admin/component/pear/pear.js"></script> <script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/admin/js/permission.js"></script> <script src="/app/admin/admin/js/auth.js"></script>
<script> <script>
// 相关接口 // 相关接口

View File

@ -4,16 +4,24 @@
layui.$(function () { layui.$(function () {
let $ = layui.$; let $ = layui.$;
$.ajax({ $.ajax({
url: "/app/admin/rule/permission-codes", url: "/app/admin/rule/auth",
dataType: "json", dataType: "json",
success: function (res) { success: function (res) {
let style = ''; let style = '';
let codes = res.data || []; let codes = res.data || [];
let isSupperAdmin = false;
// codes里有*,说明是超级管理员,拥有所有权限 // codes里有*,说明是超级管理员,拥有所有权限
if (codes.indexOf('*') !== -1) { if (codes.indexOf('*') !== -1) {
$("head").append("<style>*[permission]{display: initial}</style>"); $("head").append("<style>*[permission]{display: initial}</style>");
return; isSupperAdmin = true;
} }
if (self !== top) {
top.Admin.Account.isSupperAdmin = isSupperAdmin;
} else {
window.Admin.Account.isSupperAdmin = isSupperAdmin;
}
if (isSupperAdmin) return;
// 细分权限 // 细分权限
layui.each(codes, function (k, code) { layui.each(codes, function (k, code) {
codes[k] = '*[permission^="'+code+'"]'; codes[k] = '*[permission^="'+code+'"]';