diff --git a/api/10.6.0 b/api/10.6.0 new file mode 120000 index 00000000..d1f7336e --- /dev/null +++ b/api/10.6.0 @@ -0,0 +1 @@ +../webpanel/5.10.0 \ No newline at end of file diff --git a/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js b/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js new file mode 100644 index 00000000..b9c5bc33 --- /dev/null +++ b/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1051],{16258:function(e,t){var n="linux",l=[],r="f17c",c="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z";t.DF={prefix:"fab",iconName:n,icon:[448,512,l,r,c]},t.qJ=t.DF},1673:function(e,t){var n="windows",l=[],r="f17a",c="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";t.DF={prefix:"fab",iconName:n,icon:[448,512,l,r,c]},t.ts=t.DF},8425:function(e,t,n){n.d(t,{t:function(){return i}});var l=n(67294),r=n(55171),c=n.n(r),a=n(27961);function m(e){return l.createElement(c(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function i(e){return a.ZP.showjson.value?l.createElement("div",{className:"text-left"},l.createElement(m,{obj:e.obj})):l.createElement(l.Fragment,null)}},41051:function(e,t,n){n.r(t);var l=n(16258),r=n(1673),c=n(67814),a=n(67294),m=n(44012),i=n(44615),s=n(86755),o=n(8425),E=n(35855);class u extends a.Component{render(){return a.createElement("div",{className:"text-center"},a.createElement(o.t,{obj:this.context}),a.createElement("h3",null,a.createElement(m.Z,{id:"view.info.client"})),a.createElement("div",{className:"text-secondary"},a.createElement("h4",null,a.createElement(m.Z,{id:"view.info.version"}),`${s.q4} (${s.IK})`)),a.createElement("hr",null),a.createElement("h3",null,a.createElement(m.Z,{id:"view.info.server"})),this.context.serverInfo?a.createElement(a.Fragment,null,a.createElement("div",{className:"text-secondary"},a.createElement("table",{className:"mx-auto text-left"},a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.admin.hostos"}))),a.createElement("td",null,a.createElement("h4",null,a.createElement(c.G,{fixedWidth:!0,icon:this.context.serverInfo.windowsHost?r.ts:l.qJ})))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.version"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.version))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.httpapiversion"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.apiVersion))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.dmapiversion"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.dmApiVersion))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.minpassword"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.minimumPasswordLength))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.instancelimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.instanceLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.userlimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.userLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.grouplimit"}))),a.createElement("td",null,a.createElement("h4",null,this.context.serverInfo.userGroupLimit))),a.createElement("tr",null,a.createElement("td",null,a.createElement("h4",{className:"mr-3"},a.createElement(m.Z,{id:"view.info.oauth"}))),a.createElement("td",null,a.createElement("h4",null,Object.keys(this.context.serverInfo.oAuthProviderInfos??{}).join(", "))))))),this.context.serverInfo.swarmServers?.length?a.createElement(a.Fragment,null,a.createElement("hr",null),a.createElement(m.Z,{id:"view.info.swarm",tagName:"h3"}),this.context.serverInfo.swarmServers.map((e=>a.createElement("h4",{key:e.identifier,className:e.controller?"font-weight-bold text-secondary":"text-secondary"},e.identifier," (",e.address,")"," ",e.controller?a.createElement(m.Z,{id:"view.info.controller"}):null)))):null):a.createElement(E.default,{text:"loading.info"}))}}u.contextType=i.f,t.default=u}}]); +//# sourceMappingURL=1051.70a5c780f4a8cf4f9a69.bundle.js.map \ No newline at end of file diff --git a/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js.map b/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js.map new file mode 100644 index 00000000..e5062569 --- /dev/null +++ b/webpanel/5.10.0/1051.70a5c780f4a8cf4f9a69.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1051.70a5c780f4a8cf4f9a69.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faLinux.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-brands-svg-icons/faWindows.js","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/views/Info.tsx"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'linux';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f17c';\nvar svgPathData = 'M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faLinux = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fab';\nvar iconName = 'windows';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f17a';\nvar svgPathData = 'M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faWindows = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
\n \n
\n );\n}\n","import { faLinux } from \"@fortawesome/free-brands-svg-icons/faLinux\";\nimport { faWindows } from \"@fortawesome/free-brands-svg-icons/faWindows\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { GeneralContext, UnsafeGeneralContext } from \"../../contexts/GeneralContext\";\nimport { MODE, VERSION } from \"../../definitions/constants\";\nimport { DebugJsonViewer } from \"../utils/JsonViewer\";\nimport Loading from \"../utils/Loading\";\n\ninterface IProps {}\ninterface IState {}\n\nclass Info extends React.Component {\n public declare context: UnsafeGeneralContext;\n public render(): React.ReactNode {\n return (\n
\n \n

\n \n

\n
\n

\n \n {`${VERSION} (${MODE})`}\n

\n
\n\n
\n\n

\n \n

\n\n {!this.context.serverInfo ? (\n \n ) : (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n

\n \n

\n
\n

\n \n

\n
\n

\n \n

\n
\n

{this.context.serverInfo.version}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.apiVersion}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.dmApiVersion}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.minimumPasswordLength}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.instanceLimit}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.userLimit}

\n
\n

\n \n

\n
\n

{this.context.serverInfo.userGroupLimit}

\n
\n

\n \n

\n
\n

\n {Object.keys(\n this.context.serverInfo.oAuthProviderInfos ?? {}\n ).join(\", \")}\n

\n
\n
\n {this.context.serverInfo.swarmServers?.length ? (\n \n
\n\n \n\n {this.context.serverInfo.swarmServers.map(server => {\n return (\n \n {server.identifier} ({server.address}){\" \"}\n {server.controller ? (\n \n ) : null}\n \n );\n })}\n
\n ) : null}\n
\n )}\n
\n );\n }\n}\n\nInfo.contextType = GeneralContext;\nexport default Info;\n"],"names":["iconName","ligatures","unicode","svgPathData","exports","prefix","icon","JsonViewer","props","src","obj","name","theme","iconStyle","collapsed","displayDataTypes","DebugJsonViewer","configOptions","className","Info","React","render","this","context","id","VERSION","MODE","serverInfo","fixedWidth","windowsHost","faWindows","faLinux","version","apiVersion","dmApiVersion","minimumPasswordLength","instanceLimit","userLimit","userGroupLimit","Object","keys","oAuthProviderInfos","join","swarmServers","length","tagName","map","server","key","identifier","controller","address","text","contextType","GeneralContext"],"sourceRoot":""} \ No newline at end of file diff --git a/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js b/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js new file mode 100644 index 00000000..f7e8f25b --- /dev/null +++ b/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunktgstation_server_control_panel=self.webpackChunktgstation_server_control_panel||[]).push([[1404],{40098:function(e,t){var n="plus",r=[],a="f067",s="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,s]},t.r8=t.DF},42619:function(e,t){var n="trash",r=[],a="f1f8",s="M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,s]},t.$=t.DF},8425:function(e,t,n){n.d(t,{t:function(){return l}});var r=n(67294),a=n(55171),s=n.n(a),i=n(27961);function o(e){return r.createElement(s(),{src:e.obj,name:"JSON",theme:"tube",iconStyle:"triangle",collapsed:!0,displayDataTypes:!1})}function l(e){return i.ZP.showjson.value?r.createElement("div",{className:"text-left"},r.createElement(o,{obj:e.obj})):r.createElement(r.Fragment,null)}},1841:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(67294),a=n(27977),s=n(44012);class i extends r.Component{render(){const e=this.props.user;return r.createElement(r.Fragment,null,e.systemIdentifier?r.createElement(a.Z,{variant:"primary",className:"mx-1"},r.createElement(s.Z,{id:"generic.system.short"})):r.createElement(a.Z,{variant:"primary",className:"mx-1"},r.createElement(s.Z,{id:"generic.tgs"})),e.enabled?r.createElement(a.Z,{variant:"success",className:"mx-1"},r.createElement(s.Z,{id:"generic.enabled"})):r.createElement(a.Z,{variant:"danger",className:"mx-1"},r.createElement(s.Z,{id:"generic.disabled"})),e.group?r.createElement(a.Z,{variant:"warning",className:"mx-1"},r.createElement(s.Z,{id:"generic.grouped"})):null)}}},11404:function(e,t,n){n.r(t),n.d(t,{default:function(){return F}});var r=n(51436),a=n(40098),s=n(42619),i=n(67814),o=n(67294),l=n(88375),c=n(35005),u=n(31555),d=n(32258),m=n(94716),h=n(62318),p=n(15293),E=n(34051),g=n(56841),f=n(85509),Z=n(43489),v=n(44012),b=n(48272),x=n(5977),w=n(73727),y=n(48509),N=n(96846),O=n(53803),C=n(16942),G=n(54803),S=n(44615);const A={};var P=n(16964),k=n(1320),j=n(3e3),K=n(8425),I=n(35855),R=n(1841);function U(){return U=Object.assign||function(e){for(var t=1;t{if(!isNaN(parseInt(e)))return;const n=e.toLowerCase(),r=t;if("none"==n)return;const a=!!((0,P.Zg)(this.state.user).administrationRights&r);this.setState((e=>({permsadmin:{...e.permsadmin,[n]:{currentVal:a,bitflag:r}}})))})),Object.entries(y.c2).forEach((([e,t])=>{if(!isNaN(parseInt(e)))return;const n=e.toLowerCase(),r=t;if("none"==n)return;const a=!!((0,P.Zg)(this.state.user).instanceManagerRights&r);this.setState((e=>({permsinstance:{...e.permsinstance,[n]:{currentVal:a,bitflag:r}}})))}))}addError(e){this.setState((t=>{const n=Array.from(t.errors);return n.push(e),{errors:n}}))}render(){if(this.state.loading)return o.createElement(I.default,{text:"loading.user.load"});if(this.state.saving)return o.createElement(I.default,{text:"loading.user.save"});return o.createElement("div",{className:"text-center"},o.createElement(K.t,{obj:this.state.user}),this.state.errors.map(((e,t)=>{if(e)return o.createElement(j.ZP,{key:t,error:e,onClose:()=>this.setState((e=>{const n=Array.from(e.errors);return n[t]=void 0,{errors:n}}))})})),this.state.user?o.createElement(o.Fragment,null,this.canEdit?"":o.createElement(l.Z,{className:"clearfix",variant:"error"},o.createElement(v.Z,{id:"view.user.edit.cantedit"})),o.createElement(R.Z,{user:this.state.user}),o.createElement("h3",{className:"text-capitalize"},this.state.user.name),o.createElement(c.Z,{as:w.rU,to:k.$w.userlist.link??k.$w.userlist.route},o.createElement(v.Z,{id:"generic.goback"})),o.createElement(f.Z,{activeKey:this.state.tab,onSelect:e=>{e&&(k.Mq.selectedusertab=e,A.setupMode||this.props.history.push(k.$w.useredit.link??k.$w.useredit.route),this.setState({tab:e}))},id:"test",className:"justify-content-center mb-3 mt-4 flex-column flex-md-row"},o.createElement(g.Z,{eventKey:"info",title:o.createElement(v.Z,{id:"generic.info"})},o.createElement(u.Z,{lg:5,className:"text-center text-md-left mx-auto"},o.createElement(E.Z,{xs:1,md:2},o.createElement(u.Z,null,o.createElement("h5",{className:"m-0"},o.createElement(v.Z,{id:"generic.userid"}))),o.createElement(u.Z,{className:"text-capitalize mb-2"},this.state.user.id)),this.state.user.systemIdentifier?o.createElement(E.Z,{xs:1,md:2},o.createElement(u.Z,null,o.createElement("h5",{className:"m-0"},o.createElement(v.Z,{id:"generic.systemidentifier"}))),o.createElement(u.Z,{className:"mb-2 text-sm-break"},this.state.user.systemIdentifier)):"",o.createElement(E.Z,{xs:1,md:2},o.createElement(u.Z,null,o.createElement("h5",{className:"m-0"},o.createElement(v.Z,{id:"generic.enabled"}))),o.createElement(u.Z,{className:"text-capitalize mb-2"},this.state.user.enabled.toString())),o.createElement(E.Z,{xs:1,md:2},o.createElement(u.Z,null,o.createElement("h5",{className:"m-0"},o.createElement(v.Z,{id:"generic.created"}))),o.createElement(p.Z,{overlay:o.createElement(Z.Z,{id:`${this.state.user.name}-tooltip`},new Date(this.state.user.createdAt).toLocaleString())},(({ref:e,...t})=>o.createElement(u.Z,U({className:"text-capitalize mb-2"},t),o.createElement("span",{ref:e},o.createElement(b.Z,{value:(new Date(this.state.user.createdAt).getTime()-Date.now())/1e3,numeric:"auto",updateIntervalInSeconds:1})))))),o.createElement(E.Z,{xs:1,md:2},o.createElement(u.Z,null,o.createElement("h5",{className:"m-0"},o.createElement(v.Z,{id:"generic.createdby"}))),o.createElement(p.Z,{overlay:o.createElement(Z.Z,{id:`${this.state.user.name}-tooltip-createdby`},o.createElement(v.Z,{id:"generic.userid"}),this.state.user.createdBy.id)},(({ref:e,...t})=>o.createElement(u.Z,U({className:"text-capitalize mb-2"},t),o.createElement("span",{ref:e},this.state.user.createdBy.name))))),o.createElement("div",{className:"text-center mt-3"},this.canEdit||this.canEditOwnPassword?o.createElement(c.Z,{className:"mr-2",as:w.rU,to:(k.$w.passwd.link??k.$w.passwd.route)+this.state.user.id.toString()},o.createElement(v.Z,{id:"routes.passwd"})):"",this.canEdit?o.createElement(c.Z,{variant:this.state.user.enabled?"danger":"success",onClick:async()=>{this.setState({saving:!0});const e=await C.Z.editUser({enabled:!this.state.user.enabled,id:this.state.user.id});e.code==O.G.OK?this.loadUser(e.payload):this.addError(e.error),this.setState({saving:!1})}},o.createElement(v.Z,{id:this.state.user.enabled?"generic.disable":"generic.enable"})):""))),o.createElement(g.Z,{eventKey:"adminperms",title:o.createElement(v.Z,{id:"perms.admin"})},this.renderPerms("permsadmin","admin")),o.createElement(g.Z,{eventKey:"instanceperms",title:o.createElement(v.Z,{id:"perms.instance"})},this.renderPerms("permsinstance","instance")),o.createElement(g.Z,{eventKey:"group",title:o.createElement(v.Z,{id:"perms.group"})},this.renderGroups()),this.renderOAuth())):"")}renderOAuth(){const e=this.context.serverInfo.oAuthProviderInfos,t=this.state.newOAuthConnections??this.state.user?.oAuthConnections;if("admin"===this.state.user?.name.toLowerCase()||null==t||!e||!Object.keys(e).length)return null;const n=this.canEdit||this.canEditOwnOAuth,r=this.state.newOAuthConnections.filter((t=>!!e[t.provider]));return o.createElement(g.Z,{eventKey:"oauth",title:o.createElement(v.Z,{id:"view.user.edit.oauth.connections"})},o.createElement("h3",{className:"mb-3"},o.createElement(v.Z,{id:"view.user.edit.oauth.current"})),o.createElement("div",null,r.map(((t,r)=>o.createElement("div",{className:"justify-content-center d-flex",key:r},o.createElement(h.Z,{className:"w-75 mb-1"},o.createElement(h.Z.Prepend,null,o.createElement(h.Z.Text,null,o.createElement("span",null,o.createElement(v.Z,{id:"view.user.edit.oauth.provider"})))),o.createElement(d.Z.Control,{className:"flex-grow-1 flex-md-grow-0 w-50 w-md-auto ",as:"select",custom:!0,disabled:!n,onChange:e=>{const t=e.target.value;this.setState((e=>({newOAuthConnections:e.newOAuthConnections.map(((e,n)=>n!==r?e:{...e,provider:t}))})))}},Object.keys(e).map((e=>o.createElement(v.Z,{key:e,id:`view.user.edit.oauth.provider.${e.toLowerCase()}`},(n=>o.createElement("option",{value:e,selected:t.provider===e},n)))))),o.createElement(h.Z.Text,{className:"rounded-0"},o.createElement(v.Z,{id:"view.user.edit.oauth.id"})),o.createElement(m.Z,{className:"",value:t.externalUserId,onChange:e=>{const t=e.target.value;this.setState((e=>({newOAuthConnections:e.newOAuthConnections.map(((e,n)=>n!==r?e:{...e,externalUserId:t}))})))},disabled:!n}),o.createElement(h.Z.Append,{className:""},o.createElement(c.Z,{variant:"danger",className:"text-darker",hidden:!n,onClick:()=>{this.setState((e=>({newOAuthConnections:e.newOAuthConnections.filter(((e,t)=>r!==t))})))}},o.createElement("div",null,o.createElement(i.G,{icon:s.$}))))))))),n?o.createElement("div",{className:"text-center mt-3"},o.createElement(c.Z,{className:"mr-2",onClick:()=>{this.setState((t=>({newOAuthConnections:[...t.newOAuthConnections,{provider:Object.keys(e)[0],externalUserId:""}]})))}},o.createElement(v.Z,{id:"view.user.edit.oauth.add"})),o.createElement(c.Z,{onClick:async()=>{if(this.setState({saving:!0}),!this.state.user)return void this.addError(new N.ZP(N.jK.APP_FAIL,{jsError:Error("this.state.user is null in user edit save")}));const e=await C.Z.editUser({id:this.state.user.id,oAuthConnections:this.state.newOAuthConnections});e.code==O.G.OK?this.loadUser(e.payload):this.addError(e.error),this.setState({saving:!1})},variant:"success",disabled:this.state.newOAuthConnections.some((e=>0===e.externalUserId.trim().length))||this.state.newOAuthConnections.every(((e,t)=>e.externalUserId===(this.state.user?.oAuthConnections??[])[t]?.externalUserId&&e.provider===(this.state.user?.oAuthConnections??[])[t]?.provider))&&this.state.newOAuthConnections.length===this.state.user?.oAuthConnections?.length},o.createElement(v.Z,{id:"generic.savetab"}))):"")}renderGroups(){return this.state.user&&this.state.groups?o.createElement("div",null,this.canRead?null:o.createElement(l.Z,{className:"clearfix",variant:"error"},o.createElement(v.Z,{id:"perms.group.cantlist"})),o.createElement("h3",{className:"mb-3"},o.createElement(v.Z,{id:"perms.group.current"}),this.state.user.group?this.state.user.group.name:o.createElement(v.Z,{id:"perms.group.none"})),o.createElement("div",{onChange:this.state.renameGroup?void 0:this.changeGroup},o.createElement(h.Z,{className:"justify-content-center mb-3",as:"label",htmlFor:"group_none"},o.createElement(h.Z.Prepend,null,o.createElement(h.Z.Radio,{id:"group_none",name:"group",defaultChecked:void 0===this.state.user.group?.id,disabled:!this.canEdit})),o.createElement(h.Z.Append,{className:"w-40 overflow-auto"},o.createElement(h.Z.Text,{className:"flex-fill"},o.createElement(v.Z,{id:"perms.group.none"})))),this.state.groups.map((e=>o.createElement(h.Z,{className:"justify-content-center mb-1",key:e.id},o.createElement(h.Z.Prepend,null,o.createElement(h.Z.Radio,{id:"group-"+e.id.toString(),name:"group",defaultChecked:this.state.user.group?.id===e.id,disabled:!this.canEdit})),o.createElement(h.Z.Append,{className:"w-40 overflow-auto"},this.state.renameGroup!==e?o.createElement(o.Fragment,null,o.createElement(h.Z.Text,{className:"flex-fill",as:"label",htmlFor:"group-"+e.id.toString()},o.createElement("span",null,e.name),o.createElement("div",{className:"text-right ml-auto"},o.createElement(v.Z,{id:"generic.numusers",values:{count:this.canRead?e.users?.length:"???"}}))),o.createElement(p.Z,{overlay:o.createElement(Z.Z,{id:`${e.id}-rename-tooltip`},o.createElement(v.Z,{id:"perms.group.rename.tooltip"}))},(({ref:t,...n})=>o.createElement(c.Z,U({variant:"secondary",className:"text-darker",disabled:!this.canEdit,onClick:()=>this.setState({renameGroup:e,renameGroupName:e.name})},n),o.createElement("div",{ref:t},o.createElement(i.G,{icon:r.IwR}))))),o.createElement(p.Z,{overlay:o.createElement(Z.Z,{id:`${e.id}-delete-tooltip`},o.createElement(v.Z,{id:"perms.group.delete.tooltip"})),show:!!(e.users?.length&&this.canEdit||e.id===this.state.user.group?.id)&&void 0},(({ref:t,...n})=>o.createElement(c.Z,U({variant:"danger",className:"text-darker",disabled:!!e.users?.length||!this.canEdit||e.id===this.state.user.group?.id,onClick:()=>{this.deleteGroup(e.id)}},n),o.createElement("div",{ref:t},o.createElement(i.G,{icon:s.$})))))):o.createElement(o.Fragment,null,o.createElement("input",{className:"flex-fill",value:this.state.renameGroupName,onChange:e=>{this.setState({renameGroupName:e.target.value})}}),o.createElement(c.Z,{variant:"success",className:"text-darker",onClick:()=>{this.renameGroup()}},o.createElement(i.G,{icon:r.LEp})),o.createElement(c.Z,{variant:"danger",className:"text-darker",onClick:()=>this.setState({renameGroup:null,renameGroupName:null})},o.createElement(i.G,{icon:r.NBC})))))))),o.createElement(h.Z,{className:"justify-content-center mb-1 mt-5"},o.createElement(h.Z.Prepend,null,o.createElement(c.Z,{variant:"primary",onClick:this.createGroup,disabled:!this.canEdit||!this.state.createGroupName.length},o.createElement(i.G,{icon:a.r8}))),o.createElement(m.Z,{className:"w-40 overflow-auto flex-grow-0",value:this.state.createGroupName,onChange:e=>{this.setState({createGroupName:e.target.value})},disabled:!this.canEdit}))):o.createElement(j.ZP,{error:new N.ZP(N.jK.APP_FAIL,{jsError:Error("Assertion failed, user or group is null")})})}async changeGroup(e){if(!this.state.user)return void this.addError(new N.ZP(N.jK.APP_FAIL,{jsError:Error("this.state.user is null in changegroup")}));this.setState({loading:!0});const t=e.target.id;if("group_none"===t){const e=await C.Z.editUser({id:this.state.user.id,permissionSet:(0,P.Zg)(this.state.user)});e.code===O.G.OK?(await this.loadGroups(),this.loadUser(e.payload)):this.addError(e.error)}else{const e=parseInt(t.substr(6)),n=await C.Z.editUser({id:this.state.user.id,group:{id:e}});n.code===O.G.OK?(await this.loadGroups(),this.loadUser(n.payload)):this.addError(n.error)}this.setState({loading:!1})}async renameGroup(){const e=this.state.renameGroup,t=this.state.renameGroupName;if(!e||!(t&&t.trim().length>0))return;this.setState({loading:!0});const n=await G.Z.updateGroup({id:e.id,name:t});n.code===O.G.OK?this.setState((t=>{const r=[...t.groups];return r[r.findIndex((t=>t.id===e.id))]=n.payload,{groups:r,renameGroup:null,renameGroupName:null}})):this.addError(n.error),this.setState({loading:!1})}async deleteGroup(e){this.setState({loading:!0});const t=await G.Z.deleteGroup(e);t.code===O.G.OK?this.setState((t=>({groups:t.groups.filter((t=>t.id!==e))}))):this.addError(t.error),this.setState({loading:!1})}async createGroup(){this.setState({loading:!0});const e=await G.Z.createGroup(this.state.createGroupName,(0,P.Zg)(this.state.user));e.code===O.G.OK?this.setState((t=>({groups:t.groups.concat([e.payload])}))):this.addError(e.error),this.setState({loading:!1})}renderPerms(e,t){const n={},r=(e,t,n)=>{e.current&&t.current&&(e.current.checked!==n?t.current.classList.add("font-weight-bold"):t.current.classList.remove("font-weight-bold"))},a=t=>()=>{for(const[a,s]of Object.entries(n)){if(!s.input.current)return;s.input.current.checked=t,r(s.input,s.field,this.state[e][a].currentVal)}};return o.createElement(o.Fragment,null,this.state.user?.group?o.createElement(l.Z,{variant:"warning"},o.createElement(v.Z,{id:"perms.group.warning",values:{group:`${this.state.user.group.name} (${this.state.user.group.id})`}})):null,this.canEdit?o.createElement(o.Fragment,null,o.createElement("h5",null,o.createElement(v.Z,{id:"generic.setall"})),o.createElement(c.Z,{onClick:a(!0)},o.createElement(v.Z,{id:"generic.true"}))," ",o.createElement(c.Z,{onClick:a(!1)},o.createElement(v.Z,{id:"generic.false"}))," ",o.createElement(c.Z,{onClick:()=>{for(const[t,a]of Object.entries(n))a.input.current&&(a.input.current.checked=this.state[e][t].currentVal,r(a.input,a.field,this.state[e][t].currentVal))}},o.createElement(v.Z,{id:"generic.reset"}))):"",o.createElement(u.Z,{md:8,lg:7,xl:6,className:"mx-auto"},o.createElement("hr",null),Object.entries(this.state[e]).map((([a,s])=>{const l=o.createRef(),c=o.createRef();return n[a]={input:l,field:c},o.createElement(h.Z,{key:a,as:"label",htmlFor:a,className:"mb-0"},o.createElement(h.Z.Prepend,{className:"flex-grow-1 overflow-auto"},o.createElement(p.Z,{overlay:o.createElement(Z.Z,{id:`perms.${t}.${a}.desc`},o.createElement(v.Z,{id:`perms.${t}.${a}.desc`}))},(({ref:n,...u})=>o.createElement(h.Z.Text,{className:"flex-fill",ref:c},o.createElement("div",u,o.createElement(v.Z,{id:`perms.${t}.${a}`})),o.createElement("div",{className:"ml-auto d-flex align-items-center"},o.createElement(d.Z.Check,{inline:!0,type:"switch",custom:!0,id:`${e}.${a}`,className:"d-flex justify-content-center align-content-center mx-2",label:"",ref:l,disabled:!this.canEdit,defaultChecked:s.currentVal,onChange:()=>{r(l,c,s.currentVal)}}),o.createElement("div",U({},u,{ref:n}),o.createElement(i.G,{fixedWidth:!0,icon:"info"}))))))))})),o.createElement("hr",null)),this.canEdit?o.createElement(c.Z,{onClick:async()=>{this.setState({saving:!0});let t=0;for(const[r,a]of Object.entries(n))a.input.current&&(t+=a.input.current.checked?this.state[e][r].bitflag:0);if(this.state.user){if(this.state.user.group){const n=Object.assign(Object.assign({},this.state.user.group.permissionSet),{["permsadmin"==e?"AdministrationRights":"InstanceManagerRights"]:t}),r=await G.Z.updateGroup({id:this.state.user.group.id,permissionSet:n});if(r.code==O.G.OK){const e=await C.Z.getUser(this.state.user.id);e.code==O.G.OK?this.loadUser(e.payload):this.addError(e.error)}else this.addError(r.error)}else{const n=Object.assign(Object.assign({},this.state.user.permissionSet),{["permsadmin"==e?"AdministrationRights":"InstanceManagerRights"]:t}),r=await C.Z.editUser({id:this.state.user.id,permissionSet:n});r.code==O.G.OK?this.loadUser(r.payload):this.addError(r.error)}this.setState({saving:!1})}else this.addError(new N.ZP(N.jK.APP_FAIL,{jsError:Error("this.state.user is null in user edit save")}))}},o.createElement(v.Z,{id:"generic.savetab"})):"")}}$.contextType=S.f;var F=(0,x.EN)($)},27977:function(e,t,n){var r=n(87462),a=n(63366),s=n(94184),i=n.n(s),o=n(67294),l=n(76792),c=["bsPrefix","variant","pill","className","as"],u=o.forwardRef((function(e,t){var n=e.bsPrefix,s=e.variant,u=e.pill,d=e.className,m=e.as,h=void 0===m?"span":m,p=(0,a.Z)(e,c),E=(0,l.vE)(n,"badge");return o.createElement(h,(0,r.Z)({ref:t},p,{className:i()(d,E,u&&E+"-pill",s&&E+"-"+s)}))}));u.displayName="Badge",u.defaultProps={pill:!1},t.Z=u},62318:function(e,t,n){var r=n(63366),a=n(87462),s=n(94184),i=n.n(s),o=n(67294),l=n(44680),c=n(76792),u=["bsPrefix","size","hasValidation","className","as"],d=(0,l.Z)("input-group-append"),m=(0,l.Z)("input-group-prepend"),h=(0,l.Z)("input-group-text",{Component:"span"}),p=o.forwardRef((function(e,t){var n=e.bsPrefix,s=e.size,l=e.hasValidation,d=e.className,m=e.as,h=void 0===m?"div":m,p=(0,r.Z)(e,u);return n=(0,c.vE)(n,"input-group"),o.createElement(h,(0,a.Z)({ref:t},p,{className:i()(d,n,s&&n+"-"+s,l&&"has-validation")}))}));p.displayName="InputGroup",p.Text=h,p.Radio=function(e){return o.createElement(h,null,o.createElement("input",(0,a.Z)({type:"radio"},e)))},p.Checkbox=function(e){return o.createElement(h,null,o.createElement("input",(0,a.Z)({type:"checkbox"},e)))},p.Append=d,p.Prepend=m,t.Z=p},34051:function(e,t,n){var r=n(87462),a=n(63366),s=n(94184),i=n.n(s),o=n(67294),l=n(76792),c=["bsPrefix","className","noGutters","as"],u=["xl","lg","md","sm","xs"],d=o.forwardRef((function(e,t){var n=e.bsPrefix,s=e.className,d=e.noGutters,m=e.as,h=void 0===m?"div":m,p=(0,a.Z)(e,c),E=(0,l.vE)(n,"row"),g=E+"-cols",f=[];return u.forEach((function(e){var t,n=p[e];delete p[e];var r="xs"!==e?"-"+e:"";null!=(t=null!=n&&"object"==typeof n?n.cols:n)&&f.push(""+g+r+"-"+t)})),o.createElement(h,(0,r.Z)({ref:t},p,{className:i().apply(void 0,[s,E,d&&"no-gutters"].concat(f))}))}));d.displayName="Row",d.defaultProps={noGutters:!1},t.Z=d},56841:function(e,t,n){var r=n(51721),a=n(67294),s=n(97184),i=n(28752),o=n(75103),l=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){throw new Error("ReactBootstrap: The `Tab` component is not meant to be rendered! It's an abstract component that is only valid as a direct Child of the `Tabs` Component. For custom tabs components use TabPane and TabsContainer directly")},t}(a.Component);l.Container=s.Z,l.Content=i.Z,l.Pane=o.Z,t.Z=l},97184:function(e,t,n){var r=n(67294),a=n(14289),s=n(24426),i=n(45017);t.Z=function(e){var t=(0,a.Ch)(e,{activeKey:"onSelect"}),n=t.id,o=t.generateChildId,l=t.onSelect,c=t.activeKey,u=t.transition,d=t.mountOnEnter,m=t.unmountOnExit,h=t.children,p=(0,r.useMemo)((function(){return o||function(e,t){return n?n+"-"+t+"-"+e:null}}),[n,o]),E=(0,r.useMemo)((function(){return{onSelect:l,activeKey:c,transition:u,mountOnEnter:d||!1,unmountOnExit:m||!1,getControlledId:function(e){return p(e,"tabpane")},getControllerId:function(e){return p(e,"tab")}}}),[l,c,u,d,m,p]);return r.createElement(s.Z.Provider,{value:E},r.createElement(i.Z.Provider,{value:l||null},h))}},28752:function(e,t,n){var r=n(87462),a=n(63366),s=n(94184),i=n.n(s),o=n(67294),l=n(76792),c=["bsPrefix","as","className"],u=o.forwardRef((function(e,t){var n=e.bsPrefix,s=e.as,u=void 0===s?"div":s,d=e.className,m=(0,a.Z)(e,c),h=(0,l.vE)(n,"tab-content");return o.createElement(u,(0,r.Z)({ref:t},m,{className:i()(d,h)}))}));t.Z=u},75103:function(e,t,n){var r=n(87462),a=n(63366),s=n(94184),i=n.n(s),o=n(67294),l=n(76792),c=n(24426),u=n(45017),d=n(41068),m=["activeKey","getControlledId","getControllerId"],h=["bsPrefix","className","active","onEnter","onEntering","onEntered","onExit","onExiting","onExited","mountOnEnter","unmountOnExit","transition","as","eventKey"];var p=o.forwardRef((function(e,t){var n=function(e){var t=(0,o.useContext)(c.Z);if(!t)return e;var n=t.activeKey,s=t.getControlledId,i=t.getControllerId,l=(0,a.Z)(t,m),h=!1!==e.transition&&!1!==l.transition,p=(0,u.h)(e.eventKey);return(0,r.Z)({},e,{active:null==e.active&&null!=p?(0,u.h)(n)===p:e.active,id:s(e.eventKey),"aria-labelledby":i(e.eventKey),transition:h&&(e.transition||l.transition||d.Z),mountOnEnter:null!=e.mountOnEnter?e.mountOnEnter:l.mountOnEnter,unmountOnExit:null!=e.unmountOnExit?e.unmountOnExit:l.unmountOnExit})}(e),s=n.bsPrefix,p=n.className,E=n.active,g=n.onEnter,f=n.onEntering,Z=n.onEntered,v=n.onExit,b=n.onExiting,x=n.onExited,w=n.mountOnEnter,y=n.unmountOnExit,N=n.transition,O=n.as,C=void 0===O?"div":O,G=(n.eventKey,(0,a.Z)(n,h)),S=(0,l.vE)(s,"tab-pane");if(!E&&!N&&y)return null;var A=o.createElement(C,(0,r.Z)({},G,{ref:t,role:"tabpanel","aria-hidden":!E,className:i()(p,S,{active:E})}));return N&&(A=o.createElement(N,{in:E,onEnter:g,onEntering:f,onEntered:Z,onExit:v,onExiting:b,onExited:x,mountOnEnter:w,unmountOnExit:y},A)),o.createElement(c.Z.Provider,{value:null},o.createElement(u.Z.Provider,{value:null},A))}));p.displayName="TabPane",t.Z=p},85509:function(e,t,n){var r=n(87462),a=n(63366),s=n(67294),i=(n(55638),n(14289)),o=n(13361),l=n(23982),c=n(41244),u=n(97184),d=n(28752),m=n(75103),h=n(53439),p=["id","onSelect","transition","mountOnEnter","unmountOnExit","children","activeKey"];function E(e){var t=e.props,n=t.title,r=t.eventKey,a=t.disabled,i=t.tabClassName,o=t.id;return null==n?null:s.createElement(c.Z,{as:l.Z,eventKey:r,disabled:a,id:o,className:i},n)}var g=function(e){var t=(0,i.Ch)(e,{activeKey:"onSelect"}),n=t.id,l=t.onSelect,c=t.transition,g=t.mountOnEnter,f=t.unmountOnExit,Z=t.children,v=t.activeKey,b=void 0===v?function(e){var t;return(0,h.E)(e,(function(e){null==t&&(t=e.props.eventKey)})),t}(Z):v,x=(0,a.Z)(t,p);return s.createElement(u.Z,{id:n,activeKey:b,onSelect:l,transition:c,mountOnEnter:g,unmountOnExit:f},s.createElement(o.Z,(0,r.Z)({},x,{role:"tablist",as:"nav"}),(0,h.U)(Z,E)),s.createElement(d.Z,null,(0,h.U)(Z,(function(e){var t=(0,r.Z)({},e.props);return delete t.title,delete t.disabled,delete t.tabClassName,s.createElement(m.Z,t)}))))};g.defaultProps={variant:"tabs",mountOnEnter:!1,unmountOnExit:!1},g.displayName="Tabs",t.Z=g}}]); +//# sourceMappingURL=1404.eee1507f2fa3dbc428f1.bundle.js.map \ No newline at end of file diff --git a/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js.map b/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js.map new file mode 100644 index 00000000..73b6afee --- /dev/null +++ b/webpanel/5.10.0/1404.eee1507f2fa3dbc428f1.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1404.eee1507f2fa3dbc428f1.bundle.js","mappings":"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","sources":["webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faPlus.js","webpack://tgstation-server-control-panel/./node_modules/@fortawesome/free-solid-svg-icons/faTrash.js","webpack://tgstation-server-control-panel/./src/components/utils/JsonViewer.tsx","webpack://tgstation-server-control-panel/./src/components/utils/UserBadges.tsx","webpack://tgstation-server-control-panel/./src/utils/globalObjects.ts","webpack://tgstation-server-control-panel/./src/components/views/User/Edit.tsx","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Badge.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/InputGroup.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Row.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Tab.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabContainer.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabContent.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/TabPane.js","webpack://tgstation-server-control-panel/./node_modules/react-bootstrap/esm/Tabs.js"],"sourcesContent":["'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'plus';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f067';\nvar svgPathData = 'M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faPlus = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'trash';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f1f8';\nvar svgPathData = 'M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faTrash = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","import React from \"react\";\nimport ReactJson from \"react-json-view\";\n\nimport configOptions from \"../../ApiClient/util/config\";\n\nexport default function JsonViewer(props: { obj: unknown }): JSX.Element {\n return (\n }\n name={\"JSON\"}\n theme=\"tube\"\n iconStyle=\"triangle\"\n collapsed\n displayDataTypes={false}\n />\n );\n}\n\nexport function DebugJsonViewer(props: { obj: unknown }): JSX.Element {\n if (!configOptions.showjson.value) {\n return <>;\n }\n return (\n
\n \n
\n );\n}\n","import React from \"react\";\nimport { Badge } from \"react-bootstrap\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport { UserResponse } from \"../../ApiClient/generatedcode/generated\";\n\ninterface IProps {\n user: UserResponse;\n}\n\ninterface IState {}\n\nexport default class UserBadges extends React.Component {\n public render(): React.ReactNode {\n const user = this.props.user;\n return (\n \n {user.systemIdentifier ? (\n \n \n \n ) : (\n \n \n \n )}\n {user.enabled ? (\n \n \n \n ) : (\n \n \n \n )}\n {user.group ? (\n \n \n \n ) : null}\n \n );\n }\n}\n","//this should be a proper data store thing eventually but it will do 4 now\nimport Translation from \"../translations/Translation\";\n\nexport interface GlobalObjects {\n translation?: Translation;\n setupMode?: boolean;\n}\n\nexport const GlobalObjects: GlobalObjects = {};\n","import { faCheck, faPen, faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons/faPlus\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons/faTrash\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { FormEvent } from \"react\";\nimport Alert from \"react-bootstrap/Alert\";\nimport Button from \"react-bootstrap/Button\";\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport FormControl from \"react-bootstrap/FormControl\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Row from \"react-bootstrap/Row\";\nimport Tab from \"react-bootstrap/Tab\";\nimport Tabs from \"react-bootstrap/Tabs\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport { FormattedMessage, FormattedRelativeTime } from \"react-intl\";\nimport { RouteComponentProps, withRouter } from \"react-router\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n AdministrationRights,\n InstanceManagerRights,\n OAuthConnection,\n OAuthProvider,\n PermissionSet,\n UserGroup,\n UserGroupResponse,\n UserResponse\n} from \"../../../ApiClient/generatedcode/generated\";\nimport InternalError, { ErrorCode } from \"../../../ApiClient/models/InternalComms/InternalError\";\nimport { StatusCode } from \"../../../ApiClient/models/InternalComms/InternalStatus\";\nimport UserClient from \"../../../ApiClient/UserClient\";\nimport UserGroupClient from \"../../../ApiClient/UserGroupClient\";\nimport { GeneralContext } from \"../../../contexts/GeneralContext\";\nimport { GlobalObjects } from \"../../../utils/globalObjects\";\nimport { resolvePermissionSet } from \"../../../utils/misc\";\nimport { AppRoutes, RouteData } from \"../../../utils/routes\";\nimport ErrorAlert from \"../../utils/ErrorAlert\";\nimport { DebugJsonViewer } from \"../../utils/JsonViewer\";\nimport Loading from \"../../utils/Loading\";\nimport UserBadges from \"../../utils/UserBadges\";\n\ninterface IProps extends RouteComponentProps<{ id: string; tab?: string }> {}\n\ninterface IState {\n errors: Array | undefined>;\n user?: UserResponse;\n newOAuthConnections: OAuthConnection[];\n loading: boolean;\n saving: boolean;\n permsadmin: { [key: string]: Permission };\n permsinstance: { [key: string]: Permission };\n tab: string;\n groups: UserGroupResponse[];\n renameGroup: UserGroupResponse | null;\n renameGroupName: string | null;\n createGroupName: string;\n}\n\ninterface Permission {\n readonly bitflag: number;\n readonly currentVal: boolean;\n}\n\nclass UserEdit extends React.Component {\n public declare context: GeneralContext;\n public constructor(props: IProps, context: GeneralContext) {\n super(props);\n\n this.createGroup = this.createGroup.bind(this);\n this.changeGroup = this.changeGroup.bind(this);\n\n if (!context.user) {\n throw Error(\"UserEdit: this.context.user is null!\");\n }\n\n this.state = {\n errors: [],\n loading: true,\n saving: false,\n permsadmin: {},\n permsinstance: {},\n tab: props.match.params.tab ?? \"info\",\n groups: context.user.group ? [Object.assign({ users: [] }, context.user.group)] : [],\n renameGroup: null,\n renameGroupName: null,\n createGroupName: \"\",\n newOAuthConnections: []\n };\n\n RouteData.selecteduserid = parseInt(props.match.params.id);\n RouteData.selectedusertab = props.match.params.tab;\n }\n\n private get canEdit() {\n return !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.WriteUsers\n );\n }\n\n private get canRead() {\n return !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.ReadUsers\n );\n }\n\n private get canEditOwnPassword() {\n const userid = parseInt(this.props.match.params.id);\n return (\n !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.EditOwnPassword\n ) && this.context.user.id === userid\n );\n }\n\n private get canEditOwnOAuth() {\n const userid = parseInt(this.props.match.params.id);\n return (\n !!(\n resolvePermissionSet(this.context.user).administrationRights &\n AdministrationRights.EditOwnOAuthConnections\n ) && this.context.user.id === userid\n );\n }\n\n public componentDidUpdate(prevProps: Readonly) {\n if (prevProps.match.params.tab !== this.props.match.params.tab) {\n this.setState({\n tab: this.props.match.params.tab ?? \"info\"\n });\n }\n }\n\n public async componentDidMount(): Promise {\n const userid = parseInt(this.props.match.params.id);\n const response = await UserClient.getUser(userid);\n switch (response.code) {\n case StatusCode.ERROR: {\n this.addError(response.error);\n break;\n }\n case StatusCode.OK: {\n this.loadUser(response.payload);\n break;\n }\n }\n\n await this.loadGroups();\n\n this.setState({\n loading: false\n });\n }\n\n private async loadGroups() {\n if (!this.canRead) return;\n\n const groups1 = await UserGroupClient.listGroups({ page: 1, pageSize: 100 });\n if (groups1.code === StatusCode.OK) {\n const groups = [...groups1.payload.content];\n for (let i = 2; i <= groups1.payload.totalPages; i++) {\n const groups2 = await UserGroupClient.listGroups({ page: i, pageSize: 100 });\n if (groups2.code === StatusCode.ERROR) {\n this.addError(groups2.error);\n return;\n } else {\n groups.push(...groups2.payload.content);\n }\n }\n this.setState({\n groups: groups\n });\n } else {\n this.addError(groups1.error);\n }\n }\n\n private loadUser(user: UserResponse) {\n this.setState({\n user,\n newOAuthConnections: user.oAuthConnections ? Array.from(user.oAuthConnections) : []\n });\n this.loadEnums();\n }\n\n private loadEnums(): void {\n // noinspection DuplicatedCode\n Object.entries(AdministrationRights).forEach(([k, v]) => {\n /* enums are objects that are reverse mapped, for example, an enum with a = 1 and b = 2 would look like this:\n * {\n * \"a\": 1,\n * \"b\": 2,\n * 1: \"a\",\n * 2: \"b\"\n * }\n * so we need to drop everything that doesnt resolve to a string because otherwise we end up with twice the values\n */\n if (!isNaN(parseInt(k))) return;\n\n const key = k.toLowerCase();\n const val = v as number;\n\n //we dont care about nothing\n if (key == \"none\") return;\n\n const currentVal = !!(\n resolvePermissionSet(this.state.user!).administrationRights & val\n );\n this.setState(prevState => {\n return {\n permsadmin: {\n ...prevState.permsadmin,\n [key]: {\n currentVal: currentVal,\n bitflag: val\n }\n }\n };\n });\n });\n // noinspection DuplicatedCode\n Object.entries(InstanceManagerRights).forEach(([k, v]) => {\n if (!isNaN(parseInt(k))) return;\n\n const key = k.toLowerCase();\n const val = v as number;\n\n //we dont care about nothing\n if (key == \"none\") return;\n\n const currentVal = !!(\n resolvePermissionSet(this.state.user!).instanceManagerRights & val\n );\n this.setState(prevState => {\n return {\n permsinstance: {\n ...prevState.permsinstance,\n [key]: {\n currentVal: currentVal,\n bitflag: val\n }\n }\n };\n });\n });\n }\n\n private addError(error: InternalError): void {\n this.setState(prevState => {\n const errors = Array.from(prevState.errors);\n errors.push(error);\n return {\n errors\n };\n });\n }\n\n public render(): React.ReactNode {\n if (this.state.loading) {\n return ;\n }\n if (this.state.saving) {\n return ;\n }\n\n // noinspection DuplicatedCode\n const changetabs = (newkey: string | null) => {\n if (!newkey) return;\n\n RouteData.selectedusertab = newkey;\n if (!GlobalObjects.setupMode) {\n this.props.history.push(AppRoutes.useredit.link ?? AppRoutes.useredit.route);\n }\n this.setState({\n tab: newkey\n });\n };\n\n return (\n
\n \n {this.state.errors.map((err, index) => {\n if (!err) return;\n return (\n \n this.setState(prev => {\n const newarr = Array.from(prev.errors);\n newarr[index] = undefined;\n return {\n errors: newarr\n };\n })\n }\n />\n );\n })}\n {this.state.user ? (\n \n {!this.canEdit ? (\n \n \n \n ) : (\n \"\"\n )}\n \n

{this.state.user.name}

\n \n \n }>\n \n \n \n
\n \n
\n \n \n {this.state.user.id}\n \n
\n {this.state.user.systemIdentifier ? (\n \n \n
\n \n
\n \n \n {this.state.user.systemIdentifier}\n \n
\n ) : (\n \"\"\n )}\n \n \n
\n \n
\n \n \n {this.state.user.enabled.toString()}\n \n
\n \n \n
\n \n
\n \n \n {new Date(\n this.state.user.createdAt\n ).toLocaleString()}\n \n }>\n {({ ref, ...triggerHandler }) => (\n \n }>\n \n \n \n )}\n \n
\n \n \n
\n \n
\n \n \n \n {this.state.user.createdBy.id}\n \n }>\n {({ ref, ...triggerHandler }) => (\n \n }>\n {this.state.user!.createdBy.name}\n \n \n )}\n \n
\n
\n {this.canEdit || this.canEditOwnPassword ? (\n \n \n \n ) : (\n \"\"\n )}\n {this.canEdit ? (\n {\n this.setState({\n saving: true\n });\n\n const response = await UserClient.editUser({\n enabled: !this.state.user!.enabled,\n id: this.state.user!.id\n });\n if (response.code == StatusCode.OK) {\n this.loadUser(response.payload);\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n saving: false\n });\n }}>\n \n \n ) : (\n \"\"\n )}\n
\n \n
\n }>\n {this.renderPerms(\"permsadmin\", \"admin\")}\n \n }>\n {this.renderPerms(\"permsinstance\", \"instance\")}\n \n }>\n {this.renderGroups()}\n \n {this.renderOAuth()}\n \n
\n ) : (\n \"\"\n )}\n
\n );\n }\n\n private renderOAuth(): React.ReactNode {\n const oAuthProviderInfos = this.context.serverInfo.oAuthProviderInfos;\n const currentOAuthConnections =\n this.state.newOAuthConnections ?? this.state.user?.oAuthConnections;\n if (\n this.state.user?.name.toLowerCase() === \"admin\" || // admin user can't have OAuthConnections\n currentOAuthConnections == null ||\n !oAuthProviderInfos ||\n !Object.keys(oAuthProviderInfos).length\n )\n return null;\n\n const save = async () => {\n this.setState({\n saving: true\n });\n\n if (!this.state.user) {\n this.addError(\n new InternalError(ErrorCode.APP_FAIL, {\n jsError: Error(\"this.state.user is null in user edit save\")\n })\n );\n return;\n }\n\n const response = await UserClient.editUser({\n id: this.state.user.id,\n oAuthConnections: this.state.newOAuthConnections\n });\n if (response.code == StatusCode.OK) {\n this.loadUser(response.payload);\n } else {\n this.addError(response.error);\n }\n\n this.setState({\n saving: false\n });\n };\n\n const canEditOauth = this.canEdit || this.canEditOwnOAuth;\n const filteredConnections = this.state.newOAuthConnections.filter(\n oAuthConnection => !!oAuthProviderInfos[oAuthConnection.provider]\n );\n\n return (\n }>\n

\n \n

\n
\n {filteredConnections.map((oAuthConnection, idx) => (\n
\n \n \n \n \n \n \n \n \n {\n const provider = event.target.value as OAuthProvider;\n this.setState(prev => {\n return {\n newOAuthConnections: prev.newOAuthConnections.map(\n (val, idx2) => {\n if (idx2 !== idx) return val;\n return {\n ...val,\n provider: provider\n };\n }\n )\n };\n });\n }}>\n {Object.keys(oAuthProviderInfos).map(key => {\n return (\n \n {txt => (\n \n {txt}\n \n )}\n \n );\n })}\n \n \n \n \n {\n const externalUserId = event.target.value;\n this.setState(prev => {\n return {\n newOAuthConnections: prev.newOAuthConnections.map(\n (val, idx2) => {\n if (idx2 !== idx) return val;\n return {\n ...val,\n externalUserId: externalUserId\n };\n }\n )\n };\n });\n }}\n disabled={!canEditOauth}\n />\n \n \n \n
\n ))}\n
\n {canEditOauth ? (\n
\n {\n this.setState(prev => {\n return {\n newOAuthConnections: [\n ...prev.newOAuthConnections,\n {\n provider: Object.keys(\n oAuthProviderInfos\n )[0] as OAuthProvider,\n externalUserId: \"\"\n }\n ]\n };\n });\n }}>\n \n \n x.externalUserId.trim().length === 0\n ) ||\n //If all values match up, and the lenght is the same, there has been no change, disable the button\n (this.state.newOAuthConnections.every(\n (val, idx) =>\n val.externalUserId ===\n (this.state.user?.oAuthConnections ?? [])[idx]\n ?.externalUserId &&\n val.provider ===\n (this.state.user?.oAuthConnections ?? [])[idx]?.provider\n ) &&\n this.state.newOAuthConnections.length ===\n this.state.user?.oAuthConnections?.length)\n }>\n \n \n
\n ) : (\n \"\"\n )}\n \n );\n }\n\n private renderGroups(): React.ReactNode {\n //We can't use addError() here because that would trigger a rerender which would call this again and add another error and so on\n if (!this.state.user || !this.state.groups) {\n return (\n \n );\n }\n\n return (\n
\n {!this.canRead ? (\n \n \n \n ) : null}\n

\n \n {this.state.user.group ? (\n this.state.user.group.name\n ) : (\n \n )}\n

\n
\n \n \n \n \n \n \n \n \n \n \n {this.state.groups.map(group => {\n return (\n \n \n \n \n \n {this.state.renameGroup !== group ? (\n \n \n {group.name}\n
\n \n
\n \n \n \n \n }>\n {({ ref, ...triggerHandler }) => (\n \n this.setState({\n renameGroup: group,\n renameGroupName: group.name\n })\n }\n {...triggerHandler}>\n
}>\n \n
\n \n )}\n \n \n \n \n }\n show={\n (!group.users?.length || !this.canEdit) &&\n group.id !== this.state.user!.group?.id\n ? false\n : undefined\n }>\n {({ ref, ...triggerHandler }) => (\n \n void this.deleteGroup(group.id)\n }\n {...triggerHandler}>\n
}>\n \n
\n \n )}\n \n
\n ) : (\n \n {\n this.setState({\n renameGroupName: event.target.value\n });\n }}\n />\n void this.renameGroup()}>\n \n \n \n this.setState({\n renameGroup: null,\n renameGroupName: null\n })\n }>\n \n \n \n )}\n
\n
\n );\n })}\n
\n {/*
\n

\n \n

*/}\n \n \n \n \n \n \n {\n this.setState({\n createGroupName: event.target.value\n });\n }}\n disabled={!this.canEdit}\n />\n \n
\n );\n }\n\n private async changeGroup(e: FormEvent) {\n if (!this.state.user) {\n this.addError(\n new InternalError(ErrorCode.APP_FAIL, {\n jsError: Error(\"this.state.user is null in changegroup\")\n })\n );\n return;\n }\n\n this.setState({\n loading: true\n });\n const id = (e.target as HTMLInputElement).id;\n if (id === \"group_none\") {\n const response = await UserClient.editUser({\n id: this.state.user.id,\n permissionSet: resolvePermissionSet(this.state.user)\n });\n if (response.code === StatusCode.OK) {\n await this.loadGroups();\n this.loadUser(response.payload);\n } else {\n this.addError(response.error);\n }\n } else {\n const realID = parseInt(id.substr(6));\n const response = await UserClient.editUser({\n id: this.state.user.id,\n group: {\n id: realID\n } as UserGroup\n });\n if (response.code === StatusCode.OK) {\n await this.loadGroups();\n this.loadUser(response.payload);\n } else {\n this.addError(response.error);\n }\n }\n this.setState({\n loading: false\n });\n }\n\n private async renameGroup(): Promise {\n // safety\n const renameGroup = this.state.renameGroup;\n const newName = this.state.renameGroupName;\n if (!renameGroup || !(newName && newName.trim().length > 0)) {\n return;\n }\n\n this.setState({\n loading: true\n });\n const response = await UserGroupClient.updateGroup({\n id: renameGroup.id,\n name: newName\n });\n if (response.code === StatusCode.OK) {\n this.setState(prev => {\n const newGroups = [...prev.groups];\n newGroups[newGroups.findIndex(group => group.id === renameGroup.id)] =\n response.payload;\n return {\n groups: newGroups,\n renameGroup: null,\n renameGroupName: null\n };\n });\n } else {\n this.addError(response.error);\n }\n this.setState({\n loading: false\n });\n }\n\n private async deleteGroup(id: number) {\n this.setState({\n loading: true\n });\n const response = await UserGroupClient.deleteGroup(id);\n if (response.code === StatusCode.OK) {\n this.setState(prev => {\n return {\n groups: prev.groups.filter(group => group.id !== id)\n };\n });\n } else {\n this.addError(response.error);\n }\n this.setState({\n loading: false\n });\n }\n\n private async createGroup() {\n this.setState({\n loading: true\n });\n const response = await UserGroupClient.createGroup(\n this.state.createGroupName,\n resolvePermissionSet(this.state.user!)\n );\n if (response.code === StatusCode.OK) {\n this.setState(prev => {\n return {\n groups: prev.groups.concat([response.payload])\n };\n });\n } else {\n this.addError(response.error);\n }\n this.setState({\n loading: false\n });\n }\n\n private renderPerms(\n enumname: \"permsadmin\" | \"permsinstance\",\n permprefix: string\n ): React.ReactNode {\n const inputs: Record<\n string,\n { input: React.RefObject; field: React.RefObject }\n > = {};\n const setBold = (\n inputRef: React.RefObject,\n fieldRef: React.RefObject,\n defaultVal: boolean\n ) => {\n if (!inputRef.current || !fieldRef.current) return;\n if (inputRef.current.checked !== defaultVal) {\n fieldRef.current.classList.add(\"font-weight-bold\");\n } else {\n fieldRef.current.classList.remove(\"font-weight-bold\");\n }\n };\n const setAll = (val: boolean): (() => void) => {\n return () => {\n for (const [permname, refs] of Object.entries(inputs)) {\n if (!refs.input.current) return;\n\n refs.input.current.checked = val;\n setBold(refs.input, refs.field, this.state[enumname][permname].currentVal);\n }\n };\n };\n const resetAll = () => {\n for (const [permname, refs] of Object.entries(inputs)) {\n if (!refs.input.current) continue;\n\n refs.input.current.checked = this.state[enumname][permname].currentVal;\n setBold(refs.input, refs.field, this.state[enumname][permname].currentVal);\n }\n };\n const save = async () => {\n this.setState({\n saving: true\n });\n let bitflag = 0;\n\n for (const [permname, refs] of Object.entries(inputs)) {\n if (!refs.input.current) continue;\n\n bitflag += refs.input.current.checked ? this.state[enumname][permname].bitflag : 0;\n }\n\n if (!this.state.user) {\n this.addError(\n new InternalError(ErrorCode.APP_FAIL, {\n jsError: Error(\"this.state.user is null in user edit save\")\n })\n );\n return;\n }\n\n if (this.state.user.group) {\n const newset = Object.assign(\n Object.assign({}, this.state.user.group.permissionSet),\n {\n [enumname == \"permsadmin\"\n ? \"AdministrationRights\"\n : \"InstanceManagerRights\"]: bitflag\n } as\n | { AdministrationRights: AdministrationRights }\n | { InstanceManagerRights: InstanceManagerRights }\n ) as PermissionSet;\n const response = await UserGroupClient.updateGroup({\n id: this.state.user.group.id,\n permissionSet: newset\n });\n if (response.code == StatusCode.OK) {\n const response2 = await UserClient.getUser(this.state.user.id);\n if (response2.code == StatusCode.OK) {\n this.loadUser(response2.payload);\n } else {\n this.addError(response2.error);\n }\n } else {\n this.addError(response.error);\n }\n } else {\n const newset = Object.assign(Object.assign({}, this.state.user.permissionSet), {\n [enumname == \"permsadmin\"\n ? \"AdministrationRights\"\n : \"InstanceManagerRights\"]: bitflag\n } as { AdministrationRights: AdministrationRights } | { InstanceManagerRights: InstanceManagerRights });\n const response = await UserClient.editUser({\n id: this.state.user.id,\n permissionSet: newset\n });\n if (response.code == StatusCode.OK) {\n this.loadUser(response.payload);\n } else {\n this.addError(response.error);\n }\n }\n\n this.setState({\n saving: false\n });\n };\n return (\n \n {this.state.user?.group ? (\n \n \n \n ) : null}\n {this.canEdit ? (\n \n
\n \n
\n {\" \"}\n {\" \"}\n \n
\n ) : (\n \"\"\n )}\n \n
\n {Object.entries(this.state[enumname]).map(([perm, value]) => {\n const inputRef = React.createRef();\n const fieldRef = React.createRef();\n inputs[perm] = { input: inputRef, field: fieldRef };\n return (\n \n \n \n \n \n }>\n {({ ref, ...triggerHandler }) => (\n \n
\n \n
\n
\n {\n setBold(\n inputRef,\n fieldRef,\n value.currentVal\n );\n }}\n />\n }>\n \n
\n \n
\n )}\n \n
\n
\n );\n })}\n
\n \n {this.canEdit ? (\n \n ) : (\n \"\"\n )}\n
\n );\n }\n}\nUserEdit.contextType = GeneralContext;\nexport default withRouter(UserEdit);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"variant\", \"pill\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n pill: false\n};\nvar Badge = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n pill = _ref.pill,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'span' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'badge');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, prefix, pill && prefix + \"-pill\", variant && prefix + \"-\" + variant)\n }));\n});\nBadge.displayName = 'Badge';\nBadge.defaultProps = defaultProps;\nexport default Badge;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _excluded = [\"bsPrefix\", \"size\", \"hasValidation\", \"className\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n hasValidation = _ref.hasValidation,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size, hasValidation && 'has-validation')\n }));\n});\nInputGroup.displayName = 'InputGroup';\nInputGroup.Text = InputGroupText;\nInputGroup.Radio = InputGroupRadio;\nInputGroup.Checkbox = InputGroupCheckbox;\nInputGroup.Append = InputGroupAppend;\nInputGroup.Prepend = InputGroupPrepend;\nexport default InputGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"noGutters\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar defaultProps = {\n noGutters: false\n};\nvar Row = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n noGutters = _ref.noGutters,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n var sizePrefix = decoratedBsPrefix + \"-cols\";\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var cols;\n\n if (propValue != null && typeof propValue === 'object') {\n cols = propValue.cols;\n } else {\n cols = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (cols != null) classes.push(\"\" + sizePrefix + infix + \"-\" + cols);\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames.apply(void 0, [className, decoratedBsPrefix, noGutters && 'no-gutters'].concat(classes))\n }));\n});\nRow.displayName = 'Row';\nRow.defaultProps = defaultProps;\nexport default Row;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabPane from './TabPane';\n\n/* eslint-disable react/require-render-return, react/no-unused-prop-types */\nvar Tab = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Tab, _React$Component);\n\n function Tab() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n _proto.render = function render() {\n throw new Error('ReactBootstrap: The `Tab` component is not meant to be rendered! ' + \"It's an abstract component that is only valid as a direct Child of the `Tabs` Component. \" + 'For custom tabs components use TabPane and TabsContainer directly');\n return null;\n };\n\n return Tab;\n}(React.Component);\n\nTab.Container = TabContainer;\nTab.Content = TabContent;\nTab.Pane = TabPane;\nexport default Tab;","import React, { useMemo } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport TabContext from './TabContext';\nimport SelectableContext from './SelectableContext';\n\nvar TabContainer = function TabContainer(props) {\n var _useUncontrolled = useUncontrolled(props, {\n activeKey: 'onSelect'\n }),\n id = _useUncontrolled.id,\n generateCustomChildId = _useUncontrolled.generateChildId,\n onSelect = _useUncontrolled.onSelect,\n activeKey = _useUncontrolled.activeKey,\n transition = _useUncontrolled.transition,\n mountOnEnter = _useUncontrolled.mountOnEnter,\n unmountOnExit = _useUncontrolled.unmountOnExit,\n children = _useUncontrolled.children;\n\n var generateChildId = useMemo(function () {\n return generateCustomChildId || function (key, type) {\n return id ? id + \"-\" + type + \"-\" + key : null;\n };\n }, [id, generateCustomChildId]);\n var tabContext = useMemo(function () {\n return {\n onSelect: onSelect,\n activeKey: activeKey,\n transition: transition,\n mountOnEnter: mountOnEnter || false,\n unmountOnExit: unmountOnExit || false,\n getControlledId: function getControlledId(key) {\n return generateChildId(key, 'tabpane');\n },\n getControllerId: function getControllerId(key) {\n return generateChildId(key, 'tab');\n }\n };\n }, [onSelect, activeKey, transition, mountOnEnter, unmountOnExit, generateChildId]);\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: tabContext\n }, /*#__PURE__*/React.createElement(SelectableContext.Provider, {\n value: onSelect || null\n }, children));\n};\n\nexport default TabContainer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"as\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar TabContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'tab-content');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, decoratedBsPrefix)\n }));\n});\nexport default TabContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeKey\", \"getControlledId\", \"getControllerId\"],\n _excluded2 = [\"bsPrefix\", \"className\", \"active\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"mountOnEnter\", \"unmountOnExit\", \"transition\", \"as\", \"eventKey\"];\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport TabContext from './TabContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Fade from './Fade';\n\nfunction useTabContext(props) {\n var context = useContext(TabContext);\n if (!context) return props;\n\n var activeKey = context.activeKey,\n getControlledId = context.getControlledId,\n getControllerId = context.getControllerId,\n rest = _objectWithoutPropertiesLoose(context, _excluded);\n\n var shouldTransition = props.transition !== false && rest.transition !== false;\n var key = makeEventKey(props.eventKey);\n return _extends({}, props, {\n active: props.active == null && key != null ? makeEventKey(activeKey) === key : props.active,\n id: getControlledId(props.eventKey),\n 'aria-labelledby': getControllerId(props.eventKey),\n transition: shouldTransition && (props.transition || rest.transition || Fade),\n mountOnEnter: props.mountOnEnter != null ? props.mountOnEnter : rest.mountOnEnter,\n unmountOnExit: props.unmountOnExit != null ? props.unmountOnExit : rest.unmountOnExit\n });\n}\n\nvar TabPane = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _useTabContext = useTabContext(props),\n bsPrefix = _useTabContext.bsPrefix,\n className = _useTabContext.className,\n active = _useTabContext.active,\n onEnter = _useTabContext.onEnter,\n onEntering = _useTabContext.onEntering,\n onEntered = _useTabContext.onEntered,\n onExit = _useTabContext.onExit,\n onExiting = _useTabContext.onExiting,\n onExited = _useTabContext.onExited,\n mountOnEnter = _useTabContext.mountOnEnter,\n unmountOnExit = _useTabContext.unmountOnExit,\n Transition = _useTabContext.transition,\n _useTabContext$as = _useTabContext.as,\n Component = _useTabContext$as === void 0 ? 'div' : _useTabContext$as,\n _ = _useTabContext.eventKey,\n rest = _objectWithoutPropertiesLoose(_useTabContext, _excluded2);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'tab-pane');\n if (!active && !Transition && unmountOnExit) return null;\n var pane = /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n role: \"tabpanel\",\n \"aria-hidden\": !active,\n className: classNames(className, prefix, {\n active: active\n })\n }));\n if (Transition) pane = /*#__PURE__*/React.createElement(Transition, {\n in: active,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit\n }, pane); // We provide an empty the TabContext so `