Files
gxtyzx-uniapp/dist/dev/mp-weixin/utils/permission.js
T

90 lines
2.3 KiB
JavaScript

"use strict";
const store_modules_user = require("../store/modules/user.js");
function arrayHas(array, value) {
if (!value) {
return true;
}
if (!array) {
return false;
}
if (Array.isArray(value)) {
for (let i = 0; i < value.length; i++) {
if (array.indexOf(value[i]) === -1) {
return false;
}
}
return true;
}
return array.indexOf(value) !== -1;
}
function arrayHasAny(array, value) {
if (!value) {
return true;
}
if (!array) {
return false;
}
if (Array.isArray(value)) {
for (let i = 0; i < value.length; i++) {
if (array.indexOf(value[i]) !== -1) {
return true;
}
}
return false;
}
return array.indexOf(value) !== -1;
}
function hasRole(value) {
const userStore = store_modules_user.useUserStore();
return arrayHas(userStore == null ? void 0 : userStore.roles, value);
}
function hasAnyRole(value) {
const userStore = store_modules_user.useUserStore();
return arrayHasAny(userStore == null ? void 0 : userStore.roles, value);
}
function hasPermission(value) {
const userStore = store_modules_user.useUserStore();
return arrayHas(userStore == null ? void 0 : userStore.authorities, value);
}
function hasAnyPermission(value) {
const userStore = store_modules_user.useUserStore();
return arrayHasAny(userStore == null ? void 0 : userStore.authorities, value);
}
const permission = {
install(app) {
app.directive("role", {
mounted: (el, binding) => {
var _a;
if (!hasRole(binding.value)) {
(_a = el.parentNode) == null ? void 0 : _a.removeChild(el);
}
}
});
app.directive("any-role", {
mounted: (el, binding) => {
var _a;
if (!hasAnyRole(binding.value)) {
(_a = el.parentNode) == null ? void 0 : _a.removeChild(el);
}
}
});
app.directive("permission", {
mounted: (el, binding) => {
var _a;
if (!hasPermission(binding.value)) {
(_a = el.parentNode) == null ? void 0 : _a.removeChild(el);
}
}
});
app.directive("any-permission", {
mounted: (el, binding) => {
var _a;
if (!hasAnyPermission(binding.value)) {
(_a = el.parentNode) == null ? void 0 : _a.removeChild(el);
}
}
});
}
};
exports.permission = permission;