@nocobase/plugin-acl 1.6.0-beta.3 → 1.6.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,14 @@ interface PermissionsTabsProps {
32
32
  */
33
33
  TabLayout: React.FC;
34
34
  }
35
- type Tab = TabsProps['items'][0];
35
+ type Tab = TabsProps['items'][0] & {
36
+ /**
37
+ * Used for sorting tabs - lower numbers appear first
38
+ * Default values: System (10), Desktop routes (20)
39
+ * @default 100
40
+ */
41
+ sort?: number;
42
+ };
36
43
  type TabCallback = (props: PermissionsTabsProps) => Tab;
37
44
  /**
38
45
  * the extension API for ACL settings page
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["837"],{844:function(e,n,t){t.d(n,{U:function(){return u},r:function(){return c}});var r=t(772),o=t(721),a=t(156),l=t.n(a),i=(0,a.createContext)([]);i.displayName="AvailableActionsContext";var u=function(e){var n=(0,r.useRequest)({resource:"availableActions",action:"list"}),t=n.data;return n.loading?l().createElement(o.Spin,null):l().createElement(i.Provider,{value:null==t?void 0:t.data},e.children)},c=function(){return(0,a.useContext)(i)}},784:function(e,n,t){t.r(n),t.d(n,{GeneralPermissions:function(){return G}});var r=t("563"),o=t("505"),a=t("875"),l=t("772"),i=t("749"),u=t("721"),c=t("467"),s=t.n(c),f=t("156"),p=t.n(f),d=t("238"),m=t("888"),y=t("746"),v=t("202");function b(){var e,n,t=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n "],!n&&(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return b=function(){return t},t}var h=(0,v.createStyles)(function(e){return(0,e.css)(b())});function g(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function w(e,n,t,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){t(e);return}i.done?n(u):Promise.resolve(u).then(r,o)}function S(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){w(a,r,o,l,i,"next",e)}function i(e){w(a,r,o,l,i,"throw",e)}l(void 0)})}}function x(e,n){if(e){if("string"==typeof e)return g(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return g(e,n)}}function O(e,n){var t,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=n.call(e,l)}catch(e){a=[6,e],r=0}finally{t=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var A=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=!0,r=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var i=a.value;n.push(i.aclSnippet),i.children&&i.children.length&&A(i.children,n)}}catch(e){r=!0,o=e}finally{try{!t&&null!=l.return&&l.return()}finally{if(r)throw o}}return n},k=function(e){var n,t,r,o=e.active,a=(0,l.useApp)(),i=h().styles,m=(0,f.useContext)(y.T).role,v=(0,l.useAPIClient)(),b=(0,l.useCompile)(),w=a.pluginSettingsManager.getList(!1),k=a.pluginSettingsManager.getAclSnippets();var C=(n=(0,f.useState)((null==m?void 0:m.snippets)||[]),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(n,2)||x(n,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),j=C[0],E=C[1],P=(0,f.useMemo)(function(){return(0,c.flatMap)(w,function(e){var n;if(!e.children)return e;return[e].concat(function(e){if(Array.isArray(e))return g(e)}(n=e.children)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||x(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})},[w]),T=(0,f.useMemo)(function(){return j.includes("pm.*")&&j.every(function(e){return!e.startsWith("!pm.")})},[j]),I=(0,d.useTranslation)().t,M=(0,l.useRequest)({resource:"roles.snippets",resourceOf:null==m?void 0:m.name,action:"list",params:{paginate:!1}},{ready:!!m&&o,refreshDeps:[null==m?void 0:m.name],manual:!0,onSuccess:function(e){E((null==e?void 0:e.data.filter(function(e){return P.find(function(n){return e.includes("!".concat(n.aclSnippet))||!e.startsWith("!pm.")})}))||[])}}),F=M.loading,D=M.refresh;if(!!m){var _=v.resource("roles.snippets",null==m?void 0:m.name);var z=(r=S(function(e,n){var t;return O(this,function(r){switch(r.label){case 0:if(t=A(null==n?void 0:n.children,[]).concat(n.aclSnippet),e)return[3,2];return[4,_.remove({values:t.map(function(e){return"!"+e})})];case 1:return r.sent(),D(),[3,4];case 2:return[4,_.add({values:t.map(function(e){return"!"+e})})];case 3:r.sent(),D(),r.label=4;case 4:return u.message.success(I("Saved successfully")),[2]}})}),function(e,n){return r.apply(this,arguments)});return p().createElement(u.Table,{className:i,loading:F,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:I("Plugin name"),render:function(e){return b(e)}},{dataIndex:"accessible",title:p().createElement(p().Fragment,null,p().createElement(u.Checkbox,{checked:T,onChange:S(function(){var e;return O(this,function(n){switch(n.label){case 0:if(e=k.map(function(e){return"!"+e}),T)return[3,2];return[4,_.remove({values:e})];case 1:return n.sent(),[3,4];case 2:return[4,_.add({values:e})];case 3:n.sent(),n.label=4;case 4:return D(),u.message.success(I("Saved successfully")),[2]}})})}),I("Accessible")),render:function(e,n){var t=!j.includes("!"+n.aclSnippet);return p().createElement(u.Checkbox,{checked:t,onChange:function(){return z(t,n)}})}}],dataSource:w.filter(function(e){return!1!==e.isTopLevel}).map(function(e){return!1!==e.showTabs?e:s().omit(e,"children")})})}},C=t("844");function j(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var E=function(e){if(!e)return{};var n,t={};return null==e||null===(n=e.forEach)||void 0===n||n.call(e,function(e){var n,r,o=(n=e.split(":"),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(n,2)||function(e,n){if(e){if("string"==typeof e)return j(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return j(e,n)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=o[0],l=o[1];t[a]=l||"all"}),t},P=function(e){var n=[];for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var r=e[t];"all"===r?n.push(t):n.push("".concat(t,":").concat(r))}return n},T=(0,o.connect)(function(e){var n=e.onChange,t=(0,C.r)(),r=(0,l.useCompile)(),a=(0,d.useTranslation)().t,i=E((0,o.useField)().value);return p().createElement("div",null,p().createElement(u.Table,{rowKey:"name",size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:a("Action display name"),render:function(e){return r(e)}},{dataIndex:"onNewRecord",title:a("Action type"),render:function(e){return e?p().createElement(u.Tag,{color:"green"},a("Action on new records")):p().createElement(u.Tag,{color:"geekblue"},a("Action on existing records"))}},{dataIndex:"enabled",title:a("Allow"),render:function(e,t){return p().createElement(u.Checkbox,{checked:e,"aria-label":"".concat(t.name,"_checkbox"),onChange:function(r){e?delete i[t.name]:i[t.name]="all",n(P(i))}})}},{dataIndex:"scope",title:a("Data scope"),render:function(e,t){return!t.onNewRecord&&p().createElement(u.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:e,options:[{label:a("All records"),value:"all"},{label:a("Own records"),value:"own"}],onChange:function(e){i[t.name]=e,n(P(i))}})}}],dataSource:null==t?void 0:t.map(function(e){var n,t,r="all",o=!1;return i[e.name]&&(o=!0,r=i[e.name]),n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),t=(t={enabled:o,scope:r},t),Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n})}))});function I(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function M(e,n,t,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){t(e);return}i.done?n(u):Promise.resolve(u).then(r,o)}function F(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){M(a,r,o,l,i,"next",e)}function i(e){M(a,r,o,l,i,"throw",e)}l(void 0)})}}function D(e){return function(e){if(Array.isArray(e))return I(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return I(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return I(e,n)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(e,n){var t,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=n.call(e,l)}catch(e){a=[6,e],r=0}finally{t=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var z=(0,o.connect)(function(e){var n=(0,d.useTranslation)().t;return p().createElement(u.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:function(n){var t=["ui.*","pm","pm.*","app"],r=t.map(function(e){return"!".concat(e)}),o=(0,c.uniq)(D(e.value||[]).concat(D(n))).filter(function(e){return e&&!r.includes(e)}).map(function(e){return!t.includes(e)||(null==n?void 0:n.includes(e))?e:"!".concat(e)}),a=!0,l=!1,i=void 0;try{for(var u,s=t[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value;!o.includes(f)&&!o.includes("!".concat(f))&&o.push("!".concat(f))}}catch(e){l=!0,i=e}finally{try{!a&&null!=s.return&&s.return()}finally{if(l)throw i}}e.onChange(o)}},p().createElement("div",{style:{marginTop:16}},p().createElement(u.Checkbox,{value:"ui.*"},n("Allows to configure interface"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"pm"},n("Allows to install, activate, disable plugins"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"pm.*"},n("Allows to configure plugins"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"app"},n("Allows to clear cache, reboot application"))))}),G=function(){var e,n,t=(0,f.useContext)(y.T),o=t.role,c=t.setRole,s=(0,m.g)().t,d=(0,l.useAPIClient)(),v=null==o?void 0:null===(n=o.snippets)||void 0===n?void 0:n.includes("pm.*");var b=(0,i.useMemoizedFn)((e=F(function(e){return _(this,function(n){switch(n.label){case 0:return[4,d.resource("roles").update({filterByTk:o.name,values:{snippets:e.values.snippets}})];case 1:return n.sent(),c(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o,e.values)),u.message.success(s("Saved successfully")),[2]}})}),function(n){return e.apply(this,arguments)})),h=(0,f.useMemo)(function(){return(0,r.createForm)({values:o,effects:function(){var e;(0,r.onFormValuesChange)((e=F(function(e){return _(this,function(n){switch(n.label){case 0:return[4,b(e)];case 1:return n.sent(),[2]}})}),function(n){return e.apply(this,arguments)}))}})},[o,b]);return p().createElement(l.SchemaComponent,{components:{SnippetCheckboxGroup:z,StrategyActions:T,PluginPermissions:k},scope:{pm:v},schema:{type:"void",name:(0,a.uid)(),"x-component":"div",properties:{general:{"x-component":"FormV2","x-component-props":{form:h},properties:{snippets:{title:s("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"}}},plugins:{"x-component":"FormV2",properties:{pluginSettings:{title:s("Plugin settings"),"x-decorator":"FormItem","x-component":"PluginPermissions","x-visible":"{{pm}}"}}}}}})}},888:function(e,n,t){t.d(n,{g:function(){return o}});var r=t(238);function o(){return(0,r.useTranslation)(["@nocobase/plugin-acl","client"],{nsMode:"fallback"})}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("@nocobase/client"),require("lodash"),require("ahooks"),require("antd"),require("@ant-design/icons"),require("@formily/react"),require("antd-style"),require("react")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["react-i18next","@formily/shared","@nocobase/utils/client","@formily/core","@nocobase/client","lodash","ahooks","antd","@ant-design/icons","@formily/react","antd-style","react"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("@nocobase/client"),require("lodash"),require("ahooks"),require("antd"),require("@ant-design/icons"),require("@formily/react"),require("antd-style"),require("react")):e["@nocobase/plugin-acl"]=t(e["react-i18next"],e["@formily/shared"],e["@nocobase/utils/client"],e["@formily/core"],e["@nocobase/client"],e.lodash,e.ahooks,e.antd,e["@ant-design/icons"],e["@formily/react"],e["antd-style"],e.react)}(self,function(e,t,n,r,o,i,u,a,c,l,s,f){return function(){var p,d,b,y,m,h,v={746:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r=(0,n(156).createContext)({role:null});r.displayName="RolesManagerContext"},590:function(e,t,n){"use strict";n.r(t),n.d(t,{PluginACLClient:function(){return j},default:function(){return O},RolesManagerContext:function(){return y.T}});var r=n("772"),o=n("156"),i=n.n(o),u=n(581);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var c=(0,r.lazy)(function(){return u("imported_-1r1jup3_component",n.e("748").then(n.bind(n,294)))},"GeneralPermissions").GeneralPermissions,l=(0,r.lazy)(function(){return u("imported_-olno4t_component",n.e("818").then(n.bind(n,105)))},"MenuItemsProvider").MenuItemsProvider,s=(0,r.lazy)(function(){return u("imported_1qalbop_component",n.e("871").then(n.bind(n,509)))},"MenuPermissions").MenuPermissions,f=function(){var e,t,n;function r(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,r),e=this,t="permissionsTabs",n=[function(e){var t=e.t,n=e.TabLayout;return{key:"general",label:t("System"),children:i().createElement(n,null,i().createElement(c,null))}},function(e){var t=e.activeKey,n=e.t,r=e.TabLayout;return{key:"menu",label:n("Desktop menu"),children:i().createElement(r,null,i().createElement(l,null,i().createElement(s,{active:"menu"===t})))}}],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=r,t=[{key:"addPermissionsTab",value:function(e){this.permissionsTabs.push(e)}},{key:"getPermissionsTabs",value:function(e){return this.permissionsTabs.map(function(t){return"function"==typeof t?t(e):t})}}],a(e.prototype,t),r}(),p=n("584");function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var b=function(){var e,t,n;function r(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,r),e=this,t="rolesManager",n=new p.Registry,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=r,t=[{key:"add",value:function(e,t){this.rolesManager.register(e,t)}},{key:"list",value:function(){return this.rolesManager.getEntities()}}],d(e.prototype,t),r}(),y=n("746"),m=n(581);function h(e,t,n,r,o,i,u){try{var a=e[i](u),c=a.value}catch(e){n(e);return}a.done?t(c):Promise.resolve(c).then(r,o)}function v(e,t,n){return(v=P()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&x(o,n.prototype),o}).apply(null,arguments)}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return v(e,arguments,w(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),x(r,e)})(e)}function P(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(P=function(){return!!e})()}var q=(0,r.lazy)(function(){return m("imported_-1obaqk_component",n.e("733").then(n.bind(n,594)))},"RolesManagement").RolesManagement,j=function(e){var t,n,r;function o(){var e,t,n,r;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),t=this,n=o,r=arguments,n=w(n),_(e=function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(t,P()?Reflect.construct(n,r||[],w(t).constructor):n.apply(t,r)),"rolesManager",new b),_(e,"settingsUI",new f),e}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&x(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:q,aclSnippet:"pm.acl.roles",sort:3}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){h(i,r,o,u,a,"next",e)}function a(e){h(i,r,o,u,a,"throw",e)}u(void 0)})})()}}],g(t.prototype,n),o}(k(r.Plugin)),O=j},581:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=c},563:function(e){"use strict";e.exports=r},505:function(e){"use strict";e.exports=l},875:function(e){"use strict";e.exports=t},772:function(e){"use strict";e.exports=o},584:function(e){"use strict";e.exports=n},749:function(e){"use strict";e.exports=u},721:function(e){"use strict";e.exports=a},202:function(e){"use strict";e.exports=s},467:function(e){"use strict";e.exports=i},156:function(e){"use strict";e.exports=f},238:function(t){"use strict";t.exports=e}},g={};function _(e){var t=g[e];if(void 0!==t)return t.exports;var n=g[e]={exports:{}};return v[e](n,n.exports,_),n.exports}return _.m=v,_.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return _.d(t,{a:t}),t},_.d=function(e,t){for(var n in t)_.o(t,n)&&!_.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},_.f={},_.e=function(e){return Promise.all(Object.keys(_.f).reduce(function(t,n){return _.f[n](e,t),t},[]))},_.u=function(e){return""+({733:"d0d2f3c136d7edd5",748:"05ee8806061fec08",818:"86675833caae1228",871:"e22b9e787d3a7194"})[e]+".js"},_.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),_.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p={},d="@nocobase/plugin-acl:",_.l=function(e,t,n,r){if(p[e]){p[e].push(t);return}if(void 0!==n){for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var c=u[a];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==d+n){o=c;break}}}!o&&(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,_.nc&&o.setAttribute("nonce",_.nc),o.setAttribute("data-webpack",d+n),o.src=e),p[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=p[e];if(delete p[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},_.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},_.p=(!(b=window.__nocobase_public_path__||"/").endsWith("/")&&(b+="/"),b+"static/plugins/@nocobase/plugin-acl/dist/client/"),y={909:0},_.f.j=function(e,t){var n=_.o(y,e)?y[e]:void 0;if(0!==n){if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=y[e]=[t,r]});t.push(n[2]=r);var o=_.p+_.u(e),i=Error();_.l(o,function(t){if(_.o(y,e)&&(0!==(n=y[e])&&(y[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}}},m=function(e,t){var n=t[0],r=t[1],o=t[2],i,u,a=0;if(n.some(function(e){return 0!==y[e]})){for(i in r)_.o(r,i)&&(_.m[i]=r[i]);o&&o(_)}for(e&&e(t);a<n.length;a++)u=n[a],_.o(y,u)&&y[u]&&y[u][0](),y[u]=0},(h=self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).forEach(m.bind(null,0)),h.push=m.bind(null,h.push.bind(h)),_("590")}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("lodash"),require("@nocobase/client"),require("ahooks"),require("antd"),require("@ant-design/icons"),require("@formily/react"),require("antd-style"),require("react")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["react-i18next","@formily/shared","@nocobase/utils/client","@formily/core","lodash","@nocobase/client","ahooks","antd","@ant-design/icons","@formily/react","antd-style","react"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("react-i18next"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("lodash"),require("@nocobase/client"),require("ahooks"),require("antd"),require("@ant-design/icons"),require("@formily/react"),require("antd-style"),require("react")):e["@nocobase/plugin-acl"]=t(e["react-i18next"],e["@formily/shared"],e["@nocobase/utils/client"],e["@formily/core"],e.lodash,e["@nocobase/client"],e.ahooks,e.antd,e["@ant-design/icons"],e["@formily/react"],e["antd-style"],e.react)}(self,function(e,t,n,r,o,i,u,a,c,l,s,f){return function(){var p,d,b,y,h,m,v={746:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r=(0,n(156).createContext)({role:null});r.displayName="RolesManagerContext"},509:function(e,t,n){"use strict";n.r(t),n.d(t,{DesktopAllRoutesProvider:function(){return E},MenuPermissions:function(){return q}});var r=n(563),o=n(875),i=n(772),u=n(749),a=n(721),c=n(467),l=n(156),s=n.n(l),f=n(238),p=n(746);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n,r,o,i,u){try{var a=e[i](u),c=a.value}catch(e){n(e);return}a.done?t(c):Promise.resolve(c).then(r,o)}function y(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){b(i,r,o,u,a,"next",e)}function a(e){b(i,r,o,u,a,"throw",e)}u(void 0)})}}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function v(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}}function w(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function x(){var e,t,n=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n"],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return x=function(){return n},n}var O=function(e,t){return Array.isArray(e)?e.map(function(e){var n,r=O(e.children,e),o=0===r.length;return{title:e.title,id:e.id,children:o?null:r,hideChildren:o,firstTabId:null===(n=r[0])||void 0===n?void 0:n.id,parent:t}}):[]},k=function(e){if(!Array.isArray(e))return[];var t=[],n=!0,r=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done);n=!0){var a=i.value;t.push(a.id),t.push.apply(t,v(k(a.children)))}}catch(e){r=!0,o=e}finally{try{!n&&null!=u.return&&u.return()}finally{if(r)throw o}}return t},P=(0,i.css)(x()),j=function(e,t,n){return e.map(function(e){var r,o=(null===(r=e.title)||void 0===r?void 0:r.match(/^\s*\{\{\s*.+?\s*\}\}\s*$/))?n(e.title):t(e.title);return e.children?m(h({},e),{title:o,children:j(e.children,t,n)}):m(h({},e),{title:o})})},_=(0,l.createContext)({routeList:[]}),S=function(e){var t=e.children,n=e.refreshRef,r=(0,i.useAPIClient)(),o=(0,l.useMemo)(function(){return r.resource("desktopRoutes")},[r]),u=(0,i.useRequest)(function(){return o.list({tree:!0,sort:"sort",paginate:!1,filter:{hidden:{$ne:!0}}}).then(function(e){return e.data})},{manual:!0}),a=u.data,c=u.runAsync;n&&(n.current=c);var f=(0,l.useMemo)(function(){return(null==a?void 0:a.data)||[]},[a]),p=(0,l.useMemo)(function(){return{routeList:f}},[f]);return s().createElement(_.Provider,{value:p},t)},E=function(e){var t=e.children,n=e.active,r=s().useRef(function(){});return(0,l.useEffect)(function(){if(n){var e;null===(e=r.current)||void 0===e||e.call(r)}},[n]),s().createElement(S,{refreshRef:r},t)},q=function(e){var t,n,d,b,m,x=e.active,S=O((0,l.useContext)(_).routeList),E=(0,l.useContext)(p.T),q=E.role,T=E.setRole,C=(0,i.useAPIClient)(),A=(0,f.useTranslation)().t,M=k(S);var R=(t=(0,l.useState)([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(e);!(u=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);u=!0);}catch(e){a=!0,r=e}finally{try{!u&&null!=o.return&&o.return()}finally{if(a)throw r}}return i}}(t,2)||g(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),I=R[0],F=R[1],z=(0,i.useRequest)({resource:"roles.desktopRoutes",resourceOf:q.name,action:"list",params:{paginate:!1,filter:{hidden:{$ne:!0}}}},{ready:!!q&&x,refreshDeps:[null==q?void 0:q.name],onSuccess:function(e){var t;F((null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.map(function(e){return e.id}))||[])}}),L=z.loading,D=z.refresh,N=C.resource("roles.desktopRoutes",q.name),B=M.length===I.length;var G=(d=y(function(e,t){var n,r,o,i,u,l,s,f;return w(this,function(p){switch(p.label){case 0:if(!e)return[3,2];return n=I.filter(function(e){return e!==t.id}),r=[t.id],t.parent&&0===t.parent.children.filter(function(e){return n.includes(e.id)}).length&&(n=n.filter(function(e){return e!==t.parent.id}),r.push(t.parent.id)),t.children&&(n=n.filter(function(e){return!k(t.children).includes(e)}),(o=r).push.apply(o,v(k(t.children)))),F(n),[4,N.remove({values:r})];case 1:return p.sent(),[3,4];case 2:return i=v(I).concat([t.id]),u=[t.id],t.parent&&!i.includes(t.parent.id)&&(i.push(t.parent.id),u.push(t.parent.id)),t.children&&(f=k(t.children),(l=i).push.apply(l,v(f)),(s=u).push.apply(s,v(f))),F((0,c.uniq)(i)),[4,N.add({values:u})];case 3:p.sent(),p.label=4;case 4:return a.message.success(A("Saved successfully")),[2]}})}),function(e,t){return d.apply(this,arguments)});var $=(0,u.useMemoizedFn)((b=y(function(e){return w(this,function(t){switch(t.label){case 0:return[4,C.resource("roles").update({filterByTk:q.name,values:e.values})];case 1:return t.sent(),T(h({},q,e.values)),a.message.success(A("Saved successfully")),[2]}})}),function(e){return b.apply(this,arguments)})),K=(0,l.useMemo)(function(){return(0,r.createForm)({values:q,effects:function(){var e;(0,r.onFormValuesChange)((e=y(function(e){return w(this,function(t){switch(t.label){case 0:return[4,$(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[q,$]),U=(0,i.useCompile)();return s().createElement(s().Fragment,null,s().createElement(i.SchemaComponent,{schema:{type:"void",name:(0,o.uid)(),"x-component":"FormV2","x-component-props":{form:K},properties:{allowNewMenu:{title:A("Route permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":A("New routes are allowed to be accessed by default")}}}}),s().createElement(a.Table,{className:P,loading:L,rowKey:"id",pagination:!1,expandable:{defaultExpandAllRows:!1},columns:[{dataIndex:"title",title:A("Route name")},{dataIndex:"accessible",title:s().createElement(s().Fragment,null,s().createElement(a.Checkbox,{checked:B,onChange:(m=y(function(e){return w(this,function(e){switch(e.label){case 0:if(!B)return[3,2];return[4,N.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,N.set({values:M})];case 3:e.sent(),e.label=4;case 4:return D(),a.message.success(A("Saved successfully")),[2]}})}),function(e){return m.apply(this,arguments)})})," ",A("Accessible")),render:function(e,t){var n=I.includes(t.id);return s().createElement(a.Checkbox,{checked:n,onChange:function(){return G(n,t)}})}}],dataSource:j(S,A,U)}))}},590:function(e,t,n){"use strict";n.r(t),n.d(t,{PluginACLClient:function(){return _},default:function(){return S},RolesManagerContext:function(){return y.T}});var r=n("772"),o=n("156"),i=n.n(o),u=n("509"),a=n(581);function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var l=(0,r.lazy)(function(){return a("imported_-1r1jup3_component",n.e("837").then(n.bind(n,784)))},"GeneralPermissions").GeneralPermissions,s=(0,r.lazy)(function(){return a("imported_1qalbop_component",Promise.resolve().then(n.bind(n,509)))},"MenuPermissions").MenuPermissions,f=function(){var e,t,n;function r(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,r),e=this,t="permissionsTabs",n=[function(e){var t=e.t,n=e.TabLayout;return{key:"general",label:t("System"),sort:10,children:i().createElement(n,null,i().createElement(l,null))}},function(e){var t=e.activeKey,n=e.t,r=e.TabLayout;return{key:"menu",label:n("Desktop routes"),sort:20,children:i().createElement(r,null,i().createElement(u.DesktopAllRoutesProvider,{active:"menu"===t},i().createElement(s,{active:"menu"===t})))}}],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=r,t=[{key:"addPermissionsTab",value:function(e){this.permissionsTabs.push(e)}},{key:"getPermissionsTabs",value:function(e){return this.permissionsTabs.map(function(t){return"function"==typeof t?t(e):t}).sort(function(e,t){var n,r;return(null!==(n=e.sort)&&void 0!==n?n:100)-(null!==(r=t.sort)&&void 0!==r?r:100)})}}],c(e.prototype,t),r}(),p=n("584");function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var b=function(){var e,t,n;function r(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,r),e=this,t="rolesManager",n=new p.Registry,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=r,t=[{key:"add",value:function(e,t){this.rolesManager.register(e,t)}},{key:"list",value:function(){return this.rolesManager.getEntities()}}],d(e.prototype,t),r}(),y=n("746"),h=n(581);function m(e,t,n,r,o,i,u){try{var a=e[i](u),c=a.value}catch(e){n(e);return}a.done?t(c):Promise.resolve(c).then(r,o)}function v(e,t,n){return(v=P()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&O(o,n.prototype),o}).apply(null,arguments)}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return v(e,arguments,x(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),O(r,e)})(e)}function P(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(P=function(){return!!e})()}var j=(0,r.lazy)(function(){return h("imported_-1obaqk_component",n.e("733").then(n.bind(n,594)))},"RolesManagement").RolesManagement,_=function(e){var t,n,r;function o(){var e,t,n,r;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),t=this,n=o,r=arguments,n=x(n),w(e=function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(t,P()?Reflect.construct(n,r||[],x(t).constructor):n.apply(t,r)),"rolesManager",new b),w(e,"settingsUI",new f),e}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:j,aclSnippet:"pm.acl.roles",sort:3}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){m(i,r,o,u,a,"next",e)}function a(e){m(i,r,o,u,a,"throw",e)}u(void 0)})})()}}],g(t.prototype,n),o}(k(r.Plugin)),S=_},581:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=c},563:function(e){"use strict";e.exports=r},505:function(e){"use strict";e.exports=l},875:function(e){"use strict";e.exports=t},772:function(e){"use strict";e.exports=i},584:function(e){"use strict";e.exports=n},749:function(e){"use strict";e.exports=u},721:function(e){"use strict";e.exports=a},202:function(e){"use strict";e.exports=s},467:function(e){"use strict";e.exports=o},156:function(e){"use strict";e.exports=f},238:function(t){"use strict";t.exports=e}},g={};function w(e){var t=g[e];if(void 0!==t)return t.exports;var n=g[e]={exports:{}};return v[e](n,n.exports,w),n.exports}return w.m=v,w.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return w.d(t,{a:t}),t},w.d=function(e,t){for(var n in t)w.o(t,n)&&!w.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},w.f={},w.e=function(e){return Promise.all(Object.keys(w.f).reduce(function(t,n){return w.f[n](e,t),t},[]))},w.u=function(e){return""+({733:"d0d2f3c136d7edd5",837:"de199341733ccf37"})[e]+".js"},w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p={},d="@nocobase/plugin-acl:",w.l=function(e,t,n,r){if(p[e]){p[e].push(t);return}if(void 0!==n){for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var c=u[a];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==d+n){o=c;break}}}!o&&(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,w.nc&&o.setAttribute("nonce",w.nc),o.setAttribute("data-webpack",d+n),o.src=e),p[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=p[e];if(delete p[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},w.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},w.p=(!(b=window.__nocobase_public_path__||"/").endsWith("/")&&(b+="/"),b+"static/plugins/@nocobase/plugin-acl/dist/client/"),y={909:0},w.f.j=function(e,t){var n=w.o(y,e)?y[e]:void 0;if(0!==n){if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=y[e]=[t,r]});t.push(n[2]=r);var o=w.p+w.u(e),i=Error();w.l(o,function(t){if(w.o(y,e)&&(0!==(n=y[e])&&(y[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}}},h=function(e,t){var n=t[0],r=t[1],o=t[2],i,u,a=0;if(n.some(function(e){return 0!==y[e]})){for(i in r)w.o(r,i)&&(w.m[i]=r[i]);o&&o(w)}for(e&&e(t);a<n.length;a++)u=n[a],w.o(y,u)&&y[u]&&y[u][0](),y[u]=0},(m=self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).forEach(h.bind(null,0)),m.push=h.bind(null,m.push.bind(m)),w("590")}()});
@@ -7,6 +7,9 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import React from 'react';
10
+ export declare const DesktopAllRoutesProvider: React.FC<{
11
+ active: boolean;
12
+ }>;
10
13
  export declare const MenuPermissions: React.FC<{
11
14
  active: boolean;
12
15
  }>;
@@ -8,23 +8,23 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
+ "@nocobase/client": "1.6.0-beta.5",
11
12
  "antd": "5.12.8",
12
13
  "react": "18.2.0",
13
14
  "react-i18next": "11.18.6",
14
- "@nocobase/client": "1.6.0-beta.3",
15
15
  "@formily/shared": "2.3.2",
16
16
  "@formily/react": "2.3.0",
17
17
  "@ant-design/icons": "5.2.6",
18
- "@nocobase/utils": "1.6.0-beta.3",
19
- "@nocobase/actions": "1.6.0-beta.3",
20
- "@nocobase/cache": "1.6.0-beta.3",
21
- "@nocobase/database": "1.6.0-beta.3",
22
- "@nocobase/server": "1.6.0-beta.3",
18
+ "@nocobase/utils": "1.6.0-beta.5",
19
+ "@nocobase/actions": "1.6.0-beta.5",
20
+ "@nocobase/cache": "1.6.0-beta.5",
21
+ "@nocobase/database": "1.6.0-beta.5",
22
+ "@nocobase/server": "1.6.0-beta.5",
23
23
  "lodash": "4.17.21",
24
- "@nocobase/test": "1.6.0-beta.3",
24
+ "@nocobase/test": "1.6.0-beta.5",
25
25
  "@formily/core": "2.3.0",
26
26
  "ahooks": "3.7.8",
27
27
  "@formily/antd-v5": "1.1.9",
28
28
  "antd-style": "3.7.1",
29
- "@nocobase/acl": "1.6.0-beta.3"
29
+ "@nocobase/acl": "1.6.0-beta.5"
30
30
  };
@@ -32,8 +32,10 @@ module.exports = __toCommonJS(roles_users_exports);
32
32
  var import_database = require("@nocobase/database");
33
33
  var roles_users_default = (0, import_database.defineCollection)({
34
34
  name: "rolesUsers",
35
+ description: "User's roles",
35
36
  dumpRules: {
36
37
  group: "user"
37
38
  },
39
+ migrationRules: ["schema-only", "overwrite"],
38
40
  fields: [{ type: "boolean", name: "default" }]
39
41
  });
@@ -33,6 +33,8 @@ var import_database = require("@nocobase/database");
33
33
  var roles_default = (0, import_database.defineCollection)({
34
34
  origin: "@nocobase/plugin-acl",
35
35
  dumpRules: "required",
36
+ description: "Role data",
37
+ migrationRules: ["overwrite", "schema-only"],
36
38
  name: "roles",
37
39
  title: '{{t("Roles")}}',
38
40
  autoGenId: false,
@@ -33,6 +33,7 @@ var import_database = require("@nocobase/database");
33
33
  var rolesResources_default = (0, import_database.defineCollection)({
34
34
  dumpRules: "required",
35
35
  name: "rolesResources",
36
+ migrationRules: ["overwrite", "schema-only"],
36
37
  model: "RoleResourceModel",
37
38
  indexes: [
38
39
  {
@@ -33,6 +33,7 @@ var import_database = require("@nocobase/database");
33
33
  var rolesResourcesActions_default = (0, import_database.defineCollection)({
34
34
  dumpRules: "required",
35
35
  name: "rolesResourcesActions",
36
+ migrationRules: ["overwrite", "schema-only"],
36
37
  model: "RoleResourceActionModel",
37
38
  fields: [
38
39
  {
@@ -33,6 +33,7 @@ var import_database = require("@nocobase/database");
33
33
  var rolesResourcesScopes_default = (0, import_database.defineCollection)({
34
34
  dumpRules: "required",
35
35
  name: "rolesResourcesScopes",
36
+ migrationRules: ["overwrite", "schema-only"],
36
37
  fields: [
37
38
  {
38
39
  type: "uid",
@@ -32,6 +32,7 @@ module.exports = __toCommonJS(users_exports);
32
32
  var import_database = require("@nocobase/database");
33
33
  var users_default = (0, import_database.extendCollection)({
34
34
  name: "users",
35
+ migrationRules: ["schema-only", "overwrite", "skip"],
35
36
  fields: [
36
37
  {
37
38
  interface: "m2m",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "权限控制",
5
5
  "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.",
6
6
  "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。",
7
- "version": "1.6.0-beta.3",
7
+ "version": "1.6.0-beta.5",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/acl",
@@ -33,5 +33,5 @@
33
33
  "url": "git+https://github.com/nocobase/nocobase.git",
34
34
  "directory": "packages/plugins/acl"
35
35
  },
36
- "gitHead": "19a659c49d7eedd3d57e46f9df2e8540f55c99b7"
36
+ "gitHead": "66e7c7239b29361bc60543886d107ba0e00085d9"
37
37
  }
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["748"],{844:function(e,n,t){t.d(n,{U:function(){return u},r:function(){return c}});var r=t(772),o=t(721),a=t(156),l=t.n(a),i=(0,a.createContext)([]);i.displayName="AvailableActionsContext";var u=function(e){var n=(0,r.useRequest)({resource:"availableActions",action:"list"}),t=n.data;return n.loading?l().createElement(o.Spin,null):l().createElement(i.Provider,{value:null==t?void 0:t.data},e.children)},c=function(){return(0,a.useContext)(i)}},294:function(e,n,t){t.r(n),t.d(n,{GeneralPermissions:function(){return _}});var r=t("563"),o=t("505"),a=t("875"),l=t("772"),i=t("749"),u=t("721"),c=t("467"),s=t.n(c),f=t("156"),p=t.n(f),d=t("238"),m=t("888"),y=t("746"),v=t("368");function b(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function h(e,n,t,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){t(e);return}i.done?n(u):Promise.resolve(u).then(r,o)}function g(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){h(a,r,o,l,i,"next",e)}function i(e){h(a,r,o,l,i,"throw",e)}l(void 0)})}}function w(e,n){if(e){if("string"==typeof e)return b(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return b(e,n)}}function S(e,n){var t,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=n.call(e,l)}catch(e){a=[6,e],r=0}finally{t=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=!0,r=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(t=(a=l.next()).done);t=!0){var i=a.value;n.push(i.aclSnippet),i.children&&i.children.length&&x(i.children,n)}}catch(e){r=!0,o=e}finally{try{!t&&null!=l.return&&l.return()}finally{if(r)throw o}}return n},O=function(e){var n,t,r,o=e.active,a=(0,l.useApp)(),i=(0,v.y)().styles,m=(0,f.useContext)(y.T).role,h=(0,l.useAPIClient)(),O=(0,l.useCompile)(),A=a.pluginSettingsManager.getList(!1),k=a.pluginSettingsManager.getAclSnippets();var C=(n=(0,f.useState)((null==m?void 0:m.snippets)||[]),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(n,2)||w(n,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),j=C[0],E=C[1],P=(0,f.useMemo)(function(){return(0,c.flatMap)(A,function(e){var n;if(!e.children)return e;return[e].concat(function(e){if(Array.isArray(e))return b(e)}(n=e.children)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||w(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})},[A]),T=(0,f.useMemo)(function(){return j.includes("pm.*")&&j.every(function(e){return!e.startsWith("!pm.")})},[j]),I=(0,d.useTranslation)().t,M=(0,l.useRequest)({resource:"roles.snippets",resourceOf:null==m?void 0:m.name,action:"list",params:{paginate:!1}},{ready:!!m&&o,refreshDeps:[null==m?void 0:m.name],manual:!0,onSuccess:function(e){E((null==e?void 0:e.data.filter(function(e){return P.find(function(n){return e.includes("!".concat(n.aclSnippet))||!e.startsWith("!pm.")})}))||[])}}),F=M.loading,D=M.refresh;if(!!m){var _=h.resource("roles.snippets",null==m?void 0:m.name);var z=(r=g(function(e,n){var t;return S(this,function(r){switch(r.label){case 0:if(t=x(null==n?void 0:n.children,[]).concat(n.aclSnippet),e)return[3,2];return[4,_.remove({values:t.map(function(e){return"!"+e})})];case 1:return r.sent(),D(),[3,4];case 2:return[4,_.add({values:t.map(function(e){return"!"+e})})];case 3:r.sent(),D(),r.label=4;case 4:return u.message.success(I("Saved successfully")),[2]}})}),function(e,n){return r.apply(this,arguments)});return p().createElement(u.Table,{className:i,loading:F,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:I("Plugin name"),render:function(e){return O(e)}},{dataIndex:"accessible",title:p().createElement(p().Fragment,null,p().createElement(u.Checkbox,{checked:T,onChange:g(function(){var e;return S(this,function(n){switch(n.label){case 0:if(e=k.map(function(e){return"!"+e}),T)return[3,2];return[4,_.remove({values:e})];case 1:return n.sent(),[3,4];case 2:return[4,_.add({values:e})];case 3:n.sent(),n.label=4;case 4:return D(),u.message.success(I("Saved successfully")),[2]}})})}),I("Accessible")),render:function(e,n){var t=!j.includes("!"+n.aclSnippet);return p().createElement(u.Checkbox,{checked:t,onChange:function(){return z(t,n)}})}}],dataSource:A.filter(function(e){return!1!==e.isTopLevel}).map(function(e){return!1!==e.showTabs?e:s().omit(e,"children")})})}},A=t("844");function k(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var C=function(e){if(!e)return{};var n,t={};return null==e||null===(n=e.forEach)||void 0===n||n.call(e,function(e){var n,r,o=(n=e.split(":"),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);l=!0);}catch(e){i=!0,r=e}finally{try{!l&&null!=o.return&&o.return()}finally{if(i)throw r}}return a}}(n,2)||function(e,n){if(e){if("string"==typeof e)return k(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return k(e,n)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=o[0],l=o[1];t[a]=l||"all"}),t},j=function(e){var n=[];for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var r=e[t];"all"===r?n.push(t):n.push("".concat(t,":").concat(r))}return n},E=(0,o.connect)(function(e){var n=e.onChange,t=(0,A.r)(),r=(0,l.useCompile)(),a=(0,d.useTranslation)().t,i=C((0,o.useField)().value);return p().createElement("div",null,p().createElement(u.Table,{rowKey:"name",size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:a("Action display name"),render:function(e){return r(e)}},{dataIndex:"onNewRecord",title:a("Action type"),render:function(e){return e?p().createElement(u.Tag,{color:"green"},a("Action on new records")):p().createElement(u.Tag,{color:"geekblue"},a("Action on existing records"))}},{dataIndex:"enabled",title:a("Allow"),render:function(e,t){return p().createElement(u.Checkbox,{checked:e,"aria-label":"".concat(t.name,"_checkbox"),onChange:function(r){e?delete i[t.name]:i[t.name]="all",n(j(i))}})}},{dataIndex:"scope",title:a("Data scope"),render:function(e,t){return!t.onNewRecord&&p().createElement(u.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:e,options:[{label:a("All records"),value:"all"},{label:a("Own records"),value:"own"}],onChange:function(e){i[t.name]=e,n(j(i))}})}}],dataSource:null==t?void 0:t.map(function(e){var n,t,r="all",o=!1;return i[e.name]&&(o=!0,r=i[e.name]),n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),t=(t={enabled:o,scope:r},t),Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n})}))});function P(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function T(e,n,t,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){t(e);return}i.done?n(u):Promise.resolve(u).then(r,o)}function I(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){T(a,r,o,l,i,"next",e)}function i(e){T(a,r,o,l,i,"throw",e)}l(void 0)})}}function M(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return P(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return P(e,n)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,n){var t,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=n.call(e,l)}catch(e){a=[6,e],r=0}finally{t=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var D=(0,o.connect)(function(e){var n=(0,d.useTranslation)().t;return p().createElement(u.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:function(n){var t=["ui.*","pm","pm.*","app"],r=t.map(function(e){return"!".concat(e)}),o=(0,c.uniq)(M(e.value||[]).concat(M(n))).filter(function(e){return e&&!r.includes(e)}).map(function(e){return!t.includes(e)||(null==n?void 0:n.includes(e))?e:"!".concat(e)}),a=!0,l=!1,i=void 0;try{for(var u,s=t[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value;!o.includes(f)&&!o.includes("!".concat(f))&&o.push("!".concat(f))}}catch(e){l=!0,i=e}finally{try{!a&&null!=s.return&&s.return()}finally{if(l)throw i}}e.onChange(o)}},p().createElement("div",{style:{marginTop:16}},p().createElement(u.Checkbox,{value:"ui.*"},n("Allows to configure interface"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"pm"},n("Allows to install, activate, disable plugins"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"pm.*"},n("Allows to configure plugins"))),p().createElement("div",{style:{marginTop:8}},p().createElement(u.Checkbox,{value:"app"},n("Allows to clear cache, reboot application"))))}),_=function(){var e,n,t=(0,f.useContext)(y.T),o=t.role,c=t.setRole,s=(0,m.g)().t,d=(0,l.useAPIClient)(),v=null==o?void 0:null===(n=o.snippets)||void 0===n?void 0:n.includes("pm.*");var b=(0,i.useMemoizedFn)((e=I(function(e){return F(this,function(n){switch(n.label){case 0:return[4,d.resource("roles").update({filterByTk:o.name,values:{snippets:e.values.snippets}})];case 1:return n.sent(),c(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o,e.values)),u.message.success(s("Saved successfully")),[2]}})}),function(n){return e.apply(this,arguments)})),h=(0,f.useMemo)(function(){return(0,r.createForm)({values:o,effects:function(){var e;(0,r.onFormValuesChange)((e=I(function(e){return F(this,function(n){switch(n.label){case 0:return[4,b(e)];case 1:return n.sent(),[2]}})}),function(n){return e.apply(this,arguments)}))}})},[o,b]);return p().createElement(l.SchemaComponent,{components:{SnippetCheckboxGroup:D,StrategyActions:E,PluginPermissions:O},scope:{pm:v},schema:{type:"void",name:(0,a.uid)(),"x-component":"div",properties:{general:{"x-component":"FormV2","x-component-props":{form:h},properties:{snippets:{title:s("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"}}},plugins:{"x-component":"FormV2",properties:{pluginSettings:{title:s("Plugin settings"),"x-decorator":"FormItem","x-component":"PluginPermissions","x-visible":"{{pm}}"}}}}}})}},888:function(e,n,t){t.d(n,{g:function(){return o}});var r=t(238);function o(){return(0,r.useTranslation)(["@nocobase/plugin-acl","client"],{nsMode:"fallback"})}},368:function(e,n,t){t.d(n,{y:function(){return a}});var r=t(202);function o(){var e,n,t=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n "],!n&&(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return o=function(){return t},t}var a=(0,r.createStyles)(function(e){return(0,e.css)(o())})}}]);
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["818"],{105:function(e,t,n){n.r(t),n.d(t,{MenuItemsProvider:function(){return s},toItems:function(){return l},useMenuItems:function(){return c}});var r=n(772),i=n(721),u=n(156),o=n.n(u),a=(0,u.createContext)(null);a.displayName="MenuItemsContext";var l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=e[n],i={title:r.title,uid:r["x-uid"]};r.properties&&(i.children=l(r.properties)),t.push(i)}return t},c=function(){return(0,u.useContext)(a)},s=function(e){var t,n,u=(0,r.useAdminSchemaUid)(),c=(0,r.useRequest)({url:"uiSchemas:getProperties/".concat(u)});if(c.loading)return o().createElement(i.Spin,null);var s=l(null===(n=c.data)||void 0===n?void 0:null===(t=n.data)||void 0===t?void 0:t.properties);return o().createElement(a.Provider,{value:{service:c,items:s}},e.children)}}}]);
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["871"],{105:function(e,t,n){n.r(t),n.d(t,{MenuItemsProvider:function(){return s},toItems:function(){return l},useMenuItems:function(){return c}});var r=n(772),u=n(721),o=n(156),a=n.n(o),i=(0,o.createContext)(null);i.displayName="MenuItemsContext";var l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=e[n],u={title:r.title,uid:r["x-uid"]};r.properties&&(u.children=l(r.properties)),t.push(u)}return t},c=function(){return(0,o.useContext)(i)},s=function(e){var t,n,o=(0,r.useAdminSchemaUid)(),c=(0,r.useRequest)({url:"uiSchemas:getProperties/".concat(o)});if(c.loading)return a().createElement(u.Spin,null);var s=l(null===(n=c.data)||void 0===n?void 0:null===(t=n.data)||void 0===t?void 0:t.properties);return a().createElement(i.Provider,{value:{service:c,items:s}},e.children)}},509:function(e,t,n){n.r(t),n.d(t,{MenuPermissions:function(){return k}});var r=n(563),u=n(875),o=n(772),a=n(749),i=n(721),l=n(467),c=n(156),s=n.n(c),f=n(238),d=n(746),p=n(105),h=n(368);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t,n,r,u,o,a){try{var i=e[o](a),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,u)}function m(e){return function(){var t=this,n=arguments;return new Promise(function(r,u){var o=e.apply(t,n);function a(e){y(o,r,u,a,i,"next",e)}function i(e){y(o,r,u,a,i,"throw",e)}a(void 0)})}}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,u,o;r=e,u=t,o=n[t],u in r?Object.defineProperty(r,u,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[u]=o})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function w(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}}function S(e,t){var n,r,u,o,a={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]};return o={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function i(o){return function(i){return function(o){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(u=2&o[0]?r.return:o[0]?r.throw||((u=r.return)&&u.call(r),0):r.next)&&!(u=u.call(r,o[1])).done)return u;switch(r=0,u&&(o=[2&o[0],u.value]),o[0]){case 0:case 1:u=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(u=(u=a.trys).length>0&&u[u.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!u||o[1]>u[0]&&o[1]<u[3])){a.label=o[1];break}if(6===o[0]&&a.label<u[1]){a.label=u[1],u=o;break}if(u&&a.label<u[2]){a.label=u[2],a.ops.push(o);break}u[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}catch(e){o=[6,e],r=0}finally{n=u=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,i])}}}var x=function(e){if(!Array.isArray(e))return[];var t=[],n=!0,r=!1,u=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;t.push(i.uid),t.push.apply(t,w(x(i.children)))}}catch(e){r=!0,u=e}finally{try{!n&&null!=a.return&&a.return()}finally{if(r)throw u}}return t},j=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(!e)return[];var r=!0,u=!1,o=void 0;try{for(var a,i=e[Symbol.iterator]();!(r=(a=i.next()).done);r=!0){var l=a.value;if(n.push(l.uid),t(l))return n;if(l.children){var c=j(l.children,t,n);if(c.length)return c}n.pop()}}catch(e){u=!0,o=e}finally{try{!r&&null!=i.return&&i.return()}finally{if(u)throw o}}return[]},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=!0,r=!1,u=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;t.push(i.uid),i.children&&i.children.length&&P(i.children,t)}}catch(e){r=!0,u=e}finally{try{!n&&null!=a.return&&a.return()}finally{if(r)throw u}}return t},k=function(e){var t,n,v,y,k,A=e.active,C=(0,h.y)().styles,E=(0,c.useContext)(d.T),I=E.role,M=E.setRole,F=(0,o.useAPIClient)(),T=(0,p.useMenuItems)().items,_=(0,f.useTranslation)().t,D=x(T);var z=(t=(0,c.useState)([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,u=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=u){var o=[],a=!0,i=!1;try{for(u=u.call(e);!(a=(n=u.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{!a&&null!=u.return&&u.return()}finally{if(i)throw r}}return o}}(t,2)||O(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),N=z[0],R=z[1],U=(0,o.useRequest)({resource:"roles.menuUiSchemas",resourceOf:I.name,action:"list",params:{paginate:!1}},{ready:!!I&&A,refreshDeps:[null==I?void 0:I.name],onSuccess:function(e){var t;R((null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.map(function(e){return e["x-uid"]}))||[])}}),q=U.loading,V=U.refresh,B=F.resource("roles.menuUiSchemas",I.name),G=D.length===N.length;var K=(v=m(function(e,t){var n,r,u,o;return S(this,function(a){switch(a.label){case 0:if(n=j(T,function(e){return e.uid===t.uid}),r=P(null==t?void 0:t.children,[]),!e)return[3,2];return u=r.concat(t.uid),R(w(N.filter(function(e){return!u.includes(e)}))),[4,B.remove({values:u})];case 1:return a.sent(),[3,4];case 2:return o=r.concat(n),R(function(e){return(0,l.uniq)(w(e).concat(w(o)))}),[4,B.add({values:o})];case 3:a.sent(),a.label=4;case 4:return i.message.success(_("Saved successfully")),[2]}})}),function(e,t){return v.apply(this,arguments)}),$=function(e){return e.map(function(e){var t=_(e.title);return e.children?g(b({},e),{title:t,children:$(e.children)}):g(b({},e),{title:t})})};var H=(0,a.useMemoizedFn)((y=m(function(e){return S(this,function(t){switch(t.label){case 0:return[4,F.resource("roles").update({filterByTk:I.name,values:e.values})];case 1:return t.sent(),M(b({},I,e.values)),i.message.success(_("Saved successfully")),[2]}})}),function(e){return y.apply(this,arguments)})),J=(0,c.useMemo)(function(){return(0,r.createForm)({values:I,effects:function(){var e;(0,r.onFormValuesChange)((e=m(function(e){return S(this,function(t){switch(t.label){case 0:return[4,H(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[I,H]);return s().createElement(s().Fragment,null,s().createElement(o.SchemaComponent,{schema:{type:"void",name:(0,u.uid)(),"x-component":"FormV2","x-component-props":{form:J},properties:{allowNewMenu:{title:_("Menu permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":_("New menu items are allowed to be accessed by default.")}}}}),s().createElement(i.Table,{className:C,loading:q,rowKey:"uid",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:_("Menu item title")},{dataIndex:"accessible",title:s().createElement(s().Fragment,null,s().createElement(i.Checkbox,{checked:G,onChange:(k=m(function(e){return S(this,function(e){switch(e.label){case 0:if(!G)return[3,2];return[4,B.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,B.set({values:D})];case 3:e.sent(),e.label=4;case 4:return V(),i.message.success(_("Saved successfully")),[2]}})}),function(e){return k.apply(this,arguments)})})," ",_("Accessible")),render:function(e,t){var n=N.includes(t.uid);return s().createElement(i.Checkbox,{checked:n,onChange:function(){return K(n,t)}})}}],dataSource:$(T)}))}},368:function(e,t,n){n.d(t,{y:function(){return o}});var r=n(202);function u(){var e,t,n=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return u=function(){return n},n}var o=(0,r.createStyles)(function(e){return(0,e.css)(u())})}}]);