@nocobase/plugin-acl 1.9.0-beta.8 → 2.0.0-alpha.10
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.
- package/dist/client/0655d5ded9f45bb1.js +10 -0
- package/dist/client/50204a14518b3a0d.js +10 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +11 -11
- package/dist/server/server.js +2 -1
- package/package.json +10 -10
- package/dist/client/5d924196f602fd3d.js +0 -10
- package/dist/client/b7d762c805b5e436.js +0 -10
|
@@ -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([["646"],{176:function(e,t,n){n.r(t),n.d(t,{RolesManagement:function(){return $}});var r=n(505),o=n(772),l=n(721),a=n(156),i=n.n(a),c=n(77),u=n(990),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(400),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 O(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 E(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)||S(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)||S(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 S(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 x(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=E((0,a.useState)(!1),2),s=c[0],f=c[1],p=E((0,a.useState)(null),2),y=p[0],d=p[1],v=(0,a.useContext)(m.T),g=v.role,w=v.setRole,S=E((0,a.useState)([]),2),P=S[0],C=S[1],I=E((0,a.useState)(!1),2),R=I[0],k=I[1],D=(0,o.useAPIClient)(),T=h({loadMore:(0,a.useCallback)(O(function(){var e,t;return x(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:O(function(){return x(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",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":d()}}}},i().createElement(p.MoreOutlined,null))))};var P=n(898);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)(),O=(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(O)},[O,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"}}]},$=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.")}())}))))))}},990: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"})}}}]);
|
|
@@ -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([["86"],{229: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),m=t(238),d=t(990),y=t(400),b=t(438);function v(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 v(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 v(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){var u=[a,i];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,r=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=n.call(e,l)}catch(e){u=[6,e],r=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}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=e.active,t=(0,l.useApp)(),r=(0,b.y)().styles,o=(0,f.useContext)(y.T).role,a=(0,l.useAPIClient)(),i=(0,l.useCompile)(),d=t.pluginSettingsManager.getList(!1),h=t.pluginSettingsManager.getAclSnippets(),O=(M=(0,f.useState)((null==o?void 0:o.snippets)||[]),function(e){if(Array.isArray(e))return e}(M)||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),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}}(M,2)||w(M,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.")}()),A=O[0],k=O[1],C=(0,f.useMemo)(function(){return(0,c.flatMap)(d,function(e){var n;return e.children?[e].concat(function(e){if(Array.isArray(e))return v(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.")}()):e})},[d]),E=(0,f.useMemo)(function(){return A.includes("pm.*")&&A.every(function(e){return!e.startsWith("!pm.")})},[A]),j=(0,m.useTranslation)().t,P=(0,l.useRequest)({resource:"roles.snippets",resourceOf:null==o?void 0:o.name,action:"list",params:{paginate:!1}},{ready:!!o&&n,refreshDeps:[null==o?void 0:o.name],manual:!0,onSuccess:function(e){k((null==e?void 0:e.data.filter(function(e){return C.find(function(n){return e.includes("!".concat(n.aclSnippet))||!e.startsWith("!pm.")})}))||[])}}),T=P.loading,I=P.refresh;if(o){var M,F,D=a.resource("roles.snippets",null==o?void 0:o.name),_=(F=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,D.remove({values:t.map(function(e){return"!"+e})})];case 1:return r.sent(),I(),[3,4];case 2:return[4,D.add({values:t.map(function(e){return"!"+e})})];case 3:r.sent(),I(),r.label=4;case 4:return u.message.success(j("Saved successfully")),[2]}})}),function(e,n){return F.apply(this,arguments)});return p().createElement(u.Table,{className:r,loading:T,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:j("Plugin name"),render:function(e){return i(e)}},{dataIndex:"accessible",title:p().createElement(p().Fragment,null,p().createElement(u.Checkbox,{checked:E,onChange:g(function(){var e;return S(this,function(n){switch(n.label){case 0:if(e=h.map(function(e){return"!"+e}),E)return[3,2];return[4,D.remove({values:e})];case 1:return n.sent(),[3,4];case 2:return[4,D.add({values:e})];case 3:n.sent(),n.label=4;case 4:return I(),u.message.success(j("Saved successfully")),[2]}})})}),j("Accessible")),render:function(e,n){var t=!A.includes("!"+n.aclSnippet);return p().createElement(u.Checkbox,{checked:t,onChange:function(){return _(t,n)}})}}],dataSource:d.filter(function(e){return!1!==e.isTopLevel}).map(function(e){return!1!==e.showTabs?e:s().omit(e,"children")})})}},A=t(898);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)||n.call(e,function(e){var n,r=(n=e.split(":"),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),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,2);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,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],a=r[1];t[o]=a||"all"}),t},E=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},j=(0,o.connect)(function(e){var n=e.onChange,t=(0,A.r)(),r=(0,l.useCompile)(),a=(0,m.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(E(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(E(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;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e),t=t={enabled:o,scope:r},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,void 0);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){var u=[a,i];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,r=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=n.call(e,l)}catch(e){u=[6,e],r=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var D=(0,o.connect)(function(e){var n=(0,m.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,d.g)().t,m=(0,l.useAPIClient)(),b=null==o||null==(n=o.snippets)?void 0:n.includes("pm.*"),v=(0,i.useMemoizedFn)((e=I(function(e){return F(this,function(n){switch(n.label){case 0:return[4,m.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;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}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,v(e)];case 1:return n.sent(),[2]}})}),function(n){return e.apply(this,arguments)}))}})},[o,v]);return p().createElement(l.SchemaComponent,{components:{SnippetCheckboxGroup:D,StrategyActions:j,PluginPermissions:O},scope:{pm:b},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}}"}}}}}})}},990: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"})}}}]);
|
package/dist/client/index.d.ts
CHANGED
|
@@ -14,5 +14,6 @@ export declare class PluginACLClient extends Plugin {
|
|
|
14
14
|
settingsUI: ACLSettingsUI;
|
|
15
15
|
load(): Promise<void>;
|
|
16
16
|
}
|
|
17
|
+
export { RoleResourceCollectionContext } from './permissions/RolesResourcesActions';
|
|
17
18
|
export { RolesManagerContext } from './RolesManagerProvider';
|
|
18
19
|
export default PluginACLClient;
|
package/dist/client/index.js
CHANGED
|
@@ -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:"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)}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@formily/core"),require("@formily/antd-v5"),require("react"),require("lodash"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("@formily/react"),require("@ant-design/icons"),require("@nocobase/utils/client"),require("antd-style"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["@formily/core","@formily/antd-v5","react","lodash","ahooks","@formily/shared","@nocobase/client","@formily/react","@ant-design/icons","@nocobase/utils/client","antd-style","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("@formily/core"),require("@formily/antd-v5"),require("react"),require("lodash"),require("ahooks"),require("@formily/shared"),require("@nocobase/client"),require("@formily/react"),require("@ant-design/icons"),require("@nocobase/utils/client"),require("antd-style"),require("antd"),require("react-i18next")):e["@nocobase/plugin-acl"]=t(e["@formily/core"],e["@formily/antd-v5"],e.react,e.lodash,e.ahooks,e["@formily/shared"],e["@nocobase/client"],e["@formily/react"],e["@ant-design/icons"],e["@nocobase/utils/client"],e["antd-style"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,i,a,c,u,l,s,p,f){return function(){var d,m,y,b,v,h,g={400:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r=(0,n(156).createContext)({role:null});r.displayName="RolesManagerContext"},898:function(e,t,n){"use strict";n.d(t,{U:function(){return u},r:function(){return l}});var r=n(772),o=n(721),i=n(156),a=n.n(i),c=(0,i.createContext)([]);c.displayName="AvailableActionsContext";var u=function(e){var t=(0,r.useRequest)({resource:"availableActions",action:"list"}),n=t.data;return t.loading?a().createElement(o.Spin,null):a().createElement(c.Provider,{value:null==n?void 0:n.data},e.children)},l=function(){return(0,i.useContext)(c)}},720:function(e,t,n){"use strict";n.r(t),n.d(t,{DesktopAllRoutesProvider:function(){return A},MenuPermissions:function(){return E}});var r=n(563),o=n(875),i=n(772),a=n(749),c=n(721),u=n(467),l=n(156),s=n.n(l),p=n(238),f=n(400);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 m(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).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 a(e){m(i,r,o,a,c,"next",e)}function c(e){m(i,r,o,a,c,"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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function v(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 h(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 x(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function w(){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 w=function(){return n},n}var S=function(e,t){return Array.isArray(e)?e.map(function(e){var n,r=S(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,a=e[Symbol.iterator]();!(n=(i=a.next()).done);n=!0){var c=i.value;t.push(c.id),t.push.apply(t,h(O(c.children)))}}catch(e){r=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw o}}return t},C=(0,i.css)(w()),P=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?v(b({},e),{title:o,children:P(e.children,t,n)}):v(b({},e),{title:o})})},k=(0,l.createContext)({routeList:[]}),j=function(e){var t=e.children,n=e.refreshRef,r=(0,i.useAPIClient)(),o=(0,l.useMemo)(function(){return r.resource("desktopRoutes")},[r]),a=(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}),c=a.data,u=a.runAsync;n&&(n.current=u);var p=(0,l.useMemo)(function(){return(null==c?void 0:c.data)||[]},[c]),f=(0,l.useMemo)(function(){return{routeList:p}},[p]);return s().createElement(k.Provider,{value:f},t)},A=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)||e.call(r)}},[n]),s().createElement(j,{refreshRef:r},t)},E=function(e){var t,n,d,m,v=e.active,w=S((0,l.useContext)(k).routeList),j=(0,l.useContext)(f.T),A=j.role,E=j.setRole,R=(0,i.useAPIClient)(),T=(0,p.useTranslation)().t,_=O(w),F=(t=(0,l.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=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==t);a=!0);}catch(e){c=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(c)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.")}()),I=F[0],q=F[1],M=(0,i.useRequest)({resource:"roles.desktopRoutes",resourceOf:A.name,action:"list",params:{paginate:!1,filter:{hidden:{$ne:!0}}}},{ready:!!A&&v,refreshDeps:[null==A?void 0:A.name],onSuccess:function(e){var t;q((null==e||null==(t=e.data)?void 0:t.map(function(e){return e.id}))||[])}}),N=M.loading,D=M.refresh,B=R.resource("roles.desktopRoutes",A.name),z=_.length===I.length,L=(0,i.useAllAccessDesktopRoutes)().refresh,V=(n=y(function(e,t){var n,r,o,i,a,l,s,p;return x(this,function(f){switch(f.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!O(t.children).includes(e)}),(o=r).push.apply(o,h(O(t.children)))),q(n),[4,B.remove({values:r})];case 1:return f.sent(),[3,4];case 2:return i=h(I).concat([t.id]),a=[t.id],t.parent&&!i.includes(t.parent.id)&&(i.push(t.parent.id),a.push(t.parent.id)),t.children&&(p=O(t.children),(l=i).push.apply(l,h(p)),(s=a).push.apply(s,h(p))),q((0,u.uniq)(i)),[4,B.add({values:a})];case 3:f.sent(),f.label=4;case 4:return L(),c.message.success(T("Saved successfully")),[2]}})}),function(e,t){return n.apply(this,arguments)}),U=(0,a.useMemoizedFn)((d=y(function(e){return x(this,function(t){switch(t.label){case 0:return[4,R.resource("roles").update({filterByTk:A.name,values:e.values})];case 1:return t.sent(),E(b({},A,e.values)),c.message.success(T("Saved successfully")),[2]}})}),function(e){return d.apply(this,arguments)})),K=(0,l.useMemo)(function(){return(0,r.createForm)({values:A,effects:function(){var e;(0,r.onFormValuesChange)((e=y(function(e){return x(this,function(t){switch(t.label){case 0:return[4,U(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[A,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:T("Route permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":T("New routes are allowed to be accessed by default")}}}}),s().createElement(c.Table,{className:C,loading:N,rowKey:"id",pagination:!1,expandable:{defaultExpandAllRows:!1},columns:[{dataIndex:"title",title:T("Route name")},{dataIndex:"accessible",title:s().createElement(s().Fragment,null,s().createElement(c.Checkbox,{checked:z,onChange:(m=y(function(e){return x(this,function(e){switch(e.label){case 0:if(!z)return[3,2];return[4,B.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,B.set({values:_})];case 3:e.sent(),e.label=4;case 4:return D(),L(),c.message.success(T("Saved successfully")),[2]}})}),function(e){return m.apply(this,arguments)})})," ",T("Accessible")),render:function(e,t){var n=I.includes(t.id);return s().createElement(c.Checkbox,{checked:n,onChange:function(){return V(n,t)}})}}],dataSource:P(w,T,$)}))}},77:function(e,t,n){"use strict";n.r(t),n.d(t,{PluginACLClient:function(){return $},RolesManagerContext:function(){return q.T},default:function(){return G},RoleResourceCollectionContext:function(){return I}});var r=n(772),o=n(156),i=n.n(o),a=n(720),c=n(581),u=(0,r.lazy)(function(){return c("imported_-1r1jup3_component",n.e("86").then(n.bind(n,229)))},"GeneralPermissions").GeneralPermissions,l=(0,r.lazy)(function(){return c("imported_1qalbop_component",Promise.resolve().then(n.bind(n,720)))},"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(u,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(a.DesktopAllRoutesProvider,{active:"menu"===t},i().createElement(l,{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}(),p=n(584),f=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 p.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),m=n(721),y=n(467),b=n.n(y);function v(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}var h=function(){var e,t,n,o=(0,d.useTranslation)().t,a=(0,r.useAPIClient)(),c=b().cloneDeep((0,r.useCurrentRoles)()),u=(0,r.useCurrentRoleMode)(),l=null==(n=c.find(function(e){return e.name===a.auth.role}))?void 0:n.name;return("allow-use-union"===u&&c.unshift({name:"__union__",title:o("Full permissions",{ns:"acl"})}),c.length<=1||"only-use-union"===u)?null:i().createElement(r.SchemaSettingsItem,{eventKey:"SwitchRole",title:"SwitchRole"},i().createElement(r.SelectWithTitle,{title:o("Switch role"),fieldNames:{label:"title",value:"name"},options:c.reduce(function(e,t){return e.push(t),"__union__"===t.name&&e.push({name:"divider",title:i().createElement(m.Divider,{style:{margin:"2px 1px"}}),disabled:!0,style:{minHeight:0,height:"auto",padding:0}}),e},[]),defaultValue:l||c[0].name,onChange:(e=function(e){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return a.auth.setRole(e),[4,a.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 a(e){v(i,r,o,a,c,"next",e)}function c(e){v(i,r,o,a,c,"throw",e)}a(void 0)})},function(e){return t.apply(this,arguments)})}))},g=n(632),x=n(505),w=n(898),S=n(563),O={name:"rolesResourcesScopes",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]},C={type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:O,resource:"rolesResourcesScopes",action:"list",params:{pageSize:20},useParams:function(){return{filter:{$or:[{resourceName:(0,o.useContext)(I).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:O},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":function(){var e=(0,o.useContext)(I).name,t=(0,r.useFormBlockContext)();return(0,o.useEffect)(function(){t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":function(){var e=(0,o.useContext)(I);return{options:(0,r.useFilterOptions)(e.name)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:O,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":function(){var e=(0,o.useContext)(I);return{options:(0,r.useFilterOptions)(e.name)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{update:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}};function P(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 k=(0,o.createContext)(null);k.displayName="RolesResourcesScopesSelectedRowKeysContext";var j=function(e){var t,n=(t=(0,o.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=[],a=!0,c=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==t);a=!0);}catch(e){c=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(c)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return P(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 P(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.")}()),r=n[0],a=n[1];return i().createElement(k.Provider,{value:[r,a]},e.children)},A=function(e){var t=(0,o.useMemo)(function(){return(0,S.createForm)({values:{scope:e.value}})},[]);return i().createElement(r.FormProvider,{form:t},i().createElement(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:j},scope:{onChange:function(t){var n;null==e||null==(n=e.onChange)||n.call(e,t)}},schema:C}))},E=n(438);function R(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 T(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 _(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}var F=function(e){var t,n={};return null==e||null==(t=e.forEach)||t.call(e,function(e){e.name&&(n[e.name]=e,n[e.name].scope=(0,y.isEmpty)(e.scope)?null:e.scope)}),n},I=(0,o.createContext)({});I.displayName="RoleResourceCollectionContext",(0,x.connect)(function(e){var t,n=(0,E.y)().styles,o=function(t){var n=t.map(function(e){return _(T({},e),{scope:(0,y.isEmpty)(e.scope)?null:e.scope})});e.onChange(n)};(0,x.useForm)();var a=(0,r.useRecord)(),c=(0,w.r)(),u=(0,r.useCollectionManager_deprecated)(),l=u.getCollection,s=u.getCollectionFields,p=l(a.collectionName),f=s(a.collectionName),b=(0,r.useCompile)(),v=(0,d.useTranslation)().t,h=F((0,x.useField)().value||[]),S=function(e,t){var n,r=null==h?void 0:h[e];return!!r&&(null==r||null==(n=r.fields)?void 0:n.includes(t))},O=c.filter(function(e){return e.allowConfigureFields}),C=null==f||null==(D=f.filter(function(e){return e.interface}))?void 0:D.map(function(e){var t=T({},e),n=!0,r=!1,o=void 0;try{for(var i,a=O[Symbol.iterator]();!(n=(i=a.next()).done);n=!0){var c=i.value;t[c.name]=S(c.name,e.name)}}catch(e){r=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw o}}return t}),P=function(e){if(h[e])delete h[e];else{var t,n;h[e]={name:e,fields:null==f||null==(n=f.filter(function(e){return e.interface}))||null==(t=n.map)?void 0:t.call(n,function(e){return e.name})}}o(Object.values(h))},k=function(e,t){h[e]?(h[e].scope=t,o(Object.values(h))):(P(e),h[e].scope=t)},j={},q=!0,M=!1,N=void 0;try{for(var D,B,z=O[Symbol.iterator]();!(q=(B=z.next()).done);q=!0){var L,V,U,K=B.value;j[K.name]=(null==f||null==(L=f.filter(function(e){return e.interface}))?void 0:L.length)===(null==h||null==(U=h[K.name])||null==(V=U.fields)?void 0:V.length)}}catch(e){M=!0,N=e}finally{try{q||null==z.return||z.return()}finally{if(M)throw N}}return i().createElement("div",null,i().createElement(I.Provider,{value:p},i().createElement(g.FormLayout,{layout:"vertical"},i().createElement(g.FormItem,{label:v("Action permission")},i().createElement(m.Table,{className:n,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:v("Action display name"),render:function(e){return b(e)}},{dataIndex:"onNewRecord",title:v("Action type"),render:function(e){return e?i().createElement(m.Tag,{color:"green"},v("Action on new records")):i().createElement(m.Tag,{color:"geekblue"},v("Action on existing records"))}},{dataIndex:"enabled",title:v("Allow"),render:function(e,t){return i().createElement(m.Checkbox,{checked:e,onChange:function(){P(t.name)}})}},{dataIndex:"scope",title:v("Data scope"),render:function(e,t){return!t.onNewRecord&&i().createElement(A,{value:e,onChange:function(e){k(t.name,e)}})}}],dataSource:null==c?void 0:c.map(function(e){var t=!1,n=null;return h[e.name]&&(t=!0,e.onNewRecord||(n=h[e.name].scope)),_(T({},e),{enabled:t,scope:n})})})),i().createElement(g.FormItem,{label:v("Field permission")},i().createElement(m.Table,{className:n,pagination:!1,dataSource:C,columns:[{dataIndex:["uiSchema","title"],title:v("Field display name"),render:function(e){return b(e)}}].concat(function(e){if(Array.isArray(e))return R(e)}(t=O.map(function(e){var t=null==j?void 0:j[e.name];return{dataIndex:e.name,title:i().createElement(i().Fragment,null,i().createElement(m.Checkbox,{checked:t,onChange:function(){var n,r=h[e.name]||{name:e.name};t?r.fields=[]:r.fields=null==f||null==(n=f.map)?void 0:n.call(f,function(e){return e.name}),h[e.name]=r,o(Object.values(h))}})," ",b(e.displayName)),render:function(t,n){return i().createElement(m.Checkbox,{checked:t,"aria-label":"".concat(e.name,"_checkbox"),onChange:function(){var r=h[e.name]||{name:e.name},i=r.fields||[];if(t){var a=i.indexOf(n.name);i.splice(a,1)}else i.push(n.name);r.fields=i,h[e.name]=r,o(Object.values(h))}})}}}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return R(e,void 0);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 R(e,t)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})))))});var q=n(400),M=n(581);function N(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function D(e,t,n){return(D=U()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&L(o,n.prototype),o}).apply(null,arguments)}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e,t){return(L=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(e){var t="function"==typeof Map?new Map:void 0;return(V=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 D(e,arguments,z(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),L(n,e)})(e)}function U(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(U=function(){return!!e})()}var K=(0,r.lazy)(function(){return M("imported_-1obaqk_component",n.e("646").then(n.bind(n,176)))},"RolesManagement").RolesManagement,$=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=z(t),B(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,U()?Reflect.construct(t,r||[],z(this).constructor):t.apply(this,r)),"rolesManager",new f),B(e,"settingsUI",new s),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&L(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:K,aclSnippet:"pm.acl.roles",sort:3}),t.app.addUserCenterSettingsItem({name:"divider_switchRole",type:"divider",sort:200}),t.app.addUserCenterSettingsItem({name:"switchRole",Component:h,sort:300}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){N(i,r,o,a,c,"next",e)}function c(e){N(i,r,o,a,c,"throw",e)}a(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}(V(r.Plugin)),G=$},438:function(e,t,n){"use strict";function r(){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 r=function(){return n},n}n.d(t,{y:function(){return o}});var o=(0,n(202).createStyles)(function(e){return(0,e.css)(r())})},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=u},632:function(e){"use strict";e.exports=t},563:function(t){"use strict";t.exports=e},505:function(e){"use strict";e.exports=c},875:function(e){"use strict";e.exports=i},772:function(e){"use strict";e.exports=a},584:function(e){"use strict";e.exports=l},749:function(e){"use strict";e.exports=o},721:function(e){"use strict";e.exports=p},202:function(e){"use strict";e.exports=s},467:function(e){"use strict";e.exports=r},156:function(e){"use strict";e.exports=n},238:function(e){"use strict";e.exports=f}},x={};function w(e){var t=x[e];if(void 0!==t)return t.exports;var n=x[e]={exports:{}};return g[e](n,n.exports,w),n.exports}return w.m=g,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""+({646:"0655d5ded9f45bb1",86:"50204a14518b3a0d"})[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)},d={},m="@nocobase/plugin-acl:",w.l=function(e,t,n,r){if(d[e])return void d[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var u=a[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==m+n){o=u;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",m+n),o.src=e),d[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=d[e];if(delete d[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})},(y=window.__nocobase_public_path__||"/").endsWith("/")||(y+="/"),w.p=y+"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)}},v=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],c=0;if(o.some(function(e){return 0!==b[e]})){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);a&&a(w)}for(e&&e(t);c<o.length;c++)r=o[c],w.o(b,r)&&b[r]&&b[r][0](),b[r]=0},(h=self.webpackChunk_nocobase_plugin_acl=self.webpackChunk_nocobase_plugin_acl||[]).forEach(v.bind(null,0)),h.push=v.bind(null,h.push.bind(h)),w(77)}()});
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,23 +8,23 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "
|
|
11
|
+
"@nocobase/client": "2.0.0-alpha.10",
|
|
12
12
|
"antd": "5.24.2",
|
|
13
13
|
"react": "18.2.0",
|
|
14
14
|
"react-i18next": "11.18.6",
|
|
15
|
-
"@formily/shared": "2.3.
|
|
15
|
+
"@formily/shared": "2.3.7",
|
|
16
16
|
"ahooks": "3.7.8",
|
|
17
|
-
"@formily/react": "2.3.
|
|
17
|
+
"@formily/react": "2.3.7",
|
|
18
18
|
"@ant-design/icons": "5.6.1",
|
|
19
19
|
"lodash": "4.17.21",
|
|
20
|
-
"@nocobase/utils": "
|
|
21
|
-
"@nocobase/actions": "
|
|
22
|
-
"@nocobase/cache": "
|
|
23
|
-
"@nocobase/database": "
|
|
24
|
-
"@nocobase/server": "
|
|
25
|
-
"@nocobase/test": "
|
|
26
|
-
"@formily/core": "2.3.
|
|
20
|
+
"@nocobase/utils": "2.0.0-alpha.10",
|
|
21
|
+
"@nocobase/actions": "2.0.0-alpha.10",
|
|
22
|
+
"@nocobase/cache": "2.0.0-alpha.10",
|
|
23
|
+
"@nocobase/database": "2.0.0-alpha.10",
|
|
24
|
+
"@nocobase/server": "2.0.0-alpha.10",
|
|
25
|
+
"@nocobase/test": "2.0.0-alpha.10",
|
|
26
|
+
"@formily/core": "2.3.7",
|
|
27
27
|
"@formily/antd-v5": "1.2.3",
|
|
28
28
|
"antd-style": "3.7.1",
|
|
29
|
-
"@nocobase/acl": "
|
|
29
|
+
"@nocobase/acl": "2.0.0-alpha.10"
|
|
30
30
|
};
|
package/dist/server/server.js
CHANGED
|
@@ -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:
|
|
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": "
|
|
7
|
+
"version": "2.0.0-alpha.10",
|
|
8
8
|
"license": "AGPL-3.0",
|
|
9
9
|
"main": "./dist/server/index.js",
|
|
10
10
|
"homepage": "https://docs.nocobase.com/handbook/acl",
|
|
@@ -19,19 +19,19 @@
|
|
|
19
19
|
"react-dom": "^18.2.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@nocobase/acl": "
|
|
23
|
-
"@nocobase/actions": "
|
|
24
|
-
"@nocobase/cache": "
|
|
25
|
-
"@nocobase/client": "
|
|
26
|
-
"@nocobase/database": "
|
|
27
|
-
"@nocobase/server": "
|
|
28
|
-
"@nocobase/test": "
|
|
29
|
-
"@nocobase/utils": "
|
|
22
|
+
"@nocobase/acl": "2.x",
|
|
23
|
+
"@nocobase/actions": "2.x",
|
|
24
|
+
"@nocobase/cache": "2.x",
|
|
25
|
+
"@nocobase/client": "2.x",
|
|
26
|
+
"@nocobase/database": "2.x",
|
|
27
|
+
"@nocobase/server": "2.x",
|
|
28
|
+
"@nocobase/test": "2.x",
|
|
29
|
+
"@nocobase/utils": "2.x"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|
|
33
33
|
"url": "git+https://github.com/nocobase/nocobase.git",
|
|
34
34
|
"directory": "packages/plugins/acl"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "6422cfb6fa6c8450de2efa3294fd29a28b228990"
|
|
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([["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"})}}}]);
|
|
@@ -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([["57"],{174: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)}},559:function(e,n,t){t.r(n),t.d(n,{GeneralPermissions:function(){return z}});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(546),y=t(360);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 v=(0,t(202).createStyles)(function(e){return(0,e.css)(b())});function h(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 g(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 w(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){g(a,r,o,l,i,"next",e)}function i(e){g(a,r,o,l,i,"throw",e)}l(void 0)})}}function S(e,n){if(e){if("string"==typeof e)return h(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 h(e,n)}}function x(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){var u=[a,i];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,r=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=n.call(e,l)}catch(e){u=[6,e],r=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var O=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&&O(i.children,n)}}catch(e){r=!0,o=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw o}}return n},A=function(e){var n=e.active,t=(0,l.useApp)(),r=v().styles,o=(0,f.useContext)(y.T).role,a=(0,l.useAPIClient)(),i=(0,l.useCompile)(),m=t.pluginSettingsManager.getList(!1),b=t.pluginSettingsManager.getAclSnippets(),g=(M=(0,f.useState)((null==o?void 0:o.snippets)||[]),function(e){if(Array.isArray(e))return e}(M)||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),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}}(M,2)||S(M,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.")}()),A=g[0],k=g[1],C=(0,f.useMemo)(function(){return(0,c.flatMap)(m,function(e){var n;return e.children?[e].concat(function(e){if(Array.isArray(e))return h(e)}(n=e.children)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||S(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.")}()):e})},[m]),j=(0,f.useMemo)(function(){return A.includes("pm.*")&&A.every(function(e){return!e.startsWith("!pm.")})},[A]),E=(0,d.useTranslation)().t,P=(0,l.useRequest)({resource:"roles.snippets",resourceOf:null==o?void 0:o.name,action:"list",params:{paginate:!1}},{ready:!!o&&n,refreshDeps:[null==o?void 0:o.name],manual:!0,onSuccess:function(e){k((null==e?void 0:e.data.filter(function(e){return C.find(function(n){return e.includes("!".concat(n.aclSnippet))||!e.startsWith("!pm.")})}))||[])}}),T=P.loading,I=P.refresh;if(o){var M,F,D=a.resource("roles.snippets",null==o?void 0:o.name),_=(F=w(function(e,n){var t;return x(this,function(r){switch(r.label){case 0:if(t=O(null==n?void 0:n.children,[]).concat(n.aclSnippet),e)return[3,2];return[4,D.remove({values:t.map(function(e){return"!"+e})})];case 1:return r.sent(),I(),[3,4];case 2:return[4,D.add({values:t.map(function(e){return"!"+e})})];case 3:r.sent(),I(),r.label=4;case 4:return u.message.success(E("Saved successfully")),[2]}})}),function(e,n){return F.apply(this,arguments)});return p().createElement(u.Table,{className:r,loading:T,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:E("Plugin name"),render:function(e){return i(e)}},{dataIndex:"accessible",title:p().createElement(p().Fragment,null,p().createElement(u.Checkbox,{checked:j,onChange:w(function(){var e;return x(this,function(n){switch(n.label){case 0:if(e=b.map(function(e){return"!"+e}),j)return[3,2];return[4,D.remove({values:e})];case 1:return n.sent(),[3,4];case 2:return[4,D.add({values:e})];case 3:n.sent(),n.label=4;case 4:return I(),u.message.success(E("Saved successfully")),[2]}})})}),E("Accessible")),render:function(e,n){var t=!A.includes("!"+n.aclSnippet);return p().createElement(u.Checkbox,{checked:t,onChange:function(){return _(t,n)}})}}],dataSource:m.filter(function(e){return!1!==e.isTopLevel}).map(function(e){return!1!==e.showTabs?e:s().omit(e,"children")})})}},k=t(174);function C(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 j=function(e){if(!e)return{};var n,t={};return null==e||null==(n=e.forEach)||n.call(e,function(e){var n,r=(n=e.split(":"),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),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 C(e,2);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 C(e,n)}}(n,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],a=r[1];t[o]=a||"all"}),t},E=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},P=(0,o.connect)(function(e){var n=e.onChange,t=(0,k.r)(),r=(0,l.useCompile)(),a=(0,d.useTranslation)().t,i=j((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(E(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(E(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;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e),t=t={enabled:o,scope:r},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 T(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 I(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 M(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function l(e){I(a,r,o,l,i,"next",e)}function i(e){I(a,r,o,l,i,"throw",e)}l(void 0)})}}function F(e){return function(e){if(Array.isArray(e))return T(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 T(e,void 0);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 T(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 D(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){var u=[a,i];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return l.label++,{value:u[1],done:!1};case 5:l.label++,r=u[1],u=[0];continue;case 7:u=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){l=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){l.label=u[1];break}if(6===u[0]&&l.label<o[1]){l.label=o[1],o=u;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(u);break}o[2]&&l.ops.pop(),l.trys.pop();continue}u=n.call(e,l)}catch(e){u=[6,e],r=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var _=(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)(F(e.value||[]).concat(F(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"))))}),z=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)(),b=null==o||null==(n=o.snippets)?void 0:n.includes("pm.*"),v=(0,i.useMemoizedFn)((e=M(function(e){return D(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;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}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=M(function(e){return D(this,function(n){switch(n.label){case 0:return[4,v(e)];case 1:return n.sent(),[2]}})}),function(n){return e.apply(this,arguments)}))}})},[o,v]);return p().createElement(l.SchemaComponent,{components:{SnippetCheckboxGroup:_,StrategyActions:P,PluginPermissions:A},scope:{pm:b},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}}"}}}}}})}},546: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"})}}}]);
|