@nocobase/plugin-acl 1.9.0-beta.1 → 1.9.0-beta.11

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.
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["593"],{968:function(e,t,n){n.r(t),n.d(t,{RolesManagement:function(){return q}});var r=n(505),o=n(772),l=n(721),a=n(156),i=n.n(a),c=n(508),u=n(546),s=n(875),f=function(){var e=(0,u.g)().t;return i().createElement(o.SchemaComponent,{scope:{t:e},schema:{type:"void",properties:{newRole:{type:"void",title:e("New role"),"x-component":"Action","x-component-props":{type:"text",icon:"PlusOutlined",style:{textAlign:"left"}},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t,n,r=(0,o.useActionContext)();return(0,o.useRequest)(function(){return Promise.resolve({data:{name:"r_".concat((0,s.uid)()),snippets:["!ui.*","!pm","!pm.*"]}})},(t=function(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={refreshDeps:[r.visible]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},title:e("New role"),properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}}})},m=n(360),p=n(482),y=n(467);function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b={type:"object",properties:d({},(0,s.uid)(),{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t,n,r=(0,o.useRecord)(),l=(0,o.useRequest)(function(){return Promise.resolve({data:(0,y.pick)(r,["title","name","default"])})},(t=function(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){d(e,t,n[t])})}return e}({},e),n=n={manual:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),i=(0,o.useActionContext)();return(0,a.useEffect)(function(){i.visible&&l.run()},[i.visible]),l}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}',"x-reactions":function(e){e.initialValue?e.disabled=!0:e.disabled=!1}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}})};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}var h=function(e){var t,n=e.loadMore,r=(t=(0,a.useState)(null),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 l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return v(e,2);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)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=r[0],l=r[1],i=(0,a.useRef)(null),c=(0,a.useCallback)(function(e){e&&(i.current&&i.current.disconnect(),i.current=new IntersectionObserver(function(t){t.forEach(function(t){t.target===e.current&&t.isIntersecting&&(i.current&&i.current.unobserve(e.current),n())})}),e.current&&i.current&&i.current.observe(e.current))},[n]);return(0,a.useEffect)(function(){return c(o),function(){i.current&&i.current.disconnect()}},[o,c]),{lastItem:o,setLastItem:l}};function g(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 w(e,t,n,r,o,l,a){try{var i=e[l](a),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function a(e){w(l,r,o,a,i,"next",e)}function i(e){w(l,r,o,a,i,"throw",e)}a(void 0)})}}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||x(e,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.")}()}function A(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||x(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 x(e,t){if(e){if("string"==typeof e)return g(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 g(e,t)}}function S(e,t){var n,r,o,l,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var c=[l,i];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var j=function(){var e=(0,u.g)().t,t=(0,o.useResourceActionContext)(),n=t.data,r=t.mutate,c=O((0,a.useState)(!1),2),s=c[0],f=c[1],p=O((0,a.useState)(null),2),y=p[0],d=p[1],v=(0,a.useContext)(m.T),g=v.role,w=v.setRole,x=O((0,a.useState)([]),2),P=x[0],C=x[1],I=O((0,a.useState)(!1),2),R=I[0],k=I[1],D=(0,o.useAPIClient)(),T=h({loadMore:(0,a.useCallback)(E(function(){var e,t;return S(this,function(o){switch(o.label){case 0:if(!(e=null==n?void 0:n.meta)||e.page>=e.totalPage)return[2];return k(!0),[4,D.resource("roles").list({page:e.page+1,pageSize:e.pageSize,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]})];case 1:return r((null==(t=o.sent())?void 0:t.data)||{}),k(!1),[2]}})}),[n])}),M=T.lastItem,F=T.setLastItem;(0,a.useEffect)(function(){P[0]&&w(P[0])},[P,w]),(0,a.useEffect)(function(){if(null==n||null==(e=n.data)?void 0:e.length){var e,t;F(i().createRef()),(null==(t=n.meta)?void 0:t.page)>1?C(function(e){return e.concat(n.data)}):C(n.data)}},[n,F]);var U=(0,a.useMemo)(function(){return P.map(function(e,t){return{key:e.name,label:t===P.length-1?i().createElement("div",{ref:M},i().createElement(j.Item,{item:e,onEdit:function(){f(!0),d(e)}})):i().createElement(j.Item,{item:e,onEdit:function(){f(!0),d(e)}})}})},[P,M]);return i().createElement(i().Fragment,null,P.length?i().createElement(l.Menu,{style:{border:"none",maxHeight:"65vh",overflowY:"auto"},items:A(U).concat(A(R?[{key:"loading",label:i().createElement(l.Spin,null)}]:[])),selectedKeys:[null==g?void 0:g.name],onSelect:function(e){var t=e.key;w(P.find(function(e){return e.name===t}))}}):i().createElement(l.Empty,{image:l.Empty.PRESENTED_IMAGE_SIMPLE}),i().createElement(o.ActionContextProvider,{value:{visible:s,setVisible:f}},i().createElement(o.RecordProvider,{record:y,collectionName:"departments"},i().createElement(o.SchemaComponent,{scope:{t:e},schema:b}))))};j.Item=function(e){var t=e.item,n=e.onEdit,a=(0,u.g)().t,c=(0,o.useResourceActionContext)().refreshAsync,s=l.App.useApp(),f=s.modal,m=s.message,y=(0,o.useAPIClient)(),d=function(){f.confirm({title:a("Delete"),content:a("Are you sure you want to delete it?"),onOk:E(function(){return S(this,function(e){switch(e.label){case 0:return[4,y.resource("roles").destroy({filterByTk:t.name})];case 1:return e.sent(),m.success(a("Deleted successfully")),[4,c()];case 2:return e.sent(),[2]}})})})},b=r.Schema.compile(t.title,{t:a});return i().createElement(l.Row,null,i().createElement(l.Col,{flex:3,style:{display:"inline-flex",alignItems:"center"}},i().createElement("span",{style:{whiteSpace:"nowrap",width:"120px",overflow:"hidden",textOverflow:"ellipsis"}},i().createElement(p.TagOutlined,null),i().createElement("span",{style:{marginLeft:"10px"},title:b},b))),i().createElement(l.Col,null,t.default?i().createElement(l.Tag,{color:"success",bordered:!1},a("Default")):null,i().createElement(l.Dropdown,{menu:{items:[{label:a("Edit"),key:"edit"},{label:a("Delete"),key:"delete"}],onClick:function(e){var t=e.key;switch(e.domEvent.stopPropagation(),t){case"edit":n();break;case"delete":d()}}}},i().createElement(p.MoreOutlined,null))))};var P=n(174);function C(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}var I=function(e){return i().createElement("div",{style:{maxHeight:"60vh",overflowY:"auto"}},e.children)},R=function(e){var t,n=e.active,r=(0,u.g)().t,s=(t=i().useState("general"),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 l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return C(e,2);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 C(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=s[0],p=s[1],y=(0,a.useContext)(m.T),d=y.role,b=y.setRole,v=(0,o.usePlugin)(c.default),h=(0,o.useACLRoleContext)(),g=(0,a.useMemo)(function(){return v.settingsUI.getPermissionsTabs({t:r,activeKey:f,TabLayout:I,activeRole:d,currentUserRole:h}).filter(Boolean)},[f,v.settingsUI,d,r,h]),w=(0,o.useAPIClient)(),E=(0,o.useRequest)(function(){return w.resource("roles").get({filterByTk:null==d?void 0:d.name}).then(function(e){var t,n,r=null==e||null==(t=e.data)?void 0:t.data;return null==(n=r.snippets)||n.forEach(function(e){r[e]=!0}),r})},{ready:n&&!!d,refreshDeps:[null==d?void 0:d.name]}).data;return(0,a.useEffect)(function(){p("general")},[null==d?void 0:d.name]),(0,a.useEffect)(function(){b(E)},[E,b]),i().createElement(P.U,null,i().createElement(l.Tabs,{type:"card",activeKey:f,onChange:function(e){return p(e)},items:g}))},k=n(749);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}var T=function(){var e,t=(0,u.g)().t,n=(0,o.useAPIClient)(),r=(0,o.useCurrentRoleMode)(),c=(e=(0,a.useState)(r||"default"),function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return D(e,2);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)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],f=c[1],m=(0,k.useRequest)(function(e){return n.resource("roles").setSystemRoleMode({values:{roleMode:e}})},{manual:!0,onSuccess:function(e,n){f(n[0]),l.message.success(t("Saved successfully")),window.location.reload()}}).run;return i().createElement("div",null,i().createElement(l.Select,{value:s,onChange:function(e){return m(e)},options:[{value:"default",label:t("Independent roles"),desc:t("Do not use role union. Users need to switch between their roles individually.")},{value:"allow-use-union",label:t("Allow roles union"),desc:t("Allow users to use role union, which means they can use permissions from all their roles simultaneously, or switch between individual roles.")},{value:"only-use-union",label:t("Roles union only"),desc:t("Force users to use only role union. They cannot switch between individual roles.")}],optionRender:function(e){return i().createElement(l.Tooltip,{placement:"right",title:i().createElement("div",null,e.data.desc)},i().createElement(l.Flex,{justify:"space-between"},i().createElement("span",{style:{display:"inline-flex",paddingRight:8}},e.data.label)))}}))};function M(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 F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||U(e,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.")}()}function U(e,t){if(e){if("string"==typeof e)return M(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 M(e,t)}}var _={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},q=function(){var e=(0,u.g)().t,t=(0,o.usePlugin)(c.default),n=F(i().useState("permissions"),2),s=n[0],p=n[1],y=Array.from(t.rolesManager.list()).map(function(t){var n=F(t,2),o=n[0],l=n[1];return{key:o,label:r.Schema.compile(l.title,{t:e}),children:l.Component?i().createElement(l.Component,{active:s===o}):null}}),d=F((0,a.useState)(null),2),b=d[0],v=d[1],h=(0,o.useSchemaComponentContext)(),g=(0,a.useMemo)(function(){var e,t;return e=function(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},h),t=t={designable:!1},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},[h]);return i().createElement(o.SchemaComponentContext.Provider,{value:g},i().createElement(m.T.Provider,{value:{role:b,setRole:v}},i().createElement(l.Card,null,i().createElement(l.Row,{gutter:24,style:{flexWrap:"nowrap"}},i().createElement(l.Col,{flex:"280px",style:{borderRight:"1px solid #eee",minWidth:"350px"}},i().createElement(o.ResourceActionProvider,{collection:_,request:{resource:"roles",action:"list",params:{filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}}},i().createElement(o.CollectionProvider_deprecated,{collection:_},i().createElement(l.Row,{justify:"space-between",align:"middle",style:{width:"100%"}},i().createElement(f,null),i().createElement(T,null)),i().createElement(l.Divider,{style:{margin:"12px 0"}}),i().createElement(j,null)))),i().createElement(l.Col,{flex:"auto",style:{overflow:"hidden"}},i().createElement(l.Tabs,{activeKey:s,onChange:function(e){return p(e)},items:[{key:"permissions",label:e("Permissions"),children:i().createElement(R,{active:"permissions"===s})}].concat(function(e){if(Array.isArray(e))return M(e)}(y)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(y)||U(y)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}))))))}},174:function(e,t,n){n.d(t,{U:function(){return c},r:function(){return u}});var r=n(772),o=n(721),l=n(156),a=n.n(l),i=(0,l.createContext)([]);i.displayName="AvailableActionsContext";var c=function(e){var t=(0,r.useRequest)({resource:"availableActions",action:"list"}),n=t.data;return t.loading?a().createElement(o.Spin,null):a().createElement(i.Provider,{value:null==n?void 0:n.data},e.children)},u=function(){return(0,l.useContext)(i)}},546:function(e,t,n){n.d(t,{g:function(){return o}});var r=n(238);function o(){return(0,r.useTranslation)(["@nocobase/plugin-acl","client"],{nsMode:"fallback"})}}}]);
10
+ "use strict";(self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).push([["593"],{968:function(e,t,n){n.r(t),n.d(t,{RolesManagement:function(){return q}});var r=n(505),o=n(772),l=n(721),a=n(156),i=n.n(a),c=n(508),u=n(546),s=n(875),f=function(){var e=(0,u.g)().t;return i().createElement(o.SchemaComponent,{scope:{t:e},schema:{type:"void",properties:{newRole:{type:"void",title:e("New role"),"x-component":"Action","x-component-props":{type:"text",icon:"PlusOutlined",style:{textAlign:"left"}},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t,n,r=(0,o.useActionContext)();return(0,o.useRequest)(function(){return Promise.resolve({data:{name:"r_".concat((0,s.uid)()),snippets:["!ui.*","!pm","!pm.*"]}})},(t=function(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e),n=n={refreshDeps:[r.visible]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},title:e("New role"),properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}}})},m=n(360),p=n(482),d=n(467);function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b={type:"object",properties:y({},(0,s.uid)(),{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t,n,r=(0,o.useRecord)(),l=(0,o.useRequest)(function(){return Promise.resolve({data:(0,d.pick)(r,["title","name","default"])})},(t=function(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){y(e,t,n[t])})}return e}({},e),n=n={manual:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),i=(0,o.useActionContext)();return(0,a.useEffect)(function(){i.visible&&l.run()},[i.visible]),l}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}',"x-reactions":function(e){e.initialValue?e.disabled=!0:e.disabled=!1}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}})};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}var h=function(e){var t,n=e.loadMore,r=(t=(0,a.useState)(null),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 l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return v(e,2);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)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=r[0],l=r[1],i=(0,a.useRef)(null),c=(0,a.useCallback)(function(e){e&&(i.current&&i.current.disconnect(),i.current=new IntersectionObserver(function(t){t.forEach(function(t){t.target===e.current&&t.isIntersecting&&(i.current&&i.current.unobserve(e.current),n())})}),e.current&&i.current&&i.current.observe(e.current))},[n]);return(0,a.useEffect)(function(){return c(o),function(){i.current&&i.current.disconnect()}},[o,c]),{lastItem:o,setLastItem:l}};function g(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 w(e,t,n,r,o,l,a){try{var i=e[l](a),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function a(e){w(l,r,o,a,i,"next",e)}function i(e){w(l,r,o,a,i,"throw",e)}a(void 0)})}}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||x(e,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.")}()}function A(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||x(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 x(e,t){if(e){if("string"==typeof e)return g(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 g(e,t)}}function S(e,t){var n,r,o,l,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var c=[l,i];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var j=function(){var e=(0,u.g)().t,t=(0,o.useResourceActionContext)(),n=t.data,r=t.mutate,c=O((0,a.useState)(!1),2),s=c[0],f=c[1],p=O((0,a.useState)(null),2),d=p[0],y=p[1],v=(0,a.useContext)(m.T),g=v.role,w=v.setRole,x=O((0,a.useState)([]),2),P=x[0],C=x[1],I=O((0,a.useState)(!1),2),R=I[0],k=I[1],D=(0,o.useAPIClient)(),T=h({loadMore:(0,a.useCallback)(E(function(){var e,t;return S(this,function(o){switch(o.label){case 0:if(!(e=null==n?void 0:n.meta)||e.page>=e.totalPage)return[2];return k(!0),[4,D.resource("roles").list({page:e.page+1,pageSize:e.pageSize,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]})];case 1:return r((null==(t=o.sent())?void 0:t.data)||{}),k(!1),[2]}})}),[n])}),M=T.lastItem,F=T.setLastItem;(0,a.useEffect)(function(){P[0]&&w(P[0])},[P,w]),(0,a.useEffect)(function(){if(null==n||null==(e=n.data)?void 0:e.length){var e,t;F(i().createRef()),(null==(t=n.meta)?void 0:t.page)>1?C(function(e){return e.concat(n.data)}):C(n.data)}},[n,F]);var U=(0,a.useMemo)(function(){return P.map(function(e,t){return{key:e.name,label:t===P.length-1?i().createElement("div",{ref:M},i().createElement(j.Item,{item:e,onEdit:function(){f(!0),y(e)}})):i().createElement(j.Item,{item:e,onEdit:function(){f(!0),y(e)}})}})},[P,M]);return i().createElement(i().Fragment,null,P.length?i().createElement(l.Menu,{style:{border:"none",maxHeight:"65vh",overflowY:"auto"},items:A(U).concat(A(R?[{key:"loading",label:i().createElement(l.Spin,null)}]:[])),selectedKeys:[null==g?void 0:g.name],onSelect:function(e){var t=e.key;w(P.find(function(e){return e.name===t}))}}):i().createElement(l.Empty,{image:l.Empty.PRESENTED_IMAGE_SIMPLE}),i().createElement(o.ActionContextProvider,{value:{visible:s,setVisible:f}},i().createElement(o.RecordProvider,{record:d,collectionName:"departments"},i().createElement(o.SchemaComponent,{scope:{t:e},schema:b}))))};j.Item=function(e){var t=e.item,n=e.onEdit,a=(0,u.g)().t,c=(0,o.useResourceActionContext)().refreshAsync,s=l.App.useApp(),f=s.modal,m=s.message,d=(0,o.useAPIClient)(),y=function(){f.confirm({title:a("Delete"),content:a("Are you sure you want to delete it?"),onOk:E(function(){return S(this,function(e){switch(e.label){case 0:return[4,d.resource("roles").destroy({filterByTk:t.name})];case 1:return e.sent(),m.success(a("Deleted successfully")),[4,c()];case 2:return e.sent(),[2]}})})})},b=r.Schema.compile(t.title,{t:a});return i().createElement(l.Row,null,i().createElement(l.Col,{flex:3,style:{display:"inline-flex",alignItems:"center",flex:"1 1 0",minWidth:0,paddingRight:"8px"}},i().createElement("span",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"}},i().createElement(p.TagOutlined,null),i().createElement("span",{style:{marginLeft:"10px"},title:b},b))),i().createElement(l.Col,null,t.default?i().createElement(l.Tag,{color:"success",bordered:!1},a("Default")):null,i().createElement(l.Dropdown,{menu:{items:[{label:a("Edit"),key:"edit"},{label:a("Delete"),key:"delete"}],onClick:function(e){var t=e.key;switch(e.domEvent.stopPropagation(),t){case"edit":n();break;case"delete":y()}}}},i().createElement(p.MoreOutlined,null))))};var P=n(174);function C(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}var I=function(e){return i().createElement("div",{style:{maxHeight:"60vh",overflowY:"auto"}},e.children)},R=function(e){var t,n=e.active,r=(0,u.g)().t,s=(t=i().useState("general"),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 l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return C(e,2);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 C(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=s[0],p=s[1],d=(0,a.useContext)(m.T),y=d.role,b=d.setRole,v=(0,o.usePlugin)(c.default),h=(0,o.useACLRoleContext)(),g=(0,a.useMemo)(function(){return v.settingsUI.getPermissionsTabs({t:r,activeKey:f,TabLayout:I,activeRole:y,currentUserRole:h}).filter(Boolean)},[f,v.settingsUI,y,r,h]),w=(0,o.useAPIClient)(),E=(0,o.useRequest)(function(){return w.resource("roles").get({filterByTk:null==y?void 0:y.name}).then(function(e){var t,n,r=null==e||null==(t=e.data)?void 0:t.data;return null==(n=r.snippets)||n.forEach(function(e){r[e]=!0}),r})},{ready:n&&!!y,refreshDeps:[null==y?void 0:y.name]}).data;return(0,a.useEffect)(function(){p("general")},[null==y?void 0:y.name]),(0,a.useEffect)(function(){b(E)},[E,b]),i().createElement(P.U,null,i().createElement(l.Tabs,{type:"card",activeKey:f,onChange:function(e){return p(e)},items:g}))},k=n(749);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}var T=function(){var e,t=(0,u.g)().t,n=(0,o.useAPIClient)(),r=(0,o.useCurrentRoleMode)(),c=(e=(0,a.useState)(r||"default"),function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return D(e,2);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)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],f=c[1],m=(0,k.useRequest)(function(e){return n.resource("roles").setSystemRoleMode({values:{roleMode:e}})},{manual:!0,onSuccess:function(e,n){f(n[0]),l.message.success(t("Saved successfully")),window.location.reload()}}).run;return i().createElement("div",null,i().createElement(l.Select,{value:s,onChange:function(e){return m(e)},options:[{value:"default",label:t("Independent roles"),desc:t("Do not use role union. Users need to switch between their roles individually.")},{value:"allow-use-union",label:t("Allow roles union"),desc:t("Allow users to use role union, which means they can use permissions from all their roles simultaneously, or switch between individual roles.")},{value:"only-use-union",label:t("Roles union only"),desc:t("Force users to use only role union. They cannot switch between individual roles.")}],optionRender:function(e){return i().createElement(l.Tooltip,{placement:"right",title:i().createElement("div",null,e.data.desc)},i().createElement(l.Flex,{justify:"space-between"},i().createElement("span",{style:{display:"inline-flex",paddingRight:8}},e.data.label)))}}))};function M(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 F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||U(e,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.")}()}function U(e,t){if(e){if("string"==typeof e)return M(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 M(e,t)}}var _={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},q=function(){var e=(0,u.g)().t,t=(0,o.usePlugin)(c.default),n=F(i().useState("permissions"),2),s=n[0],p=n[1],d=Array.from(t.rolesManager.list()).map(function(t){var n=F(t,2),o=n[0],l=n[1];return{key:o,label:r.Schema.compile(l.title,{t:e}),children:l.Component?i().createElement(l.Component,{active:s===o}):null}}),y=F((0,a.useState)(null),2),b=y[0],v=y[1],h=(0,o.useSchemaComponentContext)(),g=(0,a.useMemo)(function(){var e,t;return e=function(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},h),t=t={designable:!1},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},[h]);return i().createElement(o.SchemaComponentContext.Provider,{value:g},i().createElement(m.T.Provider,{value:{role:b,setRole:v}},i().createElement(l.Card,null,i().createElement(l.Row,{gutter:24,style:{flexWrap:"nowrap"}},i().createElement(l.Col,{flex:"280px",style:{borderRight:"1px solid #eee",minWidth:"350px"}},i().createElement(o.ResourceActionProvider,{collection:_,request:{resource:"roles",action:"list",params:{filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}}},i().createElement(o.CollectionProvider_deprecated,{collection:_},i().createElement(l.Row,{justify:"space-between",align:"middle",style:{width:"100%"}},i().createElement(f,null),i().createElement(T,null)),i().createElement(l.Divider,{style:{margin:"12px 0"}}),i().createElement(j,null)))),i().createElement(l.Col,{flex:"auto",style:{overflow:"hidden"}},i().createElement(l.Tabs,{activeKey:s,onChange:function(e){return p(e)},items:[{key:"permissions",label:e("Permissions"),children:i().createElement(R,{active:"permissions"===s})}].concat(function(e){if(Array.isArray(e))return M(e)}(d)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(d)||U(d)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}))))))}},174:function(e,t,n){n.d(t,{U:function(){return c},r:function(){return u}});var r=n(772),o=n(721),l=n(156),a=n.n(l),i=(0,l.createContext)([]);i.displayName="AvailableActionsContext";var c=function(e){var t=(0,r.useRequest)({resource:"availableActions",action:"list"}),n=t.data;return t.loading?a().createElement(o.Spin,null):a().createElement(i.Provider,{value:null==n?void 0:n.data},e.children)},u=function(){return(0,l.useContext)(i)}},546:function(e,t,n){n.d(t,{g:function(){return o}});var r=n(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("@formily/core"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("react"),require("@formily/react"),require("lodash"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("antd-style"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["@formily/core","ahooks","@formily/shared","@nocobase/client","react","@formily/react","lodash","@nocobase/utils/client","@ant-design/icons","antd","antd-style","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("@formily/core"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("react"),require("@formily/react"),require("lodash"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("antd-style"),require("react-i18next")):e["@nocobase/plugin-acl"]=t(e["@formily/core"],e.ahooks,e["@formily/shared"],e["@nocobase/client"],e.react,e["@formily/react"],e.lodash,e["@nocobase/utils/client"],e["@ant-design/icons"],e.antd,e["antd-style"],e["react-i18next"])}(self,function(e,t,n,r,o,i,u,a,l,c,s,f){return function(){var p,d,h,b,y,m,v={360:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r=(0,n(156).createContext)({role:null});r.displayName="RolesManagerContext"},849:function(e,t,n){"use strict";n.r(t),n.d(t,{DesktopAllRoutesProvider:function(){return E},MenuPermissions:function(){return C}});var r=n(563),o=n(875),i=n(772),u=n(749),a=n(721),l=n(467),c=n(156),s=n.n(c),f=n(238),p=n(360);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 h(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}function b(e){return 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)})}}function y(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}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 k=function(e,t){return Array.isArray(e)?e.map(function(e){var n,r=k(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.id,parent:t}}):[]},O=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(O(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()),_=function(e,t,n){return e.map(function(e){var r,o=((null==(r=e.title)?void 0:r.match(/^\s*\{\{\s*.+?\s*\}\}\s*$/))?n(e.title):t(e.title))||t("Unnamed");return e.children?m(y({},e),{title:o,children:_(e.children,t,n)}):m(y({},e),{title:o})})},j=(0,c.createContext)({routeList:[]}),S=function(e){var t=e.children,n=e.refreshRef,r=(0,i.useAPIClient)(),o=(0,c.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,l=u.runAsync;n&&(n.current=l);var f=(0,c.useMemo)(function(){return(null==a?void 0:a.data)||[]},[a]),p=(0,c.useMemo)(function(){return{routeList:f}},[f]);return s().createElement(j.Provider,{value:p},t)},E=function(e){var t=e.children,n=e.active,r=s().useRef(function(){});return(0,c.useEffect)(function(){if(n){var e;null==(e=r.current)||e.call(r)}},[n]),s().createElement(S,{refreshRef:r},t)},C=function(e){var t,n,d,h,m=e.active,x=k((0,c.useContext)(j).routeList),S=(0,c.useContext)(p.T),E=S.role,C=S.setRole,R=(0,i.useAPIClient)(),T=(0,f.useTranslation)().t,q=O(x),A=(t=(0,c.useState)([]),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),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,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=A[0],I=A[1],D=(0,i.useRequest)({resource:"roles.desktopRoutes",resourceOf:E.name,action:"list",params:{paginate:!1,filter:{hidden:{$ne:!0}}}},{ready:!!E&&m,refreshDeps:[null==E?void 0:E.name],onSuccess:function(e){var t;I((null==e||null==(t=e.data)?void 0:t.map(function(e){return e.id}))||[])}}),F=D.loading,z=D.refresh,L=R.resource("roles.desktopRoutes",E.name),N=q.length===M.length,G=(0,i.useAllAccessDesktopRoutes)().refresh,U=(n=b(function(e,t){var n,r,o,i,u,c,s,f;return w(this,function(p){switch(p.label){case 0:if(!e)return[3,2];return n=M.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!O(t.children).includes(e)}),(o=r).push.apply(o,v(O(t.children)))),I(n),[4,L.remove({values:r})];case 1:return p.sent(),[3,4];case 2:return i=v(M).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=O(t.children),(c=i).push.apply(c,v(f)),(s=u).push.apply(s,v(f))),I((0,l.uniq)(i)),[4,L.add({values:u})];case 3:p.sent(),p.label=4;case 4:return G(),a.message.success(T("Saved successfully")),[2]}})}),function(e,t){return n.apply(this,arguments)}),B=(0,u.useMemoizedFn)((d=b(function(e){return w(this,function(t){switch(t.label){case 0:return[4,R.resource("roles").update({filterByTk:E.name,values:e.values})];case 1:return t.sent(),C(y({},E,e.values)),a.message.success(T("Saved successfully")),[2]}})}),function(e){return d.apply(this,arguments)})),$=(0,c.useMemo)(function(){return(0,r.createForm)({values:E,effects:function(){var e;(0,r.onFormValuesChange)((e=b(function(e){return w(this,function(t){switch(t.label){case 0:return[4,B(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[E,B]),K=(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:$},properties:{allowNewMenu:{title:T("Route permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":T("New routes are allowed to be accessed by default")}}}}),s().createElement(a.Table,{className:P,loading:F,rowKey:"id",pagination:!1,expandable:{defaultExpandAllRows:!1},columns:[{dataIndex:"title",title:T("Route name")},{dataIndex:"accessible",title:s().createElement(s().Fragment,null,s().createElement(a.Checkbox,{checked:N,onChange:(h=b(function(e){return w(this,function(e){switch(e.label){case 0:if(!N)return[3,2];return[4,L.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,L.set({values:q})];case 3:e.sent(),e.label=4;case 4:return z(),G(),a.message.success(T("Saved successfully")),[2]}})}),function(e){return h.apply(this,arguments)})})," ",T("Accessible")),render:function(e,t){var n=M.includes(t.id);return s().createElement(a.Checkbox,{checked:n,onChange:function(){return U(n,t)}})}}],dataSource:_(x,T,K)}))}},508:function(e,t,n){"use strict";n.r(t),n.d(t,{PluginACLClient:function(){return C},RolesManagerContext:function(){return g.T},default:function(){return R}});var r=n(772),o=n(156),i=n.n(o),u=n(849),a=n(581),l=(0,r.lazy)(function(){return a("imported_-1r1jup3_component",n.e("57").then(n.bind(n,559)))},"GeneralPermissions").GeneralPermissions,c=(0,r.lazy)(function(){return a("imported_1qalbop_component",Promise.resolve().then(n.bind(n,849)))},"MenuPermissions").MenuPermissions,s=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="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(c,{active:"menu"===t})))}}],e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{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=null==e?void 0:e.sort)?n:100)-(null!=(r=null==t?void 0:t.sort)?r:100)})}}],function(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)}}(t.prototype,e),t}(),f=n(584),p=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="rolesManager",n=new f.Registry,e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{key:"add",value:function(e,t){this.rolesManager.register(e,t)}},{key:"list",value:function(){return this.rolesManager.getEntities()}}],function(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)}}(t.prototype,e),t}(),d=n(238),h=n(721),b=n(467),y=n.n(b);function m(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}var v=function(){var e,t,n,o=(0,d.useTranslation)().t,u=(0,r.useAPIClient)(),a=y().cloneDeep((0,r.useCurrentRoles)()),l=(0,r.useCurrentRoleMode)(),c=null==(n=a.find(function(e){return e.name===u.auth.role}))?void 0:n.name;return("allow-use-union"===l&&a.unshift({name:"__union__",title:o("Full permissions",{ns:"acl"})}),a.length<=1||"only-use-union"===l)?null:i().createElement(r.SchemaSettingsItem,{eventKey:"SwitchRole",title:"SwitchRole"},i().createElement(r.SelectWithTitle,{title:o("Switch role"),fieldNames:{label:"title",value:"name"},options:a.reduce(function(e,t){return e.push(t),"__union__"===t.name&&e.push({name:"divider",title:i().createElement(h.Divider,{style:{margin:"2px 1px"}}),disabled:!0,style:{minHeight:0,height:"auto",padding:0}}),e},[]),defaultValue:c||a[0].name,onChange:(e=function(e){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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return u.auth.setRole(e),[4,u.resource("users").setDefaultRole({values:{roleName:e}})];case 1:return t.sent(),location.reload(),window.location.reload(),[2]}})},t=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)})},function(e){return t.apply(this,arguments)})}))},g=n(360),w=n(581);function x(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}function k(e,t,n){return(k=S()?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,n.prototype),o}).apply(null,arguments)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e){var t="function"==typeof Map?new Map:void 0;return(j=function(e){if(null===e||-1===Function.toString.call(e).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,n)}function n(){return k(e,arguments,P(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_(n,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}var E=(0,r.lazy)(function(){return w("imported_-1obaqk_component",n.e("593").then(n.bind(n,968)))},"RolesManagement").RolesManagement,C=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=P(t),O(e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(t,r||[],P(this).constructor):t.apply(this,r)),"rolesManager",new p),O(e,"settingsUI",new s),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&_(n,e),t=[{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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:E,aclSnippet:"pm.acl.roles",sort:3}),t.app.addUserCenterSettingsItem({name:"divider_switchRole",type:"divider",sort:200}),t.app.addUserCenterSettingsItem({name:"switchRole",Component:v,sort:300}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){x(i,r,o,u,a,"next",e)}function a(e){x(i,r,o,u,a,"throw",e)}u(void 0)})})()}}],function(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)}}(n.prototype,t),n}(j(r.Plugin)),R=C},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=l},563:function(t){"use strict";t.exports=e},505:function(e){"use strict";e.exports=i},875:function(e){"use strict";e.exports=n},772:function(e){"use strict";e.exports=r},584:function(e){"use strict";e.exports=a},749:function(e){"use strict";e.exports=t},721:function(e){"use strict";e.exports=c},202:function(e){"use strict";e.exports=s},467:function(e){"use strict";e.exports=u},156:function(e){"use strict";e.exports=o},238:function(e){"use strict";e.exports=f}},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""+({57:"b7d762c805b5e436",593:"cee7be7d7d0551d2"})[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])return void p[e].push(t);if(void 0!==n)for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var l=u[a];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+n){o=l;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 c=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(c.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=c.bind(null,o.onerror),o.onload=c.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})},(h=window.__nocobase_public_path__||"/").endsWith("/")||(h+="/"),w.p=h+"static/plugins/@nocobase/plugin-acl/dist/client/",b={909:0},w.f.j=function(e,t){var n=w.o(b,e)?b[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=b[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(b,e)&&(0!==(n=b[e])&&(b[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)}},y=function(e,t){var n,r,o=t[0],i=t[1],u=t[2],a=0;if(o.some(function(e){return 0!==b[e]})){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);u&&u(w)}for(e&&e(t);a<o.length;a++)r=o[a],w.o(b,r)&&b[r]&&b[r][0](),b[r]=0},(m=self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).forEach(y.bind(null,0)),m.push=y.bind(null,m.push.bind(m)),w(508)}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@formily/core"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("react"),require("@formily/react"),require("lodash"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("antd-style"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["@formily/core","ahooks","@formily/shared","@nocobase/client","react","@formily/react","lodash","@nocobase/utils/client","@ant-design/icons","antd","antd-style","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("@formily/core"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("react"),require("@formily/react"),require("lodash"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("antd-style"),require("react-i18next")):e["@nocobase/plugin-acl"]=t(e["@formily/core"],e.ahooks,e["@formily/shared"],e["@nocobase/client"],e.react,e["@formily/react"],e.lodash,e["@nocobase/utils/client"],e["@ant-design/icons"],e.antd,e["antd-style"],e["react-i18next"])}(self,function(e,t,n,r,o,i,u,a,l,c,s,f){return function(){var p,d,h,b,y,m,v={360:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r=(0,n(156).createContext)({role:null});r.displayName="RolesManagerContext"},849:function(e,t,n){"use strict";n.r(t),n.d(t,{DesktopAllRoutesProvider:function(){return E},MenuPermissions:function(){return C}});var r=n(563),o=n(875),i=n(772),u=n(749),a=n(721),l=n(467),c=n(156),s=n.n(c),f=n(238),p=n(360);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 h(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}function b(e){return 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)})}}function y(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}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 k=function(e,t){return Array.isArray(e)?e.map(function(e){var n,r=k(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.id,parent:t}}):[]},O=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(O(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()),_=function(e,t,n){return e.map(function(e){var r,o=((null==(r=e.title)?void 0:r.match(/^\s*\{\{\s*.+?\s*\}\}\s*$/))?n(e.title):t(e.title))||t("Unnamed");return e.children?m(y({},e),{title:o,children:_(e.children,t,n)}):m(y({},e),{title:o})})},j=(0,c.createContext)({routeList:[]}),S=function(e){var t=e.children,n=e.refreshRef,r=(0,i.useAPIClient)(),o=(0,c.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,l=u.runAsync;n&&(n.current=l);var f=(0,c.useMemo)(function(){return(null==a?void 0:a.data)||[]},[a]),p=(0,c.useMemo)(function(){return{routeList:f}},[f]);return s().createElement(j.Provider,{value:p},t)},E=function(e){var t=e.children,n=e.active,r=s().useRef(function(){});return(0,c.useEffect)(function(){if(n){var e;null==(e=r.current)||e.call(r)}},[n]),s().createElement(S,{refreshRef:r},t)},C=function(e){var t,n,d,h,m=e.active,x=k((0,c.useContext)(j).routeList),S=(0,c.useContext)(p.T),E=S.role,C=S.setRole,R=(0,i.useAPIClient)(),T=(0,f.useTranslation)().t,q=O(x),A=(t=(0,c.useState)([]),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),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,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),M=A[0],I=A[1],D=(0,i.useRequest)({resource:"roles.desktopRoutes",resourceOf:E.name,action:"list",params:{paginate:!1,filter:{hidden:{$ne:!0}}}},{ready:!!E&&m,refreshDeps:[null==E?void 0:E.name],onSuccess:function(e){var t;I((null==e||null==(t=e.data)?void 0:t.map(function(e){return e.id}))||[])}}),F=D.loading,z=D.refresh,L=R.resource("roles.desktopRoutes",E.name),N=q.length===M.length,G=(0,i.useAllAccessDesktopRoutes)().refresh,U=(n=b(function(e,t){var n,r,o,i,u,c,s,f;return w(this,function(p){switch(p.label){case 0:if(!e)return[3,2];return n=M.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!O(t.children).includes(e)}),(o=r).push.apply(o,v(O(t.children)))),I(n),[4,L.remove({values:r})];case 1:return p.sent(),[3,4];case 2:return i=v(M).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=O(t.children),(c=i).push.apply(c,v(f)),(s=u).push.apply(s,v(f))),I((0,l.uniq)(i)),[4,L.add({values:u})];case 3:p.sent(),p.label=4;case 4:return G(),a.message.success(T("Saved successfully")),[2]}})}),function(e,t){return n.apply(this,arguments)}),B=(0,u.useMemoizedFn)((d=b(function(e){return w(this,function(t){switch(t.label){case 0:return[4,R.resource("roles").update({filterByTk:E.name,values:e.values})];case 1:return t.sent(),C(y({},E,e.values)),a.message.success(T("Saved successfully")),[2]}})}),function(e){return d.apply(this,arguments)})),$=(0,c.useMemo)(function(){return(0,r.createForm)({values:E,effects:function(){var e;(0,r.onFormValuesChange)((e=b(function(e){return w(this,function(t){switch(t.label){case 0:return[4,B(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[E,B]),K=(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:$},properties:{allowNewMenu:{title:T("Route permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":T("New routes are allowed to be accessed by default")}}}}),s().createElement(a.Table,{className:P,loading:F,rowKey:"id",pagination:!1,expandable:{defaultExpandAllRows:!1},columns:[{dataIndex:"title",title:T("Route name")},{dataIndex:"accessible",title:s().createElement(s().Fragment,null,s().createElement(a.Checkbox,{checked:N,onChange:(h=b(function(e){return w(this,function(e){switch(e.label){case 0:if(!N)return[3,2];return[4,L.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,L.set({values:q})];case 3:e.sent(),e.label=4;case 4:return z(),G(),a.message.success(T("Saved successfully")),[2]}})}),function(e){return h.apply(this,arguments)})})," ",T("Accessible")),render:function(e,t){var n=M.includes(t.id);return s().createElement(a.Checkbox,{checked:n,onChange:function(){return U(n,t)}})}}],dataSource:_(x,T,K)}))}},508:function(e,t,n){"use strict";n.r(t),n.d(t,{PluginACLClient:function(){return C},RolesManagerContext:function(){return g.T},default:function(){return R}});var r=n(772),o=n(156),i=n.n(o),u=n(849),a=n(581),l=(0,r.lazy)(function(){return a("imported_-1r1jup3_component",n.e("57").then(n.bind(n,559)))},"GeneralPermissions").GeneralPermissions,c=(0,r.lazy)(function(){return a("imported_1qalbop_component",Promise.resolve().then(n.bind(n,849)))},"MenuPermissions").MenuPermissions,s=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="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(c,{active:"menu"===t})))}}],e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{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=null==e?void 0:e.sort)?n:100)-(null!=(r=null==t?void 0:t.sort)?r:100)})}}],function(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)}}(t.prototype,e),t}(),f=n(584),p=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="rolesManager",n=new f.Registry,e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{key:"add",value:function(e,t){this.rolesManager.register(e,t)}},{key:"list",value:function(){return this.rolesManager.getEntities()}}],function(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)}}(t.prototype,e),t}(),d=n(238),h=n(721),b=n(467),y=n.n(b);function m(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}var v=function(){var e,t,n,o=(0,d.useTranslation)().t,u=(0,r.useAPIClient)(),a=y().cloneDeep((0,r.useCurrentRoles)()),l=(0,r.useCurrentRoleMode)(),c=null==(n=a.find(function(e){return e.name===u.auth.role}))?void 0:n.name;return("allow-use-union"===l&&a.unshift({name:"__union__",title:o("Full permissions",{ns:"acl"})}),a.length<=1||"only-use-union"===l)?null:i().createElement(r.SchemaSettingsItem,{eventKey:"SwitchRole",title:"SwitchRole"},i().createElement(r.SelectWithTitle,{title:o("Switch role"),fieldNames:{label:"title",value:"name"},options:a.reduce(function(e,t){return e.push(t),"__union__"===t.name&&e.push({name:"divider",title:i().createElement(h.Divider,{style:{margin:"2px 1px"}}),disabled:!0,style:{minHeight:0,height:"auto",padding:0}}),e},[]),defaultValue:c||a[0].name,onChange:(e=function(e){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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return u.auth.setRole(e),[4,u.resource("users").setDefaultRole({values:{roleName:e}})];case 1:return t.sent(),location.reload(),window.location.reload(),[2]}})},t=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)})},function(e){return t.apply(this,arguments)})}))},g=n(360),w=n(581);function x(e,t,n,r,o,i,u){try{var a=e[i](u),l=a.value}catch(e){n(e);return}a.done?t(l):Promise.resolve(l).then(r,o)}function k(e,t,n){return(k=S()?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,n.prototype),o}).apply(null,arguments)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e){var t="function"==typeof Map?new Map:void 0;return(j=function(e){if(null===e||-1===Function.toString.call(e).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,n)}function n(){return k(e,arguments,P(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_(n,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}var E=(0,r.lazy)(function(){return w("imported_-1obaqk_component",n.e("593").then(n.bind(n,968)))},"RolesManagement").RolesManagement,C=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=P(t),O(e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(t,r||[],P(this).constructor):t.apply(this,r)),"rolesManager",new p),O(e,"settingsUI",new s),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&_(n,e),t=[{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){var l=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return u.label++,{value:l[1],done:!1};case 5:u.label++,r=l[1],l=[0];continue;case 7:l=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){u=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){u.label=l[1];break}if(6===l[0]&&u.label<o[1]){u.label=o[1],o=l;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(l);break}o[2]&&u.ops.pop(),u.trys.pop();continue}l=t.call(e,u)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:E,aclSnippet:"pm.acl.roles",sort:3}),t.app.addUserCenterSettingsItem({name:"divider_switchRole",type:"divider",sort:200}),t.app.addUserCenterSettingsItem({name:"switchRole",Component:v,sort:300}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){x(i,r,o,u,a,"next",e)}function a(e){x(i,r,o,u,a,"throw",e)}u(void 0)})})()}}],function(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)}}(n.prototype,t),n}(j(r.Plugin)),R=C},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=l},563:function(t){"use strict";t.exports=e},505:function(e){"use strict";e.exports=i},875:function(e){"use strict";e.exports=n},772:function(e){"use strict";e.exports=r},584:function(e){"use strict";e.exports=a},749:function(e){"use strict";e.exports=t},721:function(e){"use strict";e.exports=c},202:function(e){"use strict";e.exports=s},467:function(e){"use strict";e.exports=u},156:function(e){"use strict";e.exports=o},238:function(e){"use strict";e.exports=f}},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""+({57:"b7d762c805b5e436",593:"5d924196f602fd3d"})[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])return void p[e].push(t);if(void 0!==n)for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var l=u[a];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+n){o=l;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 c=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(c.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=c.bind(null,o.onerror),o.onload=c.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})},(h=window.__nocobase_public_path__||"/").endsWith("/")||(h+="/"),w.p=h+"static/plugins/@nocobase/plugin-acl/dist/client/",b={909:0},w.f.j=function(e,t){var n=w.o(b,e)?b[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=b[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(b,e)&&(0!==(n=b[e])&&(b[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)}},y=function(e,t){var n,r,o=t[0],i=t[1],u=t[2],a=0;if(o.some(function(e){return 0!==b[e]})){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);u&&u(w)}for(e&&e(t);a<o.length;a++)r=o[a],w.o(b,r)&&b[r]&&b[r][0](),b[r]=0},(m=self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).forEach(y.bind(null,0)),m.push=y.bind(null,m.push.bind(m)),w(508)}()});
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "1.9.0-beta.1",
11
+ "@nocobase/client": "1.9.0-beta.11",
12
12
  "antd": "5.24.2",
13
13
  "react": "18.2.0",
14
14
  "react-i18next": "11.18.6",
@@ -17,14 +17,14 @@ module.exports = {
17
17
  "@formily/react": "2.3.0",
18
18
  "@ant-design/icons": "5.6.1",
19
19
  "lodash": "4.17.21",
20
- "@nocobase/utils": "1.9.0-beta.1",
21
- "@nocobase/actions": "1.9.0-beta.1",
22
- "@nocobase/cache": "1.9.0-beta.1",
23
- "@nocobase/database": "1.9.0-beta.1",
24
- "@nocobase/server": "1.9.0-beta.1",
25
- "@nocobase/test": "1.9.0-beta.1",
20
+ "@nocobase/utils": "1.9.0-beta.11",
21
+ "@nocobase/actions": "1.9.0-beta.11",
22
+ "@nocobase/cache": "1.9.0-beta.11",
23
+ "@nocobase/database": "1.9.0-beta.11",
24
+ "@nocobase/server": "1.9.0-beta.11",
25
+ "@nocobase/test": "1.9.0-beta.11",
26
26
  "@formily/core": "2.3.0",
27
27
  "@formily/antd-v5": "1.2.3",
28
28
  "antd-style": "3.7.1",
29
- "@nocobase/acl": "1.9.0-beta.1"
29
+ "@nocobase/acl": "1.9.0-beta.11"
30
30
  };
@@ -39,13 +39,16 @@ __export(with_acl_meta_exports, {
39
39
  createWithACLMetaMiddleware: () => createWithACLMetaMiddleware
40
40
  });
41
41
  module.exports = __toCommonJS(with_acl_meta_exports);
42
- var import_lodash = __toESM(require("lodash"));
43
- var import_database = require("@nocobase/database");
44
42
  var import_acl = require("@nocobase/acl");
43
+ var import_database = require("@nocobase/database");
44
+ var import_lodash = __toESM(require("lodash"));
45
45
  function createWithACLMetaMiddleware() {
46
46
  return async (ctx, next) => {
47
47
  var _a, _b, _c, _d;
48
48
  await next();
49
+ if (process.env.DISABLE_ACL_META === "true" || process.env.DISABLE_ACL_META === "1") {
50
+ return;
51
+ }
49
52
  const dataSourceKey = ctx.get("x-data-source");
50
53
  const dataSource = ctx.app.dataSourceManager.dataSources.get(dataSourceKey);
51
54
  const db = dataSource ? dataSource.collectionManager.db : ctx.db;
@@ -164,6 +167,9 @@ function createWithACLMetaMiddleware() {
164
167
  ...params,
165
168
  context: actionCtx
166
169
  });
170
+ const include = (0, import_database.filterIncludes)(queryParams.where, queryParams.include || [], {
171
+ underscored: db.options.underscored
172
+ });
167
173
  const actionSql = ctx.db.sequelize.queryInterface.queryGenerator.selectQuery(
168
174
  Model.getTableName(),
169
175
  {
@@ -221,17 +227,18 @@ function createWithACLMetaMiddleware() {
221
227
  conditions.push({
222
228
  whereCase: "1=1",
223
229
  action,
224
- include: queryParams.include
230
+ include: []
225
231
  });
226
232
  } else {
227
233
  const whereCase = actionSql.match(/WHERE (.*?);/)[1];
228
234
  conditions.push({
229
235
  whereCase,
230
236
  action,
231
- include: queryParams.include
237
+ include
232
238
  });
233
239
  }
234
240
  }
241
+ const finalIncludes = (0, import_database.mergeIncludes)(conditions.map((condition) => condition.include || []).flat());
235
242
  const results = await collection.model.findAll({
236
243
  where: {
237
244
  [primaryKeyField]: ids
@@ -242,7 +249,7 @@ function createWithACLMetaMiddleware() {
242
249
  return [ctx.db.sequelize.literal(`CASE WHEN ${condition.whereCase} THEN 1 ELSE 0 END`), condition.action];
243
250
  })
244
251
  ],
245
- include: conditions.map((condition) => condition.include).flat(),
252
+ include: finalIncludes,
246
253
  raw: true
247
254
  });
248
255
  const allowedActions = inspectActions.map((action) => {
@@ -344,6 +344,7 @@ class PluginACLServer extends import_server.Plugin {
344
344
  return;
345
345
  }
346
346
  const User = this.db.getCollection("users");
347
+ const user = await User.repository.findOne();
347
348
  await User.repository.update({
348
349
  values: {
349
350
  roles: ["root", "admin", "member"]
@@ -353,7 +354,7 @@ class PluginACLServer extends import_server.Plugin {
353
354
  const RolesUsers = this.db.getCollection("rolesUsers");
354
355
  await RolesUsers.repository.update({
355
356
  filter: {
356
- userId: 1,
357
+ userId: user.id,
357
358
  roleName: "root"
358
359
  },
359
360
  values: {
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.9.0-beta.1",
7
+ "version": "1.9.0-beta.11",
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": "e0597219574e23bbf15b57848cb9b0fb4953634f"
36
+ "gitHead": "373bc3f829a928bb3cd3dad327dedf3afe2ab407"
37
37
  }