All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.b6fe2bb5-8538.645d53752013b6db27fb.js.map Maven / Gradle / Ivy

{"version":3,"file":"b6fe2bb5-8538.645d53752013b6db27fb.js","mappings":"kMAoBMA,GAASC,EAAAA,EAAAA,GAAgB,CAC7BC,OAAQC,EAAAA,EAAAA,OACRC,QAAS,SAACC,GAAD,MAAkB,CACzBC,QAAS,2BAAF,OAA6BD,EAAYE,MAAzC,+BAETC,MAAO,SAACA,EAAOH,GAAR,MAAyB,CAC9BC,QAAS,oCAAF,OAAsCD,EAAYE,MAAlD,iCAAgFC,OAIrFC,GAAOR,EAAAA,EAAAA,GAAgB,CAC3BC,OAAQC,EAAAA,EAAAA,KACRK,MAAO,SAACA,EAAOE,GAAR,MAA2B,CAChCJ,QAAS,2CAAF,OAA6CI,EAA7C,iCAAmFF,KAE5FG,kBAAkB,IAGdC,GAAaX,EAAAA,EAAAA,GAAgB,CACjCC,OAAQC,EAAAA,EAAAA,WACRK,MAAO,SAACA,GAAD,MAAY,CACjBF,QAAS,6DAAF,OAA+DE,OAqE1E,SACER,OAAAA,EACAa,QAnEaZ,EAAAA,EAAAA,GAAgB,CAC7BC,OAAQC,EAAAA,EAAAA,OACRC,QAAS,SAACM,EAAeL,GAAhB,MAAiC,CACxCC,QAAS,2BAAF,OAA6BD,EAAYE,MAAzC,gCAETC,MAAO,SAACA,EAAOE,EAAeL,GAAvB,MAAwC,CAC7CC,QAAS,oCAAF,OAAsCD,EAAYE,MAAlD,iCAAgFC,OA8DzFC,KAAAA,EACAG,WAAAA,EACAE,QA5DoBb,EAAAA,EAAAA,GAAgB,CACpCC,OAAQC,EAAAA,EAAAA,OACRC,QAAS,SAACM,EAAeK,GAAhB,MAAsC,CAC7CT,QAAS,2BAAF,OAA6BS,EAA7B,+BAETP,MAAO,SAACA,EAAOE,EAAeK,GAAvB,MAA6C,CAClDT,QAAS,oCAAF,OAAsCS,EAAtC,iCAA+EP,OAuDxFQ,gBAnDqBf,EAAAA,EAAAA,GAAgB,CACrCC,OAAQC,EAAAA,EAAAA,eACRK,MAAO,SAACA,GAAD,MAAY,CACjBF,QAAS,uCAAF,OAAyCE,OAiDlDS,WA7CgBhB,EAAAA,EAAAA,GAAgB,CAChCC,OAAQC,EAAAA,EAAAA,UACRK,MAAO,SAACA,GAAD,MAAY,CACjBF,QAAS,kCAAF,OAAoCE,OA2C7CU,kBAvCuBjB,EAAAA,EAAAA,GAAgB,CACvCC,OAAQC,EAAAA,EAAAA,iBACRC,QAAS,SAACM,EAAeK,GAAhB,MAAsC,CAC7CT,QAAS,2BAAF,OAA6BS,EAA7B,gBAAqDL,EAAgB,YAAc,cAAnF,mBAETF,MAAO,SAACA,EAAOE,EAAeK,GAAvB,MAA6C,CAClDT,QAAS,sCAAF,OAAwCS,EAAxC,iCAAiFP,OAkC1FW,uBA9B4BlB,EAAAA,EAAAA,GAAgB,CAC5CC,OAAQC,EAAAA,EAAAA,sBACRK,MAAO,SAACA,GAAD,MAAY,CACjBF,QAAS,uDAAF,OAAyDE,OA4BlEY,oBAxByBnB,EAAAA,EAAAA,GAAgB,CACzCC,OAAQC,EAAAA,EAAAA,mBACRK,MAAO,SAACE,EAAeF,GAAhB,MAA2B,CAChCF,QAAS,kEAAF,OAAoEI,EAApE,iCAA0GF,OAsBnHa,uBAlB4BpB,EAAAA,EAAAA,GAAgB,CAC5CC,OAAQC,EAAAA,EAAAA,sBACRK,MAAO,SAACA,GAAD,MAAY,CACjBF,QAAS,kEAAF,OAAoEE,S,siBCnD1Dc,EAAAA,WAGnB,WACEC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACA,kCACAC,KAAKC,OAAS,CACZf,GAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,aAAAA,EACAC,QAAAA,EACAC,cAAAA,EACAC,eAAAA,EACAC,cAAAA,G,0BAIJ,WACE,OAAOC,KAAKC,OAAOf,K,oBAGrB,WACE,OAAOc,KAAKC,OAAOd,W,gBAGrB,WACE,OAAOa,KAAKC,OAAOd,W,oBAGrB,WACE,OAAOa,KAAKC,OAAOb,W,uBAGrB,WACE,OAAOY,KAAKC,OAAOb,W,iBAGrB,WACE,OAAOY,KAAKC,OAAOZ,Q,iBAGrB,WACE,OAAOW,KAAKC,OAAOX,Q,oBAGrB,WACE,OAAOU,KAAKC,OAAOV,W,oBAGrB,WACE,OAAOS,KAAKC,OAAOT,W,yBAGrB,WACE,OAAOQ,KAAKC,OAAOR,gB,yBAGrB,WACE,OAAOO,KAAKC,OAAOP,gB,wBAGrB,WACE,OAAOM,KAAKC,OAAON,e,mBAGrB,WACE,OAAOK,KAAKC,OAAOL,U,yBAGrB,WACE,OAAOI,KAAKC,OAAOJ,gB,0BAGrB,WACE,OAAOG,KAAKC,OAAOH,iB,yBAGrB,WACE,OAAOE,KAAKC,OAAOF,gB,uBAGrB,WACE,MAeIC,KAAKC,OAdPf,EADF,EACEA,GACAC,EAFF,EAEEA,SACAC,EAHF,EAGEA,SACAC,EAJF,EAIEA,MACAC,EALF,EAKEA,MACAC,EANF,EAMEA,SACAC,EAPF,EAOEA,SACAC,EARF,EAQEA,cACAC,EATF,EASEA,cACAC,EAVF,EAUEA,aACAC,EAXF,EAWEA,QACAC,EAZF,EAYEA,cACAC,EAbF,EAaEA,eACAC,EAdF,EAcEA,cAIF,OAAO,IAAIG,EAAQC,EAAAA,IAAc,CAC/BjB,GAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,aAAAA,EACAC,QAAAA,EACAC,cAAAA,EACAC,eAAAA,EACAC,cAAAA,O,oBAsCJ,WACE,MAeIC,KAAKC,OAdPf,EADF,EACEA,GACAC,EAFF,EAEEA,SACAC,EAHF,EAGEA,SACAC,EAJF,EAIEA,MACAC,EALF,EAKEA,MACAC,EANF,EAMEA,SACAC,EAPF,EAOEA,SACAC,EARF,EAQEA,cACAC,EATF,EASEA,cACAC,EAVF,EAUEA,aACAC,EAXF,EAWEA,QACAC,EAZF,EAYEA,cACAC,EAbF,EAaEA,eACAC,EAdF,EAcEA,cAGF,MAAO,CACLb,GAAAA,EACAC,SAAAA,EACAiB,UAAWhB,EACXC,MAAAA,EACAC,MAAOA,EAAMe,UACbC,UAAWf,EACXgB,cAAef,EACfgB,eAAgBf,EAChBgB,eAAgBf,EAChBgB,cAAef,EACfC,QAAAA,EACAe,gBAAiBd,EACjBe,iBAAkBd,EAClBe,eAAgBd,M,qBAlEpB,SACEb,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,OAAO,IAAId,EACTC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,K,sBAwCJ,SAAgBe,GACd,IACE5B,EAcE4B,EAdF5B,GACAC,EAaE2B,EAbF3B,SACWC,EAYT0B,EAZFV,UACAf,EAWEyB,EAXFzB,MACAC,EAUEwB,EAVFxB,MACWC,EASTuB,EATFR,UACed,EAQbsB,EARFP,cACgBd,EAOdqB,EAPFN,eACgBd,EAMdoB,EANFL,eACed,EAKbmB,EALFJ,cACAd,EAIEkB,EAJFlB,QACiBC,EAGfiB,EAHFH,gBACkBb,EAEhBgB,EAFFF,iBACgBb,EACde,EADFD,eAGF,OAAO5B,EAAatB,OAAOuB,EACzBC,EACAC,EACAC,EACAc,EAAAA,IAAcb,GACdC,MAAAA,GAAAA,EACAC,MAAAA,GAAAA,EACAC,MAAAA,GAAAA,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,K,qBAIJ,WAEE,OAAO,IAAIG,M,EArPMjB,GA2PfiB,EAAAA,WAGJ,aAAmD,IAAvCY,EAAuC,uDAAjBX,EAAAA,MAAiB,iCACjDH,KAAKc,MAAQA,E,4BAGf,SAAGA,GACD,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,KAAMD,M,sBAG1C,SAASA,GACP,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,WAAYD,M,sBAGhD,SAASA,GACP,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,WAAYD,M,mBAGhD,SAAMA,GACJ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,QAASD,M,mBAG7C,SAAMA,GACJ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,QAASD,M,sBAG7C,SAASA,GACP,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,WAAYD,M,sBAGhD,SAASA,GACP,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,WAAYD,M,2BAGhD,SAAcA,GACZ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,gBAAiBD,M,2BAGrD,SAAcA,GACZ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,gBAAiBD,M,0BAGrD,SAAaA,GACX,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,eAAgBD,M,qBAGpD,SAAQA,GACN,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,UAAWD,M,2BAG/C,SAAcA,GACZ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,gBAAiBD,M,4BAGrD,SAAeA,GACb,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,iBAAkBD,M,2BAGtD,SAAcA,GACZ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,gBAAiBD,M,mBAGrD,WACE,MAeId,KAAKc,MAAME,WAdb9B,EADF,EACEA,GACAC,EAFF,EAEEA,SACAC,EAHF,EAGEA,SACAC,EAJF,EAIEA,MACAC,EALF,EAKEA,MACAC,EANF,EAMEA,SACAC,EAPF,EAOEA,SACAC,EARF,EAQEA,cACAC,EATF,EASEA,cACAC,EAVF,EAUEA,aACAC,EAXF,EAWEA,QACAC,EAZF,EAYEA,cACAC,EAbF,EAaEA,eACAC,EAdF,EAcEA,cAGF,OAAO,IAAId,EACTC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,O,EA/FAG,I,ykBCtQN,IAoBqBe,EAAAA,WAGnB,WACE/B,EACAhB,EACAgD,EACAC,EACAC,GACA,kCACApB,KAAKC,OAAS,CACZf,GAAAA,EACAhB,MAAAA,EACAgD,YAAAA,EACAC,aAAAA,EACAC,OAAAA,G,0BAIJ,WACE,OAAOpB,KAAKC,OAAOf,K,iBAGrB,WACE,OAAOc,KAAKC,OAAO/B,Q,uBAGrB,WACE,OAAO8B,KAAKC,OAAOiB,c,wBAGrB,WACE,OAAOlB,KAAKC,OAAOkB,e,kBAGrB,WACE,OAAOnB,KAAKC,OAAOmB,S,uBAGrB,WACE,MAMIpB,KAAKC,OALPf,EADF,EACEA,GACAhB,EAFF,EAEEA,MACAgD,EAHF,EAGEA,YACAC,EAJF,EAIEA,aACAC,EALF,EAKEA,OAIF,OAAO,IAAIlB,EAAQC,EAAAA,IAAc,CAC/BjB,GAAAA,EACAhB,MAAAA,EACAgD,YAAAA,EACAC,aAAAA,EACAC,OAAAA,O,oBAIJ,WACE,MAMIpB,KAAKC,OALPf,EADF,EACEA,GACAhB,EAFF,EAEEA,MACAgD,EAHF,EAGEA,YAHF,IAIEC,aAAAA,OAJF,MAIiBhB,EAAAA,OAJjB,EAQMkB,EA7EW,SAACD,GACpB,IAAME,GAAcC,EAAAA,EAAAA,IAAsBH,EAAuBI,MAAM,GAEvE,OAAIF,GAAmD,mBAA7BA,EAAYG,aAC7BH,EAAYG,aAAaL,GAG3BA,EAsEmBK,CARxB,EAKEL,QAKF,MAAO,CACLlC,GAAAA,EACAhB,MAAAA,EACAgD,YAAAA,EACAQ,cAAeP,EAAaQ,OAC5BP,OAAQC,M,uBAIZ,SAAgBP,GACd,IACE5B,EAKE4B,EALF5B,GACAhB,EAIE4C,EAJF5C,MACAgD,EAGEJ,EAHFI,YACeC,EAEbL,EAFFY,cAIIL,EA3Ga,SAACD,GACtB,IAAME,GAAcC,EAAAA,EAAAA,IAAsBH,EAAuBI,MAAM,GAEvE,OAAIF,GAAqD,mBAA/BA,EAAYM,eAC5BN,EAAsDM,eAAeR,GAGxEA,EAoGmBQ,CAFpBd,EADFM,QAKF,OAAO,IAAIH,EACT/B,EACAhB,EACAgD,EACAf,EAAAA,KAAegB,GACfE,K,qBAIJ,WAEE,OAAO,IAAInB,M,EApGMe,GA0Gff,EAAAA,WAGJ,aAA2D,IAA/CY,EAA+C,uDAAjBX,EAAAA,MAAiB,iCACzDH,KAAKc,MAAQA,E,4BAGf,SAAGA,GACD,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,KAAMD,M,mBAG1C,SAAMA,GACJ,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,QAASD,M,yBAG7C,SAAYA,GACV,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,cAAeD,M,0BAGnD,SAAaA,GACX,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,eAAgBD,M,oBAGpD,SAAOA,GACL,OAAO,IAAIZ,EAAQF,KAAKc,MAAMC,IAAI,SAAUD,M,mBAG9C,WACE,MAMId,KAAKc,MAAME,WALb9B,EADF,EACEA,GACAhB,EAFF,EAEEA,MACAgD,EAHF,EAGEA,YACAC,EAJF,EAIEA,aACAC,EALF,EAKEA,OAGF,OAAO,IAAIH,EACT/B,EACAhB,EACAgD,EACAC,EACAC,O,EAzCAlB,G,gGCxDOpC,GAAwB+D,EAAAA,EAAAA,IACnC,kBACA,kBAAMC,IAAAA,cAAkC,CACtCnE,OAAQ,CAAEoE,aAAa,GACvBtD,OAAQ,CAAEsD,aAAa,GACvB3D,KAAM,CAAE2D,aAAa,GACrBxD,WAAY,CAAEwD,aAAa,GAC3BjD,sBAAuB,CAAEiD,aAAa,GACtChD,mBAAoB,CAAEgD,aAAa,GACnC/C,sBAAuB,CAAE+C,aAAa,GACtClD,iBAAkB,CAAEkD,aAAa,GACjCpD,eAAgB,CAAEoD,aAAa,GAC/BnD,UAAW,CAAEmD,aAAa,GAC1BvD,OAAQ,CAAEuD,aAAa,SAeQC,EAAAA,EAAAA,IACjC,kBACA,kBAAMF,IAAAA,YAA4C,CAChDG,YAAa,CAACnE,GAEdoE,gBAHgD,WAI9C,MAAO,CACLC,eAAgB,OAIpBxE,OATgD,SASzCK,GACL,IAAMoE,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,SAA4CF,KAC7DG,GAAUC,EAAAA,EAAAA,IAAM,OAAQJ,EAAKpE,GAAayE,MAAK,SAACC,GAAD,OAAaA,EAAS,CACzEC,QAAS1B,EAAsB2B,SAASF,EAAOC,UAC7C,QAGJ,OAFA7E,EAAsBH,OAAO4E,QAAQA,GAE9BA,GAGTnE,KAnBgD,SAmB3CyE,GACH,IAAMT,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,KAAwCQ,mBAAmBD,IAAYT,KACxFG,GAAUC,EAAAA,EAAAA,IAAM,MAAOJ,GAAKK,MAAK,SAACC,GAAD,OAAaA,EAAS,CAC3DC,QAAS1B,EAAsB2B,SAASF,EAAOC,UAC7C,QAIJ,OAFA7E,EAAsBM,KAAKmE,QAAQA,GAE5BA,GAGThE,WA9BgD,WA+B9C,IAAM6D,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,aAAgDF,KACjEG,GAAUC,EAAAA,EAAAA,IAAM,MAAOJ,GAAKK,MAAK,SAACC,GAAD,OAAaA,EAAS,CAC3DC,QAASD,EAAOC,QAAU1B,EAAsB2B,SAASF,EAAOC,SAAW,KAC3EI,QAAS,CAAEC,cAAeN,EAAOK,QAAQE,iBACvC,QAIJ,OAFAnF,EAAsBS,WAAWgE,QAAQA,GAElCA,GAGT/D,OA1CgD,SA0CzCqE,EAA0EK,GAC/E,IAAMd,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,OAA0CO,GAAWT,KACtEG,GAAUC,EAAAA,EAAAA,IAAM,MAAOJ,EAAKc,GAAST,MAAK,SAACC,GAAD,OAAaA,EAAS,CACpEC,QAAS1B,EAAsB2B,SAASF,EAAOC,UAC7C,QAIJ,OAFA7E,EAAsBU,OAAO+D,QAAQA,GAE9BA,GAlDuC,gBAqDzCM,GACL,IAAMT,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,OAA0CO,GAAWT,KACtEG,GAAUC,EAAAA,EAAAA,IAAM,SAAUJ,GAGhC,OAFAtE,EAAqB,OAAQyE,QAAQA,GAE9BA,GAGT5D,eA7DgD,SA6DjCuE,GACb,IAAMd,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,iBAAoDF,KACrEG,GAAUC,EAAAA,EAAAA,IAAM,OAAQJ,EAAKc,GAGnC,OAFApF,EAAsBa,eAAe4D,QAAQA,GAEtCA,GAGT3D,UArEgD,SAqEtCsE,GACR,IAAMd,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,YAA+CF,KAChEG,GAAUC,EAAAA,EAAAA,IAAM,OAAQJ,EAAKc,GAGnC,OAFApF,EAAsBc,UAAU2D,QAAQA,GAEjCA,GAGT1D,iBA7EgD,SA6E/BgE,GACf,IAAMT,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,sBAAyDF,KAC1EG,GAAUC,EAAAA,EAAAA,IAAM,OAAQJ,EAAK,CAAEe,eAAgBN,IAGrD,OAFA/E,EAAsBe,iBAAiB0D,QAAQA,GAExCA,GAGTzD,sBArFgD,YAqFwC,IAAhEsE,EAAgE,EAAhEA,KAAMC,EAA0D,EAA1DA,QAASC,EAAiD,EAAjDA,MAC/BlB,GAAMmB,EAAAA,EAAAA,GAAcjB,EAAAA,EAAAA,yBAAAA,oBAAuDF,IAAKgB,EAAMC,EAASC,GAC/Ff,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWD,IACrCK,MAAK,SAACe,GAAD,MAA0C,CAC9CT,QAAS,CACPU,cAAeD,EAAST,QAAQI,gBAElCO,KAAMvD,EAAAA,KAAeqD,EAASG,SAASC,KAAI,SAACjB,GAAD,OAAa1B,EAAsB2B,SAASD,OACvFkB,WAAY,CACVT,KAAMI,EAASJ,KACfC,QAASG,EAASM,SAClBR,MAAOE,EAASF,MAChBS,MAAOP,EAASO,MAChBC,MAAOR,EAASQ,WAMtB,OAFAlG,EAAsBgB,sBAAsByD,QAAQA,GAE7CA,GAGTxD,mBA3GgD,SA2G7BV,EA3G6B,GA2GiD,IAA7D+E,EAA6D,EAA7DA,KAAMC,EAAuD,EAAvDA,QAASC,EAA8C,EAA9CA,MAC3ClB,GAAMmB,EAAAA,EAAAA,GAAcjB,EAAAA,EAAAA,yBAAAA,mBAAsDjE,GAAe+D,IAAKgB,EAAMC,EAASC,GAE7Gf,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWD,IACrCK,MAAK,SAACe,GAAD,MAAuC,CAC3CE,KAAMvD,EAAAA,KAAeqD,EAASS,MAAML,KAAI,SAACM,GAAD,OAAUjF,EAAAA,EAAAA,SAAsBiF,OACxEL,WAAY,CACVT,KAAMI,EAASJ,KACfC,QAASG,EAASM,SAClBR,MAAOE,EAASF,MAChBS,MAAOP,EAASO,MAChBC,MAAOR,EAASQ,WAMtB,OAFAlG,EAAsBiB,mBAAmBwD,QAAQA,GAE1CA,GAGTvD,sBA/HgD,WAgI9C,IAAMoD,GAAMC,EAAAA,EAAAA,IAAWC,EAAAA,EAAAA,yBAAAA,wBAA2DF,KAG5EG,EAAU,IAAIrC,EAAAA,GAAQ,MAAOkC,GAChC+B,QACA1B,MAAK,SAACe,GAAD,OAAcA,EAASY,UAC5B3B,MAAK,SAACC,GACL,OAAOA,EAAOC,WAKlB,OAFA7E,EAAsBkB,sBAAsBuD,QAAQA,GAE7CA,S,2ECzQAhB,EAAuB,SAACC,GAA8C,IAAhC6C,EAAgC,wDAC3EC,EAAeC,EAAAA,YAAAA,QAAoB,4BAA8B,GACjEjD,EAAcgD,EAAaE,MAAK,SAACC,GAAD,OAAaA,EAAQC,OAASlD,KAEpE,IAAKF,GAAe+C,EAClB,MAAM,IAAIM,MAAJ,4CAA+CnD,EAA/C,iBAGR,OAAOF,GAGIsD,EAA+B,WAC1C,IAAMC,EAAuBN,EAAAA,YAAAA,QAAoB,yDAEjD,OAAOM,MAAAA,OAAP,EAAOA,EAAuB,IAGnBC,EAAoC,WAC/C,IAAMC,EAAcR,EAAAA,YAAAA,QAAoB,6BAExC,OAAOQ,MAAAA,OAAP,EAAOA,EAAc","sources":["webpack://graylog-web-interface/./src/domainActions/authentication/AuthenticationDomain.ts","webpack://graylog-web-interface/./src/logic/users/UserOverview.ts","webpack://graylog-web-interface/./src/logic/authentication/AuthenticationBackend.ts","webpack://graylog-web-interface/./src/stores/authentication/AuthenticationStore.ts","webpack://graylog-web-interface/./src/util/AuthenticationService.ts"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { AuthenticationActions } from 'stores/authentication/AuthenticationStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst create = notifyingAction({\n  action: AuthenticationActions.create,\n  success: (authBackend) => ({\n    message: `Authentication service \"${authBackend.title} was created successfully`,\n  }),\n  error: (error, authBackend) => ({\n    message: `Creating authentication service \"${authBackend.title}\" failed with status: ${error}`,\n  }),\n});\n\nconst load = notifyingAction({\n  action: AuthenticationActions.load,\n  error: (error, authBackendId) => ({\n    message: `Loading authentication service with id \"${authBackendId}\" failed with status: ${error}`,\n  }),\n  notFoundRedirect: true,\n});\n\nconst loadActive = notifyingAction({\n  action: AuthenticationActions.loadActive,\n  error: (error) => ({\n    message: `Loading active authentication service failed with status: ${error}`,\n  }),\n});\n\nconst update = notifyingAction({\n  action: AuthenticationActions.update,\n  success: (authBackendId, authBackend) => ({\n    message: `Authentication service \"${authBackend.title}\" was updated successfully`,\n  }),\n  error: (error, authBackendId, authBackend) => ({\n    message: `Updating authentication service \"${authBackend.title}\" failed with status: ${error}`,\n  }),\n});\n\nconst deleteBackend = notifyingAction({\n  action: AuthenticationActions.delete,\n  success: (authBackendId, authBackendTitle) => ({\n    message: `Authentication service \"${authBackendTitle} was deleted successfully`,\n  }),\n  error: (error, authBackendId, authBackendTitle) => ({\n    message: `Deleting authentication service \"${authBackendTitle}\" failed with status: ${error}`,\n  }),\n});\n\nconst testConnection = notifyingAction({\n  action: AuthenticationActions.testConnection,\n  error: (error) => ({\n    message: `Connection test failed with status: ${error}`,\n  }),\n});\n\nconst testLogin = notifyingAction({\n  action: AuthenticationActions.testLogin,\n  error: (error) => ({\n    message: `Login test failed with status: ${error}`,\n  }),\n});\n\nconst setActiveBackend = notifyingAction({\n  action: AuthenticationActions.setActiveBackend,\n  success: (authBackendId, authBackendTitle) => ({\n    message: `Authentication service \"${authBackendTitle} was ${authBackendId ? 'activated' : 'deactivated'} successfully`,\n  }),\n  error: (error, authBackendId, authBackendTitle) => ({\n    message: `Activating authentication service \"${authBackendTitle}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadBackendsPaginated = notifyingAction({\n  action: AuthenticationActions.loadBackendsPaginated,\n  error: (error) => ({\n    message: `Loading authentication services failed with status: ${error}`,\n  }),\n});\n\nconst loadUsersPaginated = notifyingAction({\n  action: AuthenticationActions.loadUsersPaginated,\n  error: (authBackendId, error) => ({\n    message: `Loading synchronized users for authentication service with id \"${authBackendId}\" failed with status: ${error}`,\n  }),\n});\n\nconst loadActiveBackendType = notifyingAction({\n  action: AuthenticationActions.loadActiveBackendType,\n  error: (error) => ({\n    message: `Loading active authentication service type failed with status: ${error}`,\n  }),\n});\n\nexport default {\n  create,\n  update,\n  load,\n  loadActive,\n  delete: deleteBackend,\n  testConnection,\n  testLogin,\n  setActiveBackend,\n  loadBackendsPaginated,\n  loadUsersPaginated,\n  loadActiveBackendType,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { $PropertyType } from 'utility-types';\nimport * as Immutable from 'immutable';\n\nexport type AccountStatus = 'enabled' | 'disabled' | 'deleted';\n\nexport type UserOverviewJSON = {\n  id: string;\n  username: string;\n  full_name: string;\n  email: string;\n  external_user: boolean | null | undefined;\n  roles: Array;\n  read_only: boolean | null | undefined;\n  session_active: boolean | null | undefined;\n  client_address: string;\n  last_activity: string | null | undefined;\n  enabled: boolean;\n  auth_service_id: string;\n  auth_service_uid: string;\n  account_status: AccountStatus;\n};\n\ntype InternalState = {\n  id: string;\n  username: string;\n  fullName: string;\n  email: string;\n  roles: Immutable.Set;\n  readOnly: boolean;\n  external: boolean;\n  sessionActive: boolean;\n  clientAddress: string;\n  lastActivity: string | null | undefined;\n  enabled: boolean;\n  authServiceId: string;\n  authServiceUid: string;\n  accountStatus: AccountStatus;\n};\n\nexport default class UserOverview {\n  _value: InternalState;\n\n  constructor(\n    id: $PropertyType,\n    username: $PropertyType,\n    fullName: $PropertyType,\n    email: $PropertyType,\n    roles: $PropertyType,\n    readOnly: $PropertyType,\n    external: $PropertyType,\n    sessionActive: $PropertyType,\n    clientAddress: $PropertyType,\n    lastActivity: $PropertyType,\n    enabled: $PropertyType,\n    authServiceId: $PropertyType,\n    authServiceUid: $PropertyType,\n    accountStatus: $PropertyType,\n  ) {\n    this._value = {\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    };\n  }\n\n  get id() {\n    return this._value.id;\n  }\n\n  get username() {\n    return this._value.username;\n  }\n\n  get name() {\n    return this._value.username;\n  }\n\n  get fullName() {\n    return this._value.fullName;\n  }\n\n  get description() {\n    return this._value.fullName;\n  }\n\n  get email() {\n    return this._value.email;\n  }\n\n  get roles() {\n    return this._value.roles;\n  }\n\n  get readOnly() {\n    return this._value.readOnly;\n  }\n\n  get external() {\n    return this._value.external;\n  }\n\n  get sessionActive() {\n    return this._value.sessionActive;\n  }\n\n  get clientAddress() {\n    return this._value.clientAddress;\n  }\n\n  get lastActivity() {\n    return this._value.lastActivity;\n  }\n\n  get enabled() {\n    return this._value.enabled;\n  }\n\n  get authServiceId() {\n    return this._value.authServiceId;\n  }\n\n  get authServiceUid() {\n    return this._value.authServiceUid;\n  }\n\n  get accountStatus() {\n    return this._value.accountStatus;\n  }\n\n  toBuilder() {\n    const {\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    } = this._value;\n\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    return new Builder(Immutable.Map({\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    }));\n  }\n\n  static create(\n    id: $PropertyType,\n    username: $PropertyType,\n    fullName: $PropertyType,\n    email: $PropertyType,\n    roles: $PropertyType,\n    readOnly: $PropertyType,\n    external: $PropertyType,\n    sessionActive: $PropertyType,\n    clientAddress: $PropertyType,\n    lastActivity: $PropertyType,\n    enabled: $PropertyType,\n    authServiceId: $PropertyType,\n    authServiceUid: $PropertyType,\n    accountStatus: $PropertyType,\n  ) {\n    return new UserOverview(\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    );\n  }\n\n  toJSON(): UserOverviewJSON {\n    const {\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    } = this._value;\n\n    return {\n      id,\n      username,\n      full_name: fullName,\n      email,\n      roles: roles.toArray(),\n      read_only: readOnly,\n      external_user: external,\n      session_active: sessionActive,\n      client_address: clientAddress,\n      last_activity: lastActivity,\n      enabled,\n      auth_service_id: authServiceId,\n      auth_service_uid: authServiceUid,\n      account_status: accountStatus,\n    };\n  }\n\n  static fromJSON(value: UserOverviewJSON) {\n    const {\n      id,\n      username,\n      full_name: fullName,\n      email,\n      roles,\n      read_only: readOnly,\n      external_user: external,\n      session_active: sessionActive,\n      client_address: clientAddress,\n      last_activity: lastActivity,\n      enabled,\n      auth_service_id: authServiceId,\n      auth_service_uid: authServiceUid,\n      account_status: accountStatus,\n    } = value;\n\n    return UserOverview.create(id,\n      username,\n      fullName,\n      email,\n      Immutable.Set(roles),\n      readOnly ?? false,\n      external ?? false,\n      sessionActive ?? false,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  static builder(): Builder {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    return new Builder();\n  }\n}\n\ntype BuilderState = Immutable.Map;\n\nclass Builder {\n  value: BuilderState;\n\n  constructor(value: BuilderState = Immutable.Map()) {\n    this.value = value;\n  }\n\n  id(value: $PropertyType) {\n    return new Builder(this.value.set('id', value));\n  }\n\n  username(value: $PropertyType) {\n    return new Builder(this.value.set('username', value));\n  }\n\n  fullName(value: $PropertyType) {\n    return new Builder(this.value.set('fullName', value));\n  }\n\n  email(value: $PropertyType) {\n    return new Builder(this.value.set('email', value));\n  }\n\n  roles(value: $PropertyType) {\n    return new Builder(this.value.set('roles', value));\n  }\n\n  readOnly(value: $PropertyType) {\n    return new Builder(this.value.set('readOnly', value));\n  }\n\n  external(value: $PropertyType) {\n    return new Builder(this.value.set('external', value));\n  }\n\n  sessionActive(value: $PropertyType) {\n    return new Builder(this.value.set('sessionActive', value));\n  }\n\n  clientAddress(value: $PropertyType) {\n    return new Builder(this.value.set('clientAddress', value));\n  }\n\n  lastActivity(value: $PropertyType) {\n    return new Builder(this.value.set('lastActivity', value));\n  }\n\n  enabled(value: $PropertyType) {\n    return new Builder(this.value.set('enabled', value));\n  }\n\n  authServiceId(value: $PropertyType) {\n    return new Builder(this.value.set('authServiceId', value));\n  }\n\n  authServiceUid(value: $PropertyType) {\n    return new Builder(this.value.set('authServiceUid', value));\n  }\n\n  accountStatus(value: $PropertyType) {\n    return new Builder(this.value.set('accountStatus', value));\n  }\n\n  build() {\n    const {\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    } = this.value.toObject();\n\n    return new UserOverview(\n      id,\n      username,\n      fullName,\n      email,\n      roles,\n      readOnly,\n      external,\n      sessionActive,\n      clientAddress,\n      lastActivity,\n      enabled,\n      authServiceId,\n      authServiceUid,\n      accountStatus,\n    );\n  }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { DirectoryServiceAuthenticationService } from 'components/authentication/types';\nimport { getAuthServicePlugin } from 'util/AuthenticationService';\nimport type { DirectoryServiceBackendConfig } from 'logic/authentication/directoryServices/types';\nimport type { OktaBackendConfig } from 'logic/authentication/okta/types';\n\ntype InternalState = {\n  id: string,\n  title: string,\n  description: string,\n  defaultRoles: Immutable.List,\n  config: DirectoryServiceBackendConfig | OktaBackendConfig,\n};\n\ntype TypedConfig = {\n  type: string,\n};\n\nexport type AuthenticationBackendJSON = {\n  id: string,\n  title: string,\n  description: string,\n  default_roles: Array,\n  config: DirectoryServiceBackendConfig | OktaBackendConfig,\n};\n\nconst configFromJson = (config: $PropertyType) => {\n  const authService = getAuthServicePlugin((config as TypedConfig).type, true);\n\n  if (authService && typeof authService.configFromJson === 'function') {\n    return (authService as DirectoryServiceAuthenticationService).configFromJson(config);\n  }\n\n  return config;\n};\n\nconst configToJson = (config: $PropertyType) => {\n  const authService = getAuthServicePlugin((config as TypedConfig).type, true);\n\n  if (authService && typeof authService.configToJson === 'function') {\n    return authService.configToJson(config);\n  }\n\n  return config;\n};\n\nexport default class AuthenticationBackend {\n  _value: InternalState;\n\n  constructor(\n    id: $PropertyType,\n    title: $PropertyType,\n    description: $PropertyType,\n    defaultRoles: $PropertyType,\n    config: $PropertyType,\n  ) {\n    this._value = {\n      id,\n      title,\n      description,\n      defaultRoles,\n      config,\n    };\n  }\n\n  get id(): $PropertyType {\n    return this._value.id;\n  }\n\n  get title(): $PropertyType {\n    return this._value.title;\n  }\n\n  get description(): $PropertyType {\n    return this._value.description;\n  }\n\n  get defaultRoles(): $PropertyType {\n    return this._value.defaultRoles;\n  }\n\n  get config(): $PropertyType {\n    return this._value.config;\n  }\n\n  toBuilder(): Builder {\n    const {\n      id,\n      title,\n      description,\n      defaultRoles,\n      config,\n    } = this._value;\n\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    return new Builder(Immutable.Map({\n      id,\n      title,\n      description,\n      defaultRoles,\n      config,\n    }));\n  }\n\n  toJSON() {\n    const {\n      id,\n      title,\n      description,\n      defaultRoles = Immutable.List(),\n      config,\n    } = this._value;\n\n    const formattedConfig = configToJson(config);\n\n    return {\n      id,\n      title,\n      description,\n      default_roles: defaultRoles.toJS(),\n      config: formattedConfig,\n    };\n  }\n\n  static fromJSON(value: AuthenticationBackendJSON) {\n    const {\n      id,\n      title,\n      description,\n      default_roles: defaultRoles,\n      config,\n    } = value;\n\n    const formattedConfig = configFromJson(config);\n\n    return new AuthenticationBackend(\n      id,\n      title,\n      description,\n      Immutable.List(defaultRoles),\n      formattedConfig,\n    );\n  }\n\n  static builder(): Builder {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    return new Builder();\n  }\n}\n\ntype InternalBuilderState = Immutable.Map;\n\nclass Builder {\n  value: InternalBuilderState;\n\n  constructor(value: InternalBuilderState = Immutable.Map()) {\n    this.value = value;\n  }\n\n  id(value: $PropertyType): Builder {\n    return new Builder(this.value.set('id', value));\n  }\n\n  title(value: $PropertyType): Builder {\n    return new Builder(this.value.set('title', value));\n  }\n\n  description(value: $PropertyType): Builder {\n    return new Builder(this.value.set('description', value));\n  }\n\n  defaultRoles(value: $PropertyType): Builder {\n    return new Builder(this.value.set('defaultRoles', value));\n  }\n\n  config(value: $PropertyType): Builder {\n    return new Builder(this.value.set('config', value));\n  }\n\n  build(): AuthenticationBackend {\n    const {\n      id,\n      title,\n      description,\n      defaultRoles,\n      config,\n    } = this.value.toObject();\n\n    return new AuthenticationBackend(\n      id,\n      title,\n      description,\n      defaultRoles,\n      config,\n    );\n  }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types/dist/utility-types';\n\nimport AuthenticationBackend from 'logic/authentication/AuthenticationBackend';\nimport { qualifyUrl } from 'util/URLUtils';\nimport fetch, { Builder } from 'logic/rest/FetchProvider';\nimport { singletonStore, singletonActions } from 'logic/singleton';\nimport PaginationURL from 'util/PaginationURL';\nimport type { PaginatedUsers } from 'stores/users/UsersStore';\nimport type { PaginatedResponseType, Pagination, PaginatedList } from 'stores/PaginationTypes';\nimport type { AuthenticationBackendJSON } from 'logic/authentication/AuthenticationBackend';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport type { UserOverviewJSON } from 'logic/users/UserOverview';\nimport UserOverview from 'logic/users/UserOverview';\n\nexport type AuthenticationBackendCreate = {\n  title: $PropertyType,\n  description: $PropertyType,\n  config: {\n    type: string,\n  },\n};\n\nexport type AuthenticationBackendUpdate = {\n  id: $PropertyType,\n  title: $PropertyType,\n  description: $PropertyType,\n  config: {\n    type: string,\n  },\n};\n\nexport type PaginatedBackends = PaginatedList & {\n  context: {\n    activeBackend: AuthenticationBackend | undefined | null,\n  },\n};\n\nexport type ConnectionTestPayload = {\n  backend_configuration: AuthenticationBackendCreate,\n  backend_id: string | undefined | null,\n};\nexport type ConnectionTestResult = {\n  success: boolean,\n  message: string,\n  errors: Array,\n};\nexport type LoginTestPayload = {\n  backend_id: string | undefined | null,\n  backend_configuration: AuthenticationBackendCreate,\n  user_login: {\n    username: string,\n    password: string,\n  },\n};\n\nexport type LoginTestResult = {\n  success: boolean,\n  message: string,\n  errors: Array,\n  result: {\n    user_exists: boolean,\n    login_success: boolean,\n    user_details: {\n      dn: string,\n      entryUUID: string,\n      uid: string,\n      cn: string,\n      email: string,\n    },\n  },\n};\n\nexport type LoadResponse = {\n  backend: AuthenticationBackend | undefined | null,\n};\n\nexport type LoadActiveResponse = LoadResponse & {\n  context: {\n    backendsTotal: number,\n  },\n};\n\nexport type ActionsType = {\n  create: (AuthenticationBackendCreate) => Promise,\n  delete: (authBackendId: $PropertyType | undefined | null, authBackendTitle: $PropertyType) => Promise,\n  load: (id: string) => Promise,\n  loadActive: () => Promise,\n  loadBackendsPaginated: (pagination: Pagination) => Promise,\n  loadUsersPaginated: (authBackendId: string, pagination: Pagination) => Promise,\n  loadActiveBackendType: () => Promise,\n  setActiveBackend: (authBackendId: $PropertyType | undefined | null, authBackendTitle: $PropertyType) => Promise,\n  testConnection: (payload: ConnectionTestPayload) => Promise,\n  testLogin: (payload: LoginTestPayload) => Promise,\n  update: (id: string, AuthenticationBackendUpdate) => Promise,\n};\n\nexport const AuthenticationActions = singletonActions(\n  'Authentication',\n  () => Reflux.createActions({\n    create: { asyncResult: true },\n    delete: { asyncResult: true },\n    load: { asyncResult: true },\n    loadActive: { asyncResult: true },\n    loadBackendsPaginated: { asyncResult: true },\n    loadUsersPaginated: { asyncResult: true },\n    loadActiveBackendType: { asyncResult: true },\n    setActiveBackend: { asyncResult: true },\n    testConnection: { asyncResult: true },\n    testLogin: { asyncResult: true },\n    update: { asyncResult: true },\n  }),\n);\n\ntype PaginatedBackendsResponse = PaginatedResponseType & {\n  context: {\n    active_backend: AuthenticationBackendJSON | null | undefined,\n  },\n  backends: Array,\n};\n\ntype PaginatedUsersResponse = PaginatedResponseType & {\n  users: Array,\n};\n\nexport const AuthenticationStore = singletonStore(\n  'Authentication',\n  () => Reflux.createStore<{ authenticators: any }>({\n    listenables: [AuthenticationActions],\n\n    getInitialState() {\n      return {\n        authenticators: null,\n      };\n    },\n\n    create(authBackend: AuthenticationBackendCreate): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.create().url);\n      const promise = fetch('POST', url, authBackend).then((result) => (result ? {\n        backend: AuthenticationBackend.fromJSON(result.backend),\n      } : null));\n      AuthenticationActions.create.promise(promise);\n\n      return promise;\n    },\n\n    load(backendId: string): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.load(encodeURIComponent(backendId)).url);\n      const promise = fetch('GET', url).then((result) => (result ? {\n        backend: AuthenticationBackend.fromJSON(result.backend),\n      } : null));\n\n      AuthenticationActions.load.promise(promise);\n\n      return promise;\n    },\n\n    loadActive(): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.loadActive().url);\n      const promise = fetch('GET', url).then((result) => (result ? {\n        backend: result.backend ? AuthenticationBackend.fromJSON(result.backend) : null,\n        context: { backendsTotal: result.context.backends_total },\n      } : null));\n\n      AuthenticationActions.loadActive.promise(promise);\n\n      return promise;\n    },\n\n    update(backendId: null | undefined | $PropertyType, payload: AuthenticationBackendUpdate): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.update(backendId).url);\n      const promise = fetch('PUT', url, payload).then((result) => (result ? {\n        backend: AuthenticationBackend.fromJSON(result.backend),\n      } : null));\n\n      AuthenticationActions.update.promise(promise);\n\n      return promise;\n    },\n\n    delete(backendId: null | undefined | $PropertyType): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.delete(backendId).url);\n      const promise = fetch('DELETE', url);\n      AuthenticationActions.delete.promise(promise);\n\n      return promise;\n    },\n\n    testConnection(payload: ConnectionTestPayload): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.testConnection().url);\n      const promise = fetch('POST', url, payload);\n      AuthenticationActions.testConnection.promise(promise);\n\n      return promise;\n    },\n\n    testLogin(payload: LoginTestPayload): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.testLogin().url);\n      const promise = fetch('POST', url, payload);\n      AuthenticationActions.testLogin.promise(promise);\n\n      return promise;\n    },\n\n    setActiveBackend(backendId: null | undefined | $PropertyType): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.updateConfiguration().url);\n      const promise = fetch('POST', url, { active_backend: backendId });\n      AuthenticationActions.setActiveBackend.promise(promise);\n\n      return promise;\n    },\n\n    loadBackendsPaginated({ page, perPage, query }: Pagination): Promise {\n      const url = PaginationURL(ApiRoutes.AuthenticationController.servicesPaginated().url, page, perPage, query);\n      const promise = fetch('GET', qualifyUrl(url))\n        .then((response: PaginatedBackendsResponse) => ({\n          context: {\n            activeBackend: response.context.active_backend,\n          },\n          list: Immutable.List(response.backends.map((backend) => AuthenticationBackend.fromJSON(backend))),\n          pagination: {\n            page: response.page,\n            perPage: response.per_page,\n            query: response.query,\n            count: response.count,\n            total: response.total,\n          },\n        }));\n\n      AuthenticationActions.loadBackendsPaginated.promise(promise);\n\n      return promise;\n    },\n\n    loadUsersPaginated(authBackendId, { page, perPage, query }: Pagination): Promise {\n      const url = PaginationURL(ApiRoutes.AuthenticationController.loadUsersPaginated(authBackendId).url, page, perPage, query);\n\n      const promise = fetch('GET', qualifyUrl(url))\n        .then((response: PaginatedUsersResponse) => ({\n          list: Immutable.List(response.users.map((user) => UserOverview.fromJSON(user))),\n          pagination: {\n            page: response.page,\n            perPage: response.per_page,\n            query: response.query,\n            count: response.count,\n            total: response.total,\n          },\n        }));\n\n      AuthenticationActions.loadUsersPaginated.promise(promise);\n\n      return promise;\n    },\n\n    loadActiveBackendType(): Promise {\n      const url = qualifyUrl(ApiRoutes.AuthenticationController.loadActiveBackendType().url);\n\n      // no authentication required\n      const promise = new Builder('GET', url)\n        .build()\n        .then((response) => response.json())\n        .then((result: { backend: string | undefined }) => {\n          return result.backend;\n        });\n\n      AuthenticationActions.loadActiveBackendType.promise(promise);\n\n      return promise;\n    },\n  }),\n);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getAuthServicePlugin = (type: string, throwError: boolean = false) => {\n  const authServices = PluginStore.exports('authentication.services') || [];\n  const authService = authServices.find((service) => service.name === type);\n\n  if (!authService && throwError) {\n    throw new Error(`Authentication service with type \"${type}\" not found.`);\n  }\n\n  return authService;\n};\n\nexport const getEnterpriseGroupSyncPlugin = () => {\n  const authGroupSyncPlugins = PluginStore.exports('authentication.enterprise.directoryServices.groupSync');\n\n  return authGroupSyncPlugins?.[0];\n};\n\nexport const getEnterpriseAuthenticationPlugin = () => {\n  const authPlugins = PluginStore.exports('authentication.enterprise');\n\n  return authPlugins?.[0];\n};\n"],"names":["create","notifyingAction","action","AuthenticationActions","success","authBackend","message","title","error","load","authBackendId","notFoundRedirect","loadActive","update","delete","authBackendTitle","testConnection","testLogin","setActiveBackend","loadBackendsPaginated","loadUsersPaginated","loadActiveBackendType","UserOverview","id","username","fullName","email","roles","readOnly","external","sessionActive","clientAddress","lastActivity","enabled","authServiceId","authServiceUid","accountStatus","this","_value","Builder","Immutable","full_name","toArray","read_only","external_user","session_active","client_address","last_activity","auth_service_id","auth_service_uid","account_status","value","set","toObject","AuthenticationBackend","description","defaultRoles","config","formattedConfig","authService","getAuthServicePlugin","type","configToJson","default_roles","toJS","configFromJson","singletonActions","Reflux","asyncResult","singletonStore","listenables","getInitialState","authenticators","url","qualifyUrl","ApiRoutes","promise","fetch","then","result","backend","fromJSON","backendId","encodeURIComponent","context","backendsTotal","backends_total","payload","active_backend","page","perPage","query","PaginationURL","response","activeBackend","list","backends","map","pagination","per_page","count","total","users","user","build","json","throwError","authServices","PluginStore","find","service","name","Error","getEnterpriseGroupSyncPlugin","authGroupSyncPlugins","getEnterpriseAuthenticationPlugin","authPlugins"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy