UNPKG

harperdb

Version:

HarperDB is a distributed database, caching service, streaming broker, and application development platform focused on performance and ease of use.

1 lines 11.6 kB
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[831],{3109:(e,t,a)=>{a.r(t),a.d(t,{default:()=>j});var r=a(9950),s=a(2594),i=a(1110),n=a(5012),l=a(7176),o=a(6114),u=a(5488),c=a(3452),d=a(625),h=a(6713),p=a(7348),f=a(9163),v=a.n(f),b=a(9435),m=a(5553),k=a(5269),g=a(127);var y=a(5346);var _=a(3150),x=a(3628),w=a(4414);const j=function(e){let{showAttributes:t,fetchRoles:a}=e;const f=(0,p.MW)(),{role_id:j}=(0,d.g)(),A=(0,h.O$)(k.A,(e=>e.roles)),O=(0,h.O$)(k.A,(e=>{var t;return null===(t=e.registration)||void 0===t?void 0:t.version})),[C,P]=(null===O||void 0===O?void 0:O.split("."))||[],S=parseFloat(`${C}.${P}`),T=(0,h.O$)(k.A,(e=>e.lastUpdate)),E=(0,h.O$)(k.A,(e=>e.auth)),N=(0,h.O$)(k.A,(e=>e.url)),F=(0,h.O$)(m.A,(e=>e.theme)),[M,X]=(0,r.useState)({}),[B,$]=(0,r.useState)({}),[R,D]=(0,r.useState)({}),[L,U]=(0,r.useState)({}),[I,J]=(0,r.useState)(!1),[Y,G]=(0,r.useState)(!1),[H,K]=(0,r.useState)(!0),W=C>=3&&(C>3||P>=3),q=W?"calc(100vh - 440px)":"calc(100vh - 340px)",z={checked:(0,w.jsxs)("div",{style:{width:"100%",textAlign:"center"},children:["manage ",S>=4.2?"databases":"schemas","/tables"]}),unchecked:(0,w.jsxs)("div",{style:{width:"100%",textAlign:"center"},children:["manage ",S>=4.2?"databases":"schemas","/tables"]})};return v()((async()=>{var e;if(j&&A&&null!==(e=A.find((e=>e.id===j)))&&void 0!==e&&e.permission){var a;const e=null===(a=A.find((e=>e.id===j)))||void 0===a?void 0:a.permission,r=Array.isArray(e.structure_user)?e.structure_user.join(", "):e.structure_user||!1,s=await(async e=>{let{auth:t,url:a,currentRolePermissions:r,version:s,showAttributes:i}=e;const n=await(0,y.A)({auth:t,url:a}),l={},[o,u,c]=s.split("."),d="2.0.000"!==s&&o<=2&&u<=1&&c<=2;return n.error||Object.keys(n).map((e=>(l[e]={tables:{}},Object.keys(n[e]).map((t=>{const a=n[e][t],s=r&&r[e]&&r[e].tables[t],o=a.attributes.map((e=>e.attribute)).sort();return l[e].tables[t]=d?(e=>{let{extantTablePermissions:t,attributes:a,showAttributes:r}=e;return{read:!t||t.read,insert:!t||t.insert,update:!t||t.update,delete:!t||t.delete,attribute_restrictions:a.filter((e=>{var a;return r||(null===t||void 0===t||null===(a=t.attribute_restrictions)||void 0===a?void 0:a.find((t=>t.attribute_name===e)))})).map((e=>{var a;const r=null===t||void 0===t||null===(a=t.attribute_restrictions)||void 0===a?void 0:a.find((t=>t.attribute_name===e));return{attribute_name:e,read:r?r.read:!t||t.read,insert:r?r.insert:!t||t.insert,update:r?r.update:!t||t.update,delete:r?r.delete:!t||t.delete}}))}})({extantTablePermissions:s,attributes:o,showAttributes:i}):(e=>{let{extantTablePermissions:t,attributes:a,showAttributes:r}=e;return{read:!!t&&t.read,insert:!!t&&t.insert,update:!!t&&t.update,delete:!!t&&t.delete,attribute_permissions:a.filter((()=>{var e;return r||(null===t||void 0===t||null===(e=t.attribute_permissions)||void 0===e?void 0:e.some((e=>e.read||e.insert||e.update)))})).map((e=>{var a;const r=null===t||void 0===t||null===(a=t.attribute_permissions)||void 0===a?void 0:a.find((t=>t.attribute_name===e));return{attribute_name:e,read:r?r.read:(null===t||void 0===t||!t.attribute_permissions.length)&&((null===t||void 0===t?void 0:t.read)||!1),insert:r?r.insert:(null===t||void 0===t||!t.attribute_permissions.length)&&((null===t||void 0===t?void 0:t.insert)||!1),update:r?r.update:(null===t||void 0===t||!t.attribute_permissions.length)&&((null===t||void 0===t?void 0:t.update)||!1)}}))}})({extantTablePermissions:s,attributes:o,showAttributes:i}),!0}))))),l})({auth:E,url:N,version:O,currentRolePermissions:e,showAttributes:t});$(s),X(s),U(r),D(r)}}),[j,A,T,t]),(0,w.jsxs)(b.tH,{onError:(e,t)=>(0,x.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:_.A,children:[W&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(l.A,{children:[(0,w.jsx)(o.A,{xs:"12",sm:"6",md:"12",lg:"5",xl:"4",className:"pt-2 pb-2",children:(0,w.jsx)(i.A,{width:"100%",checked:!!R,onChange:()=>{D(!R&&(!1!==R||!L||L)),G(!0)},icons:z})}),R&&(0,w.jsx)(o.A,{xs:"12",sm:"6",md:"12",lg:"7",xl:"8",children:(0,w.jsx)(u.A,{onChange:e=>{D(!e.target.value||e.target.value),G(!0)},type:"text",id:"permitted_schemas",title:"permitted "+(S>=4.2?"databases":"schemas"),placeholder:`comma-separated ${S>=4.2?"databases":"schemas"}, or blank for all`,value:!0===R?"":R,disabled:I})})]}),(0,w.jsx)("hr",{})]}),(0,w.jsx)(s.A,{placeholder:B,height:q,theme:"light_mitsuketa_tribute",colors:{background:"transparent",default:"dark"===F?"#aaa":"#000",colon:"dark"===F?"#aaa":"#000",keys:"dark"===F?"#aaa":"#000",string:"#13c664",number:"#ea4c89",primitive:"#ffa500"},style:{warningBox:{display:"none"}},locale:n.A,width:"100%",waitAfterKeyPress:1e3,confirmGood:!1,onChange:e=>{K(!e.error),G(JSON.stringify(e.jsObject)!==JSON.stringify(B)),X(e.jsObject)}}),(0,w.jsx)("hr",{}),(0,w.jsx)(c.A,{id:"updateRolePermissions",block:!0,color:"success",disabled:I||!Y||!H,onClick:async e=>{if(e.preventDefault(),!M)return f.error("Please insert valid JSON to proceed"),!1;J(!0),G(!1);const t={super_user:!1,...M};W&&(t.structure_user=!0===R||!!R&&R.split(/[ ,]+/).filter((e=>""!==e)));const r=await(async e=>{let{auth:t,url:a,id:r,permission:s}=e;return(0,g.A)({operation:{operation:"alter_role",id:r,permission:s},auth:t,url:a})})({permission:t,id:j,auth:E,url:N});if(J(!1),r.error){let e=r.role_errors||r.message;return e+=". Permissions reset.",f.error(e),D(L),X(B)}return f.success("Permissions updated successfully"),a(),k.A.update((e=>{e.lastUpdate=Date.now()}))},children:I?(0,w.jsx)("i",{className:"fa fa-spinner fa-spin text-white"}):(0,w.jsx)("span",{children:"Update Role Permissions"})})]})}},4010:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});var r,s=a(9950),i=(r=s)&&r.__esModule?r:{default:r};t.default=function(){return i.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},i.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},1110:(e,t,a)=>{var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},s=function(){function e(e,t){for(var a=0;a<t.length;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,a,r){return a&&e(t.prototype,a),r&&e(t,r),t}}(),i=a(9950),n=h(i),l=h(a(8738)),o=h(a(1942)),u=h(a(4010)),c=h(a(4990)),d=a(6104);function h(e){return e&&e.__esModule?e:{default:e}}var p=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.handleClick=a.handleClick.bind(a),a.handleTouchStart=a.handleTouchStart.bind(a),a.handleTouchMove=a.handleTouchMove.bind(a),a.handleTouchEnd=a.handleTouchEnd.bind(a),a.handleFocus=a.handleFocus.bind(a),a.handleBlur=a.handleBlur.bind(a),a.previouslyChecked=!(!e.checked&&!e.defaultChecked),a.state={checked:!(!e.checked&&!e.defaultChecked),hasFocus:!1},a}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),s(t,[{key:"componentDidUpdate",value:function(e){e.checked!==this.props.checked&&this.setState({checked:!!this.props.checked})}},{key:"handleClick",value:function(e){if(!this.props.disabled){var t=this.input;if(e.target!==t&&!this.moved)return this.previouslyChecked=t.checked,e.preventDefault(),t.focus(),void t.click();var a=this.props.hasOwnProperty("checked")?this.props.checked:t.checked;this.setState({checked:a})}}},{key:"handleTouchStart",value:function(e){this.props.disabled||(this.startX=(0,d.pointerCoord)(e).x,this.activated=!0)}},{key:"handleTouchMove",value:function(e){if(this.activated&&(this.moved=!0,this.startX)){var t=(0,d.pointerCoord)(e).x;this.state.checked&&t+15<this.startX?(this.setState({checked:!1}),this.startX=t,this.activated=!0):t-15>this.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=t<this.startX+5)}}},{key:"handleTouchEnd",value:function(e){if(this.moved){var t=this.input;if(e.preventDefault(),this.startX){var a=(0,d.pointerCoord)(e).x;!0===this.previouslyChecked&&this.startX+4>a?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4<a&&this.previouslyChecked!==this.state.checked&&(this.setState({checked:!0}),this.previouslyChecked=this.state.checked,t.click()),this.activated=!1,this.startX=null,this.moved=!1}}}},{key:"handleFocus",value:function(e){var t=this.props.onFocus;t&&t(e),this.setState({hasFocus:!0})}},{key:"handleBlur",value:function(e){var t=this.props.onBlur;t&&t(e),this.setState({hasFocus:!1})}},{key:"getIcon",value:function(e){var a=this.props.icons;return a?void 0===a[e]?t.defaultProps.icons[e]:a[e]:null}},{key:"render",value:function(){var e=this,t=this.props,a=t.className,s=(t.icons,function(e,t){var a={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(a[r]=e[r]);return a}(t,["className","icons"])),i=(0,l.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},a);return n.default.createElement("div",{className:i,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},n.default.createElement("div",{className:"react-toggle-track"},n.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),n.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),n.default.createElement("div",{className:"react-toggle-thumb"}),n.default.createElement("input",r({},s,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(i.PureComponent);t.A=p,p.displayName="Toggle",p.defaultProps={icons:{checked:n.default.createElement(u.default,null),unchecked:n.default.createElement(c.default,null)}},p.propTypes={checked:o.default.bool,disabled:o.default.bool,defaultChecked:o.default.bool,onChange:o.default.func,onFocus:o.default.func,onBlur:o.default.func,className:o.default.string,name:o.default.string,value:o.default.string,id:o.default.string,"aria-labelledby":o.default.string,"aria-label":o.default.string,icons:o.default.oneOfType([o.default.bool,o.default.shape({checked:o.default.node,unchecked:o.default.node})])}},6104:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var a=t[0];return{x:a.clientX,y:a.clientY}}var r=e.pageX;if(void 0!==r)return{x:r,y:e.pageY}}return{x:0,y:0}}},4990:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});var r,s=a(9950),i=(r=s)&&r.__esModule?r:{default:r};t.default=function(){return i.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},i.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}}}]);