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

web-interface.assets.325e2d4b-3744.9b429b276b23eaf97127.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"file":"325e2d4b-3744.9b429b276b23eaf97127.js","mappings":"4LAmCA,QAAeA,EAAf,C,oHCLA,MAAMC,EAASC,EAAAA,QAAAA,IAAAA,WAAH,mEAAGA,CAAH,8GAUCC,EAAWD,EAAAA,QAAAA,GAAAA,WAAH,qEAAGA,CAAH,wCAKfE,GAAiBF,EAAAA,EAAAA,SAAOG,EAAAA,GAAV,sFAAGH,EAAgB,QAAC,MAAEI,GAAH,SAAeC,EAAAA,EAAAA,KAAd,CAAD,mCAExBD,EAAME,MAAMC,KAAKC,GAFO,IAKjCC,EAAmB,QAAC,SAAEC,EAAF,MAAYC,EAAZ,YAAmBC,GAAc,EAAjC,cAAwCC,EAAxC,UAAuDC,GAAxD,SACvB,gBAAC,KAAD,CAAKA,UAAY,WAAUA,KACzB,gBAAC,KAAD,CAAKC,GAAI,IACP,gBAAChB,EAAD,KACE,gBAACE,EAAD,KACGU,EACAC,GAAe,gBAACV,EAAD,CAAgBc,KAAK,GAAGC,MAAO,KAEhDJ,GAEFH,GAVkB,EAezBD,EAAiBS,aAAe,CAC9BJ,UAAW,GACXF,aAAa,EACbC,mBAAeM,GAGjB,S,4DCrDA,MAUA,EAVoBnB,EAAAA,QAAAA,IAAAA,WAAH,uDAAGA,EAAmC,QAAC,SAAEoB,EAAF,MAAYhB,GAAb,SAAyBC,EAAAA,EAAAA,KAAxB,CAAD,kHAE5Be,QAAAA,EAAY,UAGhBhB,EAAMiB,YAAYC,IAAIC,GALU,G,0HCKvD,MAYA,EAZ8B,IAC5B,gBAAC,KAAD,CAAKT,UAAU,WACb,gBAAC,KAAD,CAAKC,GAAI,IACP,gBAAC,KAAD,CAAOS,QAAQ,QACb,gBAAC,KAAD,CAAMC,KAAK,gBAAiB,IAAI,iDAA2B,2BAD7D,sMAGqC,yBAAG,gBAAC,KAAD,CAAMA,KAAK,cAAd,UAHrC,uGAG+K,gBAAC,IAAD,CAAmBC,KAAMC,EAAAA,EAAAA,MAAAA,YAA8BX,KAAK,kBAH3O,M,4FCLN,MAAMY,EACJ,gBAAC,KAAD,CAASC,GAAG,yBAAyBlB,MAAM,sBACzC,yBAAG,0DACH,gBAAC,KAAD,CAAOmB,WAAS,GACd,6BACE,0BACE,mCACA,2CAGJ,6BACE,0BACE,kCACA,wCAEF,0BACE,yCACA,wDAIN,yBAAG,2CACH,6EACmD,2BACjD,kDAA8B,6BAWpC,EANuB,IACrB,gBAAC,KAAD,CAAgBC,QAAQ,QAAQC,WAAS,EAACC,UAAU,QAAQC,QAASN,GACnE,gBAAC,KAAD,CAAQJ,QAAQ,QAAO,gBAAC,KAAD,CAAMC,KAAK,qB,0GCvBtC,MAsBA,EAtBwB,QAAC,OAAEU,EAAF,eAAUC,GAAX,SACtB,gBAAC,KAAD,KACE,gBAAC,IAAD,CAAeC,GAAIC,EAAAA,GAAAA,OAAAA,MAAAA,KAAyBH,IAC1C,gBAAC,KAAD,CAAQX,QAAQ,WAAhB,kBAIAY,GACA,gBAAC,IAAD,CAAeC,GAAIC,EAAAA,GAAAA,OAAAA,MAAAA,KAAyBH,IAC1C,gBAAC,KAAD,CAAQX,QAAQ,WAAhB,cAKJ,gBAAC,IAAD,CAAea,GAAIC,EAAAA,GAAAA,OAAAA,MAAAA,OAAAA,KAAgCH,IACjD,gBAAC,KAAD,CAAQX,QAAQ,WAAhB,gBAfkB,C,0ECTxB,MA2DA,GACEe,MA5DWC,EAAAA,EAAAA,GAAgB,CAC3BC,OAAQC,EAAAA,EAAAA,KACRC,MAAO,CAACA,EAAOC,KAAR,CACLC,QAAU,yBAAwBD,0BAA+BD,MAEnEG,kBAAkB,IAwDlBC,QArDmBP,EAAAA,EAAAA,GAAgB,CACnCC,OAAQC,EAAAA,EAAAA,OACRM,QAAS,CAACC,EAASC,KAAV,CACPL,QAAU,SAAQK,gCAEpBP,MAAO,CAACA,EAAOM,EAASC,KAAjB,CACLL,QAAU,kBAAiBK,0BAAiCP,QAgD9DQ,YA5CiBX,EAAAA,EAAAA,GAAgB,CACjCC,OAAQC,EAAAA,EAAAA,WACRM,QAAS,CAACC,EAASG,KAAV,CACPP,QAAU,UAASO,EAAUC,KAAK,sCAEpCV,MAAO,CAACA,EAAOM,EAASG,KAAjB,CACLP,QAAU,oBAAmBO,EAAUC,KAAK,8BAA8BV,QAuC5EW,cAnCmBd,EAAAA,EAAAA,GAAgB,CACnCC,OAAQC,EAAAA,EAAAA,aACRM,QAAS,CAACC,EAASM,KAAV,CACPV,QAAU,SAAQU,mCAEpBZ,MAAO,CAACA,EAAOM,EAASM,KAAjB,CACLV,QAAU,kBAAiBU,0BAAiCZ,QA8B9Da,kBA1BuBhB,EAAAA,EAAAA,GAAgB,CACvCC,OAAQC,EAAAA,EAAAA,iBACRC,MAAO,CAACA,EAAOM,EAASC,KAAjB,CACLL,QAAU,2BAA0BK,0BAAiCP,QAwBvEc,kBApBuBjB,EAAAA,EAAAA,GAAgB,CACvCC,OAAQC,EAAAA,EAAAA,iBACRC,MAAO,CAACA,EAAOY,KAAR,CACLV,QAAU,2BAA0BU,0BAAiCZ,QAkBvEe,oBAdyBlB,EAAAA,EAAAA,GAAgB,CACzCC,OAAQC,EAAAA,EAAAA,mBACRC,MAAQA,IAAD,CACLE,QAAU,qCAAoCF,Q,0MC/ClD,MAAMgB,EAAqB,CACzBC,mBAAmB,EACnBC,kBAAkB,EAClBC,uBAAuB,EACvBC,0BAA0B,GAiC5B,EA9B2B,IAAqE,YAAlEC,MAAQC,YAAaC,EAAf,SAAoCC,IAAwB,EAC1FF,EAAcC,GAAuBP,EAEzC,GAAIQ,EAAU,CACZ,MAAMC,EAA0B,CAC9BN,sBAAuBO,EAAAA,EAAAA,IAAU,yBACjCN,yBAA0BM,EAAAA,EAAAA,IAAU,4BACpC,CAACC,EAAAA,IAAyBD,EAAAA,EAAAA,IAAUC,EAAAA,KAEtCL,EAAc,IAAKA,KAAgBG,EACpC,CAED,MAAM,kBACJR,EADI,iBAEJC,EAFI,sBAGJC,EAHI,yBAIJC,GACEE,EAEJ,OACE,gBAACxD,EAAA,EAAD,CAAkBE,MAAM,eACtB,gBAAC,KAAD,CAAmB4D,MAAM,wBAAwBC,MAAOZ,SAAAA,IACxD,gBAAC,KAAD,CAAmBW,MAAM,mBAAmBC,MAAOX,SAAAA,IACnD,gBAAC,KAAD,CAAmBU,MAAM,qBAAqBC,MAAOV,SAAAA,IACrD,gBAAC,KAAD,CAAmBS,MAAM,wBAAwBC,MAAOT,SAAAA,IACxD,gBAAC,KAAD,CAAmBQ,MAAM,aAAaC,MAAK,oBAAEP,SAAF,aAAE,EAAcK,EAAAA,WAAhB,QAA2C,mBAN1F,ECIF,EAhCuB,IAYV,IAXXN,MAAM,SACJT,EADI,SAEJkB,EAFI,UAGJC,EAHI,SAIJC,EAJI,MAKJC,EALI,cAMJC,EANI,aAOJC,EAPI,cAQJC,EARI,cASJC,IAES,EAKX,OACE,gBAACvE,EAAA,EAAD,CAAkBE,MAAM,WACtB,gBAAC,KAAD,CAAmB4D,MAAM,WAAWC,MAAOjB,IALtCkB,IAAcC,IAAcC,GAMjB,gBAAC,KAAD,CAAmBJ,MAAM,YAAYC,MAAOC,IAC5D,gBAAC,KAAD,CAAmBF,MAAM,aAAaC,MAAOE,IAC7C,gBAAC,KAAD,CAAmBH,MAAM,YAAYC,MAAOG,IAC5C,gBAAC,KAAD,CAAmBJ,MAAM,iBAAiBC,MAAOI,IACjD,gBAAC,KAAD,CAAmBL,MAAM,iBAAiBC,MAAOK,IACjD,gBAAC,KAAD,CAAmBN,MAAM,gBAAgBC,MAAOM,IAChD,gBAAC,KAAD,CAAmBP,MAAM,YAAYC,MAAOO,IAC5C,gBAAC,KAAD,CAAmBR,MAAM,UAAUC,MAAyB,YAAlBQ,IAV9C,E,oDCZF,MAwBA,EAxBqB,IAAmC,IAAhChB,MAAM,SAAET,IAAwB,EACtD,MAAO0B,EAASC,IAAcC,EAAAA,EAAAA,WAAS,GAEjCC,GAAUC,EAAAA,EAAAA,cAAY,CAACC,EAAYC,KACvCL,GAAW,GAEJM,EAAAA,EAAAA,iBAAkCjC,EAAU+B,GAAYG,MAAMC,IAC/DH,GACFL,GAAW,GAGNQ,OAER,CAACnC,IAEJ,OACE,gBAAC9C,EAAA,EAAD,CAAkBE,MAAM,QAAQC,YAAaqE,GAC3C,gBAACnF,EAAA,EAAD,CAAuB6F,WAAW,qCACXC,OAAQR,EACRS,YAAa,gBAACC,EAAA,EAAD,QAJxC,E,oFCdF,MAAMC,EAAmBC,GACnBA,EACM,GAAEA,EAAexB,SAASwB,EAAeC,aAG5C,0BAGHC,EAAiB,IAAsF,IAArF,KAAEC,EAAF,GAAQtE,GAA6E,EAC3G,MAAOlB,EAAOyF,IAAYjB,EAAAA,EAAAA,YAc1B,IAZAkB,EAAAA,EAAAA,YAAU,KACHF,GAAStE,IAID,WAATsE,EACFG,EAAAA,GAAAA,IAAmBzE,GAAI4D,MAAK,QAAG9E,MAAO4F,GAAV,SAA4BH,EAASG,EAArC,IAE5BC,EAAAA,EAAAA,IAA0B3E,GAAI4D,MAAK,QAAG9E,MAAO8F,GAAV,SAA0BL,EAASK,EAAnC,IACpC,GACA,CAAC5E,EAAIsE,KAEHA,IAAStE,EACZ,OAAO,iDAGT,MAAM6E,EAAiB,WAATP,EAAoB7D,EAAAA,GAAAA,cAAqBT,GAAMS,EAAAA,GAAAA,eAAsBT,GAEnF,OACE,gBAAC,IAAD,CAAMQ,GAAIqE,GAAO,0BAAIC,EAAAA,EAAAA,YAAWR,IAAhC,MAA8CxF,EADhD,EAqBF,EAhBwB,QACtBqD,MAAM,SACJ4C,EADI,eAEJC,EAFI,eAGJb,EAHI,UAIJc,IALoB,SAQtB,gBAACrG,EAAA,EAAD,CAAkBE,MAAM,YACtB,gBAAC,KAAD,CAAmB4D,MAAM,mBAAmBC,MAAOuB,EAAgBC,KACnE,gBAAC,KAAD,CAAmBzB,MAAM,kBAAkBC,MAAOqC,IAClD,gBAAC,KAAD,CAAmBtC,MAAM,WAAWC,MAAOoC,IAC3C,gBAAC,KAAD,CAAmBrC,MAAM,YAAYC,MAAO,gBAAC0B,EAAD,CAAgBC,KAAMW,aAAF,EAAEA,EAAWX,KAAMtE,GAAIiF,aAAF,EAAEA,EAAWjF,OAZ9E,E,oDC3CxB,MAwDA,GAAiBkF,oCAxD2B,CAACrF,EAAcsF,EAAiBC,EAAeC,KACzF,MAAMC,EAAiB,IAAIC,MAAMJ,GAASK,KAAK,CAC7CxF,GAAI,yCACJsE,KAAM,SACNxF,MAAO,gBACP2G,OAAQ,CACN,CACEzF,GAAI,mBACJsE,KAAM,OACNxF,MAAO,eAKP4G,EAAiB,CACrBL,kBAAmBA,EACnBM,MAAO,IACPC,MAAOC,KAAKC,MAAM,IAAMX,GACxBtF,KAAMA,GAAQ,EACdkG,SAAUZ,GAAW,GACrBC,MAAOA,GAAS,GAChBY,SAAUV,EACVW,QAAS,CACPC,qBAAsB,CACpB,yCAA0C,UAKhD,OAAOC,QAAQC,QAAQ,CACrBC,KAAMC,EAAAA,KAAoBZ,EAAeM,SAASO,KAAKC,GAAOC,EAAAA,EAAAA,SAAsBD,MACpFP,QAAS,CAAES,oBAAqBhB,EAAeO,QAAQC,sBACvDzC,WAAY,CACV4B,kBAAmBK,EAAeL,kBAClCO,MAAOF,EAAeE,MACtBD,MAAOD,EAAeC,MACtB9F,KAAM6F,EAAe7F,KACrBsF,QAASO,EAAeK,SACxBX,MAAOM,EAAeN,QAT1B,EA2BoDuB,qBAbzB,CAC3BC,OAAQ,SACRC,UAAW,YACXC,OAAQ,eACRC,iBAAkB,oBASwDC,sBAN9C,CAC5BC,IAAK,QACLC,KAAM,SACNC,OAAQ,Y,oBCvDV,MAAMC,EACJ,gBAAC,KAAD,CAASpH,GAAG,oCAAoClB,MAAM,sBACpD,yBAAG,0DACH,gBAAC,KAAD,CAAOmB,WAAS,GACd,6BACE,0BACE,mCACA,2CAGJ,6BACE,0BACE,mCACA,0DAIN,yBAAG,2CACH,kFACwD,2BACtD,6CAAyB,6BAW/B,EANkC,IAChC,gBAAC,KAAD,CAAgBC,QAAQ,QAAQC,WAAS,EAACC,UAAU,QAAQC,QAAS+G,GACnE,gBAAC,KAAD,CAAQzH,QAAQ,QAAO,gBAAC,KAAD,CAAMC,KAAK,sBCnBhCyH,GAAmBlJ,EAAAA,EAAAA,SAAOmJ,EAAAA,IAAV,4FAAGnJ,CAAH,gEAOhBoJ,EAAUpJ,EAAAA,QAAAA,IAAAA,WAAH,wEAAGA,CAAH,mFAQPqJ,EAAgBrJ,EAAAA,QAAAA,IAAAA,WAAH,8EAAGA,CAAH,kIAYbsJ,GAAetJ,EAAAA,EAAAA,SAAOuJ,EAAAA,IAAV,wFAAGvJ,CAAH,mCAKZwJ,EAAoBC,OAAOC,QAAQC,EAAAA,sBAAwCvB,KAAI,QAAEwB,EAAKpF,GAAP,QAAmB,CAAED,MAAOC,EAAOA,MAAOoF,EAA1C,IAC/EC,EAAoBJ,OAAOC,QAAQC,EAAAA,uBAAyCvB,KAAI,QAAEwB,EAAKpF,GAAP,QAAmB,CAAED,MAAOC,EAAOA,MAAOoF,EAA1C,IA4BtF,EA1B6B,QAAC,SAAEE,EAAF,SAAYC,GAAb,SAC3B,gCACE,gBAACb,EAAD,CAAkBc,QAAS,IAAMF,EAAS,IACxBA,SAAUA,EACVG,mBAAoB,gBAAC,EAAD,MACpBC,UAAW,IAE7B,gBAACd,EAAD,KACE,gBAACC,EAAD,KACE,yBAAOc,QAAQ,sBAAf,eACA,gBAACb,EAAD,CAAcc,QAAQ,qBACRC,SAAWC,GAAuBP,EAAS,cAAeO,GAC1DC,QAASf,EACTgB,YAAY,yBAE5B,gBAACnB,EAAD,KACE,yBAAOc,QAAQ,qBAAf,cACA,gBAACb,EAAD,CAAcc,QAAQ,oBACRC,SAAWI,GAAuBV,EAAS,aAAcU,GACzDF,QAASV,EACTW,YAAY,0BApBL,E,oEChC7B,MAAME,EAAgB,QAAC,GAAErI,EAAF,MAAM1B,GAAP,SAAkD,gBAAC,IAAD,CAAM0B,GAAIA,GAAK1B,EAAjE,EAMhBgK,EAAiB,CAAC,EAA8BC,KAAkC,IAAhE,KAAEzE,EAAF,GAAQtE,EAAR,MAAYlB,GAAoD,EACtF,OAAQwF,GACN,IAAK,OACH,OAAK0E,EAAAA,EAAAA,IAAYD,EAAiB,cAE3B,gBAACF,EAAD,CAAerI,IAAIyI,EAAAA,EAAAA,IAAoBjJ,GAAKlB,MAAOA,IAFFA,EAG1D,IAAK,OACH,OAAKkK,EAAAA,EAAAA,IAAYD,EAAiB,cAE3B,gBAACF,EAAD,CAAerI,IAAIyI,EAAAA,EAAAA,IAAoBjJ,GAAKlB,MAAOA,IAFFA,EAG1D,IAAK,SACH,MAAO,WACT,QACE,MAjBqBwF,KACzB,MAAM,IAAI4E,MAAO,2CAA0C5E,IAA3D,EAgBW6E,CAAkB7E,GAZ7B,EAqCF,EArBmB,IAAuB,IAAtB,OAAEmB,GAAoB,EACxC,MAAM2D,GAAcC,EAAAA,EAAAA,KACdC,EAAe7D,EAAO8D,MAAK,CAACC,EAAIC,KAAOC,EAAAA,EAAAA,GAAeF,EAAGlF,KAAMmF,EAAGnF,QAASoF,EAAAA,EAAAA,GAAeF,EAAG1K,MAAO2K,EAAG3K,SAE7G,OACE,sBAAIG,UAAU,WACXqK,EAAa/C,KAAI,CAACoD,EAAOC,KACxB,MAAM9K,EAAQgK,EAAea,EAAOP,aAAR,EAAQA,EAAaS,aAC3CC,EAASF,GAASnE,EAAO/G,KAAO,EAEtC,OACE,gBAAC,WAAD,CAAgBqJ,IAAK4B,EAAM3J,IACxBlB,GACCgL,GAAU,KAHhB,IANN,ECxCF,ECUmC,QAAC,gBAClCC,EACAC,cAAc,OACZvE,EADY,MAEZ3G,EAFY,KAGZwF,EAHY,GAIZtE,IAN+B,SASjC,sBAAI+H,IAAKjJ,EAAQwF,GACf,sBAAIrF,UAAU,WACZ,gBAAC,IAAD,CAAMuB,IAAIyI,EAAAA,EAAAA,IAAoBjJ,IAAMlB,IAEtC,sBAAIG,UAAU,WAAWqF,GACzB,gBAAC,EAAD,CAAYmB,OAAQA,IACpB,sBAAIxG,UAAU,WAAW8K,GAfM,ECD7BE,EAAgB,CAAC,cAAe,cAAe,QAAS,cACxDC,EAAqB,CACzBrK,KAAM,EACNsF,QAAS,GACTC,MAAO,IASH+E,GAAsBhM,EAAAA,EAAAA,SAAOiM,EAAAA,IAAV,kGAAGjM,CAAH,4BCtBzB,ED4C+B,IAAwD,IAAvD,WAAEsK,EAAF,gBAAc4B,EAAd,WAA+BhH,GAAwB,EACrF,MAAOiH,EAAuBC,IAA4BjH,EAAAA,EAAAA,aACnDG,EAAY+G,IAAiBlH,EAAAA,EAAAA,UAAqB4G,IACnD,KAAE7D,EAAF,QAAQJ,EAASxC,YAAY,MAAEkC,GAAU,CAAEA,MAAO,IAAQ2E,GAAyB,CAAC,GACpF,KAAEzK,EAAF,MAAQuF,EAAR,kBAAeC,GAAsB5B,GAE3Ce,EAAAA,EAAAA,YAAU,IAfgB,EAACf,EAAY4G,EAAiBE,EAA0BlH,KAClFA,GAAW,GAEXgH,EAAgB5G,GAAYG,MAAM0G,IAChCjH,GAAW,GACXkH,EAAyBD,EAAzB,GAFF,EAYgBG,CAAoBhH,EAAY4G,EAAiBE,EAA0BlH,IAAa,CAACI,EAAY4G,EAAiBhH,IAKtI,OAAKiH,EAKH,gCACE,qBAAGrL,UAAU,eAAb,SACS0G,EADT,uCACoD8C,EADpD,KAGA,gBAAC0B,EAAD,CAAqBO,WAAY7K,EACZ8K,WAAYhF,EACZ6C,SAAU,CAACoC,EAASC,IAAeL,EAAc,IAAK/G,EAAY5D,KAAM+K,EAASzF,QAAS0F,IAC1FC,mBAAmB,GACtC,gBAAC,KAAD,CAAW7L,UAAU,cACV8L,aACE,gBAAC,EAAD,CAAsB9C,SAlBlB+C,GAAqBR,EAAc,IAAK/G,EAAY2B,MAAO4F,IAmBzC9C,SAlBnB,CAAC+C,EAAetI,IAAkB6H,EAAc,IAAK/G,EAAY2B,QAAOC,kBAAmB,IAAKA,EAAmB,CAAC4F,GAAQtI,OAoBjIuI,iBAAmBlB,GA7CJ,SAACA,GAA+E,IAAjE,oBAAEtD,GAA+D,uDAAvC,CAAEA,yBAAqBpH,GAChG,MAAMsJ,EAAalC,aAAH,EAAGA,EAAsBsD,EAAahK,IAChD+J,EAAkBjC,EAAAA,sBAAwCc,GAEhE,OAAO,gBAAC,EAAD,CAA4BoB,aAAcA,EAAcD,gBAAiBA,GACjF,CAwCsDoB,CAA0BnB,EAAc/D,GAC5EmF,WAAY,GACZtH,WAAY,gBAAC,KAAD,4CACZuH,QAASpB,EACTjK,GAAG,kBACHsL,aAAa,QACbC,KAAMlF,EAAKmF,OACXC,UAAU,WAxBlB,gBAAC,KAAD,KAGT,E,qBEjDF,MAaA,GAb8B,IAAuB,IAAtB,OAAEnL,GAAoB,EACnD,MAAO8C,EAASC,IAAcC,EAAAA,EAAAA,WAAS,GACjCoI,GAAmBlI,EAAAA,EAAAA,cAAaC,GAAekI,GAAAA,EAAAA,wBAA0CrL,EAAQmD,IAAa,CAACnD,IAErH,OACE,gBAAC1B,EAAA,EAAD,CAAkBE,MAAM,kBAAkBC,YAAaqE,GACrD,gBAAC,EAAD,CAAwBC,WAAYA,EACZoF,WAAW,OACX4B,gBAAiBqB,IAJ7C,E,qBCNF,MAYA,GAZqB,IAAqB,UAApB,KAAEvJ,GAAkB,EACxC,MAAMyJ,EAAcC,GAAAA,YAAAA,QAAoB,SAElCC,EAAsBF,SAAH,UAAGA,EAAc,UAAjB,aAAG,EAAkBE,oBAE9C,OACE,gBAAClN,EAAA,EAAD,CAAkBE,MAAM,SACrBgN,EAAsB,gBAACA,EAAD,CAAqB3J,KAAMA,EAAMG,UAAQ,IAAM,gBAAC,KAAD,CAA0ByJ,YAAY,UAFhH,E,qBCGF,MCjBA,GDiBoB,IAAqB,IAApB,KAAE5J,GAAkB,EACvC,OAAKA,EAKH,gCACE,gBAAC6J,EAAA,EAAD,KACE,gBAAC,KAAD,CAAanC,YAAc,cAAa1H,EAAKT,YAC3C,2BACE,gBAAC,EAAD,CAAgBS,KAAMA,IACtB,gBAAC,KAAD,CAAa0H,YAAY,KACvB,gBAAC,EAAD,CAAiB1H,KAAMA,KAEzB,gBAAC,EAAD,CAAoBA,KAAMA,KAE5B,2BACE,gBAAC8J,GAAA,EAAD,MACA,gBAAC,KAAD,CAAapC,YAAc,mBAAkB1H,EAAKT,YAChD,gBAAC,EAAD,CAAcS,KAAMA,KAEtB,gBAAC,KAAD,CAAa0H,YAAc,cAAa1H,EAAKT,YAC3C,gBAAC,GAAD,CAAcS,KAAMA,QAK5B,gBAAC,GAAD,CAAuB7B,OAAQ6B,EAAKnC,MAzB/B,gBAAC,KAAD,KAGT,E,sCENF,MAAMkM,GAAY,QAAC,SAAEtJ,GAAH,SAChB,gDACgBA,GACZ,qCACI,yBAAIA,IAJI,EAwClB,IAAeuJ,EAAAA,EAAAA,IA9BS,IAAuB,YAAtB,OAAEC,GAAoB,EAC7C,MAAOC,EAAYC,IAAiBhJ,EAAAA,EAAAA,YAC9BhD,EAAS8L,aAAH,EAAGA,EAAQ9L,OAMvB,OAJAkE,EAAAA,EAAAA,YAAU,KACR+H,EAAAA,EAAAA,KAAiBjM,GAAQsD,KAAK0I,EAA9B,GACC,CAAChM,IAGF,gBAAC,KAAD,CAAexB,MAAQ,gBAAD,UAAgBuN,aAAhB,EAAgBA,EAAYzJ,gBAA5B,QAAwC,MAC5D,gBAAC4J,GAAA,EAAD,MACA,gBAAC,KAAD,CAAY1N,MAAO,gBAACoN,GAAD,CAAWtJ,SAAUyJ,aAAF,EAAEA,EAAYzJ,WACxC6J,QACE,gBAACC,GAAA,EAAD,CAAiBpM,OAAQA,EACRC,eAAc,UAAE8L,aAAF,EAAEA,EAAY/J,gBAAd,WAEjCqK,kBAAmB,CACjB7N,MAAO,4BACP8N,KAAM9M,EAAAA,EAAAA,MAAAA,cAElB,yGAKF,gBAAC,GAAD,CAAaqC,KAAM7B,KAAW+L,aAAL,EAAKA,EAAYrM,IAAKqM,OAAa/M,IAjBhE,G,mKCjBa,MAAMuN,EAGnBC,YACE9M,EACAJ,EACAmN,EACAlD,EACAvH,GAEA0K,KAAKC,OAAS,CACZjN,KACAJ,OACAmN,cACAlD,cACAvH,WAEH,CAEGtC,SACF,OAAOgN,KAAKC,OAAOjN,EACpB,CAEGJ,WACF,OAAOoN,KAAKC,OAAOrN,IACpB,CAEGmN,kBACF,OAAOC,KAAKC,OAAOF,WACpB,CAEGlD,kBACF,OAAOmD,KAAKC,OAAOpD,WACpB,CAEGvH,eACF,OAAO0K,KAAKC,OAAO3K,QACpB,CAED4K,YACE,MAAM,GACJlN,EADI,KAEJJ,EAFI,YAGJmN,EAHI,YAIJlD,EAJI,SAKJvH,GACE0K,KAAKC,OAGT,OAAO,IAAIE,EAAQ7G,EAAAA,IAAc,CAC/BtG,KACAJ,OACAmN,cACAlD,cACAvH,aAEH,CAEY,cACXtC,EACAJ,EACAmN,EACAlD,EACAvH,GAEA,OAAO,IAAIuK,EACT7M,EACAJ,EACAmN,EACAlD,EACAvH,EAEH,CAED8K,SACE,MAAM,GACJpN,EADI,KAEJJ,EAFI,YAGJmN,EAHI,YAIJlD,EAJI,SAKJvH,GACE0K,KAAKC,OAET,MAAO,CACLjN,KACAJ,OACAmN,cACAlD,cACAwD,UAAW/K,EAEd,CAEc,gBAACK,GACd,MAAM,GACJ3C,EADI,KAEJJ,EAFI,YAGJmN,EAHI,YAIJlD,EACAwD,UAAW/K,GACTK,EAEJ,OAAOkK,EAAKS,OACVtN,EACAJ,EACAmN,EACAlD,EACAvH,EAEH,CAEa,iBAEZ,OAAO,IAAI6K,CACZ,EAKH,MAAMA,EAGJL,cAAmD,IAAvCnK,EAAuC,uDAAjB2D,EAAAA,MAChC0G,KAAKrK,MAAQA,CACd,CAED3C,GAAG2C,GACD,OAAO,IAAIwK,EAAQH,KAAKrK,MAAM4K,IAAI,KAAM5K,GACzC,CAED/C,KAAK+C,GACH,OAAO,IAAIwK,EAAQH,KAAKrK,MAAM4K,IAAI,OAAQ5K,GAC3C,CAEDoK,YAAYpK,GACV,OAAO,IAAIwK,EAAQH,KAAKrK,MAAM4K,IAAI,cAAe5K,GAClD,CAEDkH,YAAYlH,GACV,OAAO,IAAIwK,EAAQH,KAAKrK,MAAM4K,IAAI,cAAe5K,GAClD,CAEDL,SAASK,GACP,OAAO,IAAIwK,EAAQH,KAAKrK,MAAM4K,IAAI,WAAY5K,GAC/C,CAED6K,QACE,MAAM,GACJxN,EADI,KAEJJ,EAFI,YAGJmN,EAHI,YAIJlD,EAJI,SAKJvH,GACE0K,KAAKrK,MAAM8K,WAEf,OAAO,IAAIZ,EACT7M,EACAJ,EACAmN,EACAlD,EACAvH,EAEH,ECpJH,MAaA,GAb0BoL,EAAAA,EAAAA,IACxB,cACA,IAAMC,IAAAA,cAAkC,CACtCjN,KAAM,CAAEkN,aAAa,GACrB1M,OAAQ,CAAE0M,aAAa,GACvBtM,WAAY,CAAEsM,aAAa,GAC3BnM,aAAc,CAAEmM,aAAa,GAC7BjM,iBAAkB,CAAEiM,aAAa,GACjChM,iBAAkB,CAAEgM,aAAa,GACjC/L,mBAAoB,CAAE+L,aAAa,O,oBClBvC,MAAMC,EAA2B,QAAC,MAChCjI,EADgC,MAEhCD,EAFgC,KAGhC9F,EAHgC,SAIhCkG,EAJgC,MAKhCX,EALgC,MAMhC0I,EAAQ,GANwB,QAOhC7H,EAAU,CAAE8H,WAAOzO,IAPY,QAQF,CAC7B+G,KAAMC,EAAAA,KAAewH,EAAMvH,KAAKyH,GAAMnB,EAAKoB,SAASD,MACpDvK,WAAY,CACV2B,QACAvF,OACAsF,QAASY,EACTH,QACAD,SAEFM,UAjB+B,EAoB3BiI,EAA+B,QAAC,MAAEtI,EAAF,MAASD,EAAT,KAAgB9F,EAAhB,SAAsBkG,EAAtB,MAAgCX,EAAhC,MAAuC2I,GAAxC,QAA6E,CAChH1H,KAAMC,EAAAA,KAAeyH,EAAMxH,KAAK4H,GAAMC,EAAAA,EAAAA,SAAsBD,MAC5D1K,WAAY,CACV5D,OACAsF,QAASY,EACTX,QACAQ,QACAD,SAPiC,EAW/B0I,EAAe,SAACC,GAAiG,IAA1CC,EAA0C,uDAAf,GACtG,MAAMC,EAAmBD,EAAUhI,KAAK0E,GAAUwD,mBAAmBxD,KAErE,OAAOqD,KAAYE,GAAkBE,GACtC,GAEkCC,EAAAA,EAAAA,IACjC,cACA,IAAMhB,IAAAA,YAAmB,CACvBiB,YAAa,CAAC/N,GAEdH,KAAKK,GACH,MAAM2N,GAAMG,EAAAA,EAAAA,IAAWR,EAAaS,EAAAA,EAAAA,qBAAAA,KAAqC,CAAC/N,KACpEgO,GAAUC,EAAAA,EAAAA,IAAM,MAAON,GAAK9K,KAAKiJ,EAAKoB,UAI5C,OAFApN,EAAAA,KAAAA,QAA+BkO,GAExBA,CACR,EAED7N,OAAOH,GACL,MAAM2N,GAAMG,EAAAA,EAAAA,IAAWR,EAAaS,EAAAA,EAAAA,qBAAAA,OAAuC,CAAC/N,KACtEgO,GAAUC,EAAAA,EAAAA,IAAM,SAAUN,GAIhC,OAFA7N,EAAAA,OAAAA,QAAiCkO,GAE1BA,CACR,EAEDzN,WAAWP,EAAgBQ,GACzB,MAAMmN,EAAML,EAAaS,EAAAA,EAAAA,qBAAAA,WAA2C,CAAC/N,IAC/DgO,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWH,GAAMnN,EAAU0N,WAIxD,OAFApO,EAAAA,WAAAA,QAAqCkO,GAE9BA,CACR,EAEDtN,aAAaV,EAAgBW,GAC3B,MAAMgN,EAAML,EAAaS,EAAAA,EAAAA,qBAAAA,aAA6C,CAAC/N,EAAQW,IACzEqN,GAAUC,EAAAA,EAAAA,IAAM,UAAUH,EAAAA,EAAAA,IAAWH,IAI3C,OAFA7N,EAAAA,aAAAA,QAAuCkO,GAEhCA,CACR,EAEDpN,iBAAiBZ,EAAgBmO,EAAjB,GAIwB,IAJY,KAClDrP,EADkD,QAElDsF,EAFkD,MAGlDC,GACsC,EACtC,MAAM+J,EAASd,EAAaS,EAAAA,EAAAA,qBAAAA,iBAAiD,CAAC/N,IACxE2N,GAAMU,EAAAA,EAAAA,GAAcD,EAAQtP,EAAMsF,EAASC,GAE3C2J,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWH,IACrC9K,KAAKsK,GAIR,OAFArN,EAAAA,iBAAAA,QAA2CkO,GAEpCA,CACR,EAEDnN,iBAAiBF,EAAD,GAAkF,IAA/D,KAAE7B,EAAF,QAAQsF,EAAR,MAAiBC,GAA8C,EAChG,MAAM+J,EAASd,EAAaS,EAAAA,EAAAA,qBAAAA,iBAAiD,CAACpN,IACxEgN,GAAMU,EAAAA,EAAAA,GAAcD,EAAQtP,EAAMsF,EAASC,GAE3C2J,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWH,IACrC9K,KAAKiK,GAIR,OAFAhN,EAAAA,iBAAAA,QAA2CkO,GAEpCA,CACR,EAEDlN,mBAAmB,GAA+D,IAA/D,KAAEhC,EAAF,QAAQsF,EAAR,MAAiBC,GAA8C,EAChF,MAAM+J,EAASd,EAAaS,EAAAA,EAAAA,qBAAAA,MACtBJ,GAAMU,EAAAA,EAAAA,GAAcD,EAAQtP,EAAMsF,EAASC,GAE3C2J,GAAUC,EAAAA,EAAAA,IAAM,OAAOH,EAAAA,EAAAA,IAAWH,IACrC9K,KAAKiK,GAIR,OAFAhN,EAAAA,mBAAAA,QAA6CkO,GAEtCA,CACR,K","sources":["webpack://graylog-web-interface/./src/components/common/PaginatedItemOverview/index.tsx","webpack://graylog-web-interface/./src/components/common/Section/SectionComponent.tsx","webpack://graylog-web-interface/./src/components/common/Section/SectionGrid.tsx","webpack://graylog-web-interface/./src/components/users/PermissionsUpdateInfo.tsx","webpack://graylog-web-interface/./src/components/users/RolesQueryHelp.tsx","webpack://graylog-web-interface/./src/components/users/navigation/UserActionLinks.tsx","webpack://graylog-web-interface/./src/domainActions/roles/AuthzRolesDomain.ts","webpack://graylog-web-interface/./src/components/users/UserDetails/PreferencesSection.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/ProfileSection.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/RolesSection.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/SettingsSection.tsx","webpack://graylog-web-interface/./src/logic/permissions/mocked.ts","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesQueryHelper.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesFilter.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesOverviewItem/OwnersCell.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesOverviewItem/index.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesOverviewItem/SharedEntitiesOverviewItem.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/SharedEntitiesOverview.tsx","webpack://graylog-web-interface/./src/components/permissions/SharedEntitiesOverview/index.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/SharedEntitiesSection.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/TeamsSection.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/UserDetails.tsx","webpack://graylog-web-interface/./src/components/users/UserDetails/index.ts","webpack://graylog-web-interface/./src/pages/UserDetailsPage.tsx","webpack://graylog-web-interface/./src/logic/roles/Role.ts","webpack://graylog-web-interface/./src/actions/roles/AuthzRolesActions.ts","webpack://graylog-web-interface/./src/stores/roles/AuthzRolesStore.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 type {\n  PaginatedListType,\n  DescriptiveItem,\n  ResultsWrapperComponentProps,\n  OverrideItemComponentProps,\n} from './PaginatedItemOverview';\nimport PaginatedItemOverview, {\n  DEFAULT_PAGINATION,\n} from './PaginatedItemOverview';\n\nexport type {\n  PaginatedListType,\n  DescriptiveItem,\n  ResultsWrapperComponentProps,\n  OverrideItemComponentProps,\n};\n\nexport { DEFAULT_PAGINATION };\n\nexport default PaginatedItemOverview;\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 React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Spinner from 'components/common/Spinner';\nimport { Row, Col } from 'components/bootstrap';\n\ntype Props = {\n  children: React.ReactNode,\n  title: string,\n  showLoading?: boolean,\n  headerActions?: React.ReactElement,\n  className?: string,\n};\n\nconst Header = styled.div`\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n\n  *:not(:first-child) {\n    margin-left: 10px;\n  }\n`;\n\nexport const Headline = styled.h2`\n  margin-bottom: 15px;\n  display: inline;\n`;\n\nconst LoadingSpinner = styled(Spinner)(({ theme }) => css`\n  margin-left: 10px;\n  font-size: ${theme.fonts.size.h3};\n`);\n\nconst SectionComponent = ({ children, title, showLoading = false, headerActions, className }: Props) => (\n  \n    \n      
\n \n {title}\n {showLoading && }\n \n {headerActions}\n
\n {children}\n \n
\n);\n\nSectionComponent.defaultProps = {\n className: '',\n showLoading: false,\n headerActions: undefined,\n};\n\nexport default SectionComponent;\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 styled, { css } from 'styled-components';\n\nconst SectionGrid = styled.div<{ $columns?: string } >(({ $columns, theme }) => css`\n display: grid;\n grid-template-columns: ${$columns ?? '1fr 1fr'};\n grid-column-gap: 40px;\n\n @media (max-width: ${theme.breakpoints.max.md}) {\n grid-template-columns: 1fr;\n }\n`);\n\nexport default SectionGrid;\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 React from 'react';\n\nimport DocsHelper from 'util/DocsHelper';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport { Col, Row, Alert } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nconst PermissionsUpdateInfo = () => (\n \n \n \n {' '}Granting Permissions
\n With Graylog 4.0, we've updated the permissions system. Granting permissions for an entity like streams and dashboards is no longer part of the user edit page.\n It can now be configured using the Share button of an entity. You can find the button e.g. on the entities overview page. Learn more in the .\n
\n \n
\n);\n\nexport default PermissionsUpdateInfo;\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 React from 'react';\n\nimport { OverlayTrigger, Icon } from 'components/common';\nimport { Popover, Table, Button } from 'components/bootstrap';\n\nconst rolesQueryHelpPopover = (\n \n

Available search fields

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldDescription
nameRole name
descriptionDescription of the Role
\n

Examples

\n

\n Find roles with a description containing creator:
\n description:creator
\n

\n
\n);\n\nconst RolesQueryHelp = () => (\n \n \n \n);\n\nexport default RolesQueryHelp;\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 React from 'react';\nimport type { $PropertyType } from 'utility-types';\n\nimport { LinkContainer } from 'components/common/router';\nimport type User from 'logic/users/User';\nimport Routes from 'routing/Routes';\nimport { ButtonToolbar, Button } from 'components/bootstrap';\n\ntype Props = {\n userId: $PropertyType,\n userIsReadOnly: boolean,\n};\n\nconst UserActionLinks = ({ userId, userIsReadOnly }: Props) => (\n \n \n \n \n {!userIsReadOnly && (\n \n \n \n )}\n \n \n \n \n);\n\nexport default UserActionLinks;\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 { AuthzRolesActions } from 'stores/roles/AuthzRolesStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst load = notifyingAction({\n action: AuthzRolesActions.load,\n error: (error, roleId) => ({\n message: `Loading role with id \"${roleId}\" failed with status: ${error}`,\n }),\n notFoundRedirect: true,\n});\n\nconst deleteAction = notifyingAction({\n action: AuthzRolesActions.delete,\n success: (_roleId, roleName) => ({\n message: `Role \"${roleName}\" was deleted successfully`,\n }),\n error: (error, _roleId, roleName) => ({\n message: `Deleting role \"${roleName}\" failed with status: ${error}`,\n }),\n});\n\nconst addMembers = notifyingAction({\n action: AuthzRolesActions.addMembers,\n success: (_roleId, usernames) => ({\n message: `Users:\"${usernames.join(', ')}\" were assigned successfully`,\n }),\n error: (error, _roleId, usernames) => ({\n message: `Assigning users \"${usernames.join(', ')}\" failed with status: ${error}`,\n }),\n});\n\nconst removeMember = notifyingAction({\n action: AuthzRolesActions.removeMember,\n success: (_roleId, username) => ({\n message: `User \"${username}\" was unassigned successfully`,\n }),\n error: (error, _roleId, username) => ({\n message: `Unassign user \"${username}\" failed with status: ${error}`,\n }),\n});\n\nconst loadUsersForRole = notifyingAction({\n action: AuthzRolesActions.loadUsersForRole,\n error: (error, _roleId, roleName) => ({\n message: `Loading users for role \"${roleName}\" failed with status: ${error}`,\n }),\n});\n\nconst loadRolesForUser = notifyingAction({\n action: AuthzRolesActions.loadRolesForUser,\n error: (error, username) => ({\n message: `Loading roles for user \"${username}\" failed with status: ${error}`,\n }),\n});\n\nconst loadRolesPaginated = notifyingAction({\n action: AuthzRolesActions.loadRolesPaginated,\n error: (error) => ({\n message: `Loading roles failed with status: ${error}`,\n }),\n});\n\nexport default {\n load,\n delete: deleteAction,\n addMembers,\n removeMember,\n loadUsersForRole,\n loadRolesForUser,\n loadRolesPaginated,\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 React from 'react';\n\nimport { PREFERENCES_THEME_MODE } from 'theme/constants';\nimport { ReadOnlyFormGroup } from 'components/common';\nimport Store from 'logic/local-storage/Store';\nimport type User from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n user: User,\n};\n\nconst defaultPreferences = {\n enableSmartSearch: false,\n updateUnfocussed: false,\n searchSidebarIsPinned: false,\n dashboardSidebarIsPinned: false,\n};\n\nconst PreferencesSection = ({ user: { preferences: databasePreferences, readOnly } }: Props) => {\n let preferences = databasePreferences || defaultPreferences;\n\n if (readOnly) {\n const localStoragePreferences = {\n searchSidebarIsPinned: Store.get('searchSidebarIsPinned'),\n dashboardSidebarIsPinned: Store.get('dashboardSidebarIsPinned'),\n [PREFERENCES_THEME_MODE]: Store.get(PREFERENCES_THEME_MODE),\n };\n preferences = { ...preferences, ...localStoragePreferences };\n }\n\n const {\n enableSmartSearch,\n updateUnfocussed,\n searchSidebarIsPinned,\n dashboardSidebarIsPinned,\n } = preferences;\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default PreferencesSection;\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 React from 'react';\n\nimport { ReadOnlyFormGroup } from 'components/common';\nimport type User from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n user: User,\n};\n\nconst ProfileSection = ({\n user: {\n username,\n fullName,\n firstName,\n lastName,\n email,\n clientAddress,\n lastActivity,\n sessionActive,\n accountStatus,\n },\n}: Props) => {\n const isOldUser = () => {\n return fullName && (!firstName && !lastName);\n };\n\n return (\n \n \n {isOldUser() && }\n \n \n \n \n \n \n \n \n );\n};\n\nexport default ProfileSection;\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 React from 'react';\nimport { useState, useCallback } from 'react';\n\nimport AuthzRolesDomain from 'domainActions/roles/AuthzRolesDomain';\nimport type User from 'logic/users/User';\nimport type { PaginatedListType } from 'components/common/PaginatedItemOverview';\nimport PaginatedItemOverview from 'components/common/PaginatedItemOverview';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\nimport RolesQueryHelp from '../RolesQueryHelp';\n\ntype Props = {\n user: User,\n};\n\nconst RolesSection = ({ user: { username } }: Props) => {\n const [loading, setLoading] = useState(false);\n\n const _onLoad = useCallback((pagination, isSubscribed: boolean) => {\n setLoading(true);\n\n return AuthzRolesDomain.loadRolesForUser(username, pagination).then((paginatedRoles): PaginatedListType => {\n if (isSubscribed) {\n setLoading(false);\n }\n\n return paginatedRoles;\n });\n }, [username]);\n\n return (\n \n } />\n \n );\n};\n\nexport default RolesSection;\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 React from 'react';\nimport { useState, useEffect } from 'react';\nimport { upperFirst } from 'lodash';\n\nimport Routes from 'routing/Routes';\nimport { Link } from 'components/common/router';\nimport { ReadOnlyFormGroup } from 'components/common';\nimport type User from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\nimport { StreamsActions } from 'stores/streams/StreamsStore';\nimport { ViewManagementActions } from 'views/stores/ViewManagementStore';\n\ntype Props = {\n user: User,\n};\n\nconst _sessionTimeout = (sessionTimeout) => {\n if (sessionTimeout) {\n return `${sessionTimeout.value} ${sessionTimeout.unitString}`;\n }\n\n return 'Sessions do not timeout';\n};\n\nconst StartpageValue = ({ type, id }: { type: string | null | undefined, id: string | null | undefined }) => {\n const [title, setTitle] = useState();\n\n useEffect(() => {\n if (!type || !id) {\n return;\n }\n\n if (type === 'stream') {\n StreamsActions.get(id).then(({ title: streamTitle }) => setTitle(streamTitle));\n } else {\n ViewManagementActions.get(id).then(({ title: viewTitle }) => setTitle(viewTitle));\n }\n }, [id, type]);\n\n if (!type || !id) {\n return No start page set;\n }\n\n const route = type === 'stream' ? Routes.stream_search(id) : Routes.dashboard_show(id);\n\n return (\n {upperFirst(type)}: {title}\n );\n};\n\nconst SettingsSection = ({\n user: {\n timezone,\n serviceAccount,\n sessionTimeout,\n startpage,\n },\n}: Props) => (\n \n \n \n \n } />\n \n);\n\nexport default SettingsSection;\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';\n\nimport SharedEntity from 'logic/permissions/SharedEntity';\nimport type { AdditionalQueries } from 'util/PaginationURL';\n\n// Temporary file to mock api responses\n\nconst searchPaginatedEntitySharesResponse = (page: number, perPage: number, query: string, additionalQueries?: AdditionalQueries) => {\n const mockedEntities = new Array(perPage).fill({\n id: 'grn::::stream:57bc9188e62a2373778d9e03',\n type: 'stream',\n title: 'Security Data',\n owners: [\n {\n id: 'grn::::user:jane',\n type: 'user',\n title: 'Jane Doe',\n },\n ],\n });\n\n const mockedResponse = {\n additionalQueries: additionalQueries,\n total: 230,\n count: Math.round(230 / perPage),\n page: page || 1,\n per_page: perPage || 10,\n query: query || '',\n entities: mockedEntities,\n context: {\n grantee_capabilities: {\n 'grn::::stream:57bc9188e62a2373778d9e03': 'view',\n },\n },\n };\n\n return Promise.resolve({\n list: Immutable.List(mockedResponse.entities.map((se) => SharedEntity.fromJSON(se))),\n context: { granteeCapabilities: mockedResponse.context.grantee_capabilities },\n pagination: {\n additionalQueries: mockedResponse.additionalQueries,\n count: mockedResponse.count,\n total: mockedResponse.total,\n page: mockedResponse.page,\n perPage: mockedResponse.per_page,\n query: mockedResponse.query,\n },\n });\n};\n\nconst availableEntityTypes = {\n stream: 'Stream',\n dashboard: 'Dashboard',\n search: 'Saved Search',\n event_definition: 'Event Definition',\n};\n\nconst availableCapabilities = {\n own: 'Owner',\n view: 'Viewer',\n manage: 'Manager',\n};\n\nexport default { searchPaginatedEntitySharesResponse, availableEntityTypes, availableCapabilities };\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 React from 'react';\n\nimport { Popover, Table, Button } from 'components/bootstrap';\nimport { OverlayTrigger, Icon } from 'components/common';\n\nconst sharedEntitiesQueryHelperPopover = (\n \n

Available search fields

\n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldDescription
titleTitle of a shared entity.
\n

Examples

\n

\n Find shared entities with a title containing security:
\n title:security
\n

\n
\n);\n\nconst SharedEntitiesQueryHelper = () => (\n \n \n \n);\n\nexport default SharedEntitiesQueryHelper;\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 React from 'react';\nimport styled from 'styled-components';\n\nimport mockedPermissions from 'logic/permissions/mocked';\nimport { SearchForm, Select } from 'components/common';\n\nimport SharedEntitiesQueryHelper from './SharedEntitiesQueryHelper';\n\ntype Props = {\n onSearch: (query: string) => void,\n onFilter: (param: string, value: string) => void,\n};\n\nconst StyledSearchForm = styled(SearchForm)`\n display: inline-block;\n\n margin-bottom: 10px;\n margin-right: 15px;\n`;\n\nconst Filters = styled.div`\n display: inline-block;\n vertical-align: top;\n\n margin-right: 15px;\n margin-bottom: 10px;\n`;\n\nconst SelectWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n vertical-align: top;\n\n width: 260px;\n margin-left: 10px;\n margin-right: 10px;\n\n white-space: nowrap;\n`;\n\nconst StyledSelect = styled(Select)`\n width: 300px;\n margin-left: 10px;\n`;\n\nconst entityTypeOptions = Object.entries(mockedPermissions.availableEntityTypes).map(([key, value]) => ({ label: value, value: key }));\nconst capabilityOptions = Object.entries(mockedPermissions.availableCapabilities).map(([key, value]) => ({ label: value, value: key }));\n\nconst SharedEntitiesFilter = ({ onSearch, onFilter }: Props) => (\n <>\n onSearch('')}\n onSearch={onSearch}\n queryHelpComponent={}\n topMargin={0} />\n\n \n \n \n onFilter('entity_type', entityType)}\n options={entityTypeOptions}\n placeholder=\"Filter entity types\" />\n \n \n \n onFilter('capability', capability)}\n options={capabilityOptions}\n placeholder=\"Filter capabilities\" />\n \n \n \n);\n\nexport default SharedEntitiesFilter;\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 */\n\nimport * as React from 'react';\nimport type { List } from 'immutable';\n\nimport { isPermitted } from 'util/PermissionsMixin';\nimport type Grantee from 'logic/permissions/Grantee';\nimport { Link } from 'components/common/router';\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport type { GranteesList } from 'logic/permissions/EntityShareState';\nimport { getShowRouteFromGRN } from 'logic/permissions/GRN';\n\ntype Props = {\n owners: GranteesList,\n};\n\nconst TitleWithLink = ({ to, title }: { to: string, title: string }) => {title};\n\nconst assertUnreachable = (type: 'error'): never => {\n throw new Error(`Owner of entity has not supported type: ${type}`);\n};\n\nconst _getOwnerTitle = ({ type, id, title }: Grantee, userPermissions: List) => {\n switch (type) {\n case 'user':\n if (!isPermitted(userPermissions, 'users:list')) return title;\n\n return ;\n case 'team':\n if (!isPermitted(userPermissions, 'teams:list')) return title;\n\n return ;\n case 'global':\n return 'Everyone';\n default:\n return assertUnreachable(type);\n }\n};\n\nconst OwnersCell = ({ owners }: Props) => {\n const currentUser = useCurrentUser();\n const sortedOwners = owners.sort((o1, o2) => defaultCompare(o1.type, o2.type) || defaultCompare(o1.title, o2.title));\n\n return (\n \n {sortedOwners.map((owner, index) => {\n const title = _getOwnerTitle(owner, currentUser?.permissions);\n const isLast = index >= owners.size - 1;\n\n return (\n \n {title}\n {!isLast && ', '}\n \n );\n })}\n \n );\n};\n\nexport default OwnersCell;\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 */\n\nimport SharedEntitiesOverviewItem from './SharedEntitiesOverviewItem';\n\nexport default SharedEntitiesOverviewItem;\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 React from 'react';\n\nimport { Link } from 'components/common/router';\nimport type SharedEntity from 'logic/permissions/SharedEntity';\nimport { getShowRouteFromGRN } from 'logic/permissions/GRN';\n\nimport OwnersCell from './OwnersCell';\n\ntype Props = {\n capabilityTitle: string,\n sharedEntity: SharedEntity,\n};\n\nconst SharedEntitiesOverviewItem = ({\n capabilityTitle,\n sharedEntity: {\n owners,\n title,\n type,\n id,\n },\n}: Props) => (\n \n \n {title}\n \n {type}\n \n {capabilityTitle}\n \n);\n\nexport default SharedEntitiesOverviewItem;\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 React from 'react';\nimport { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport type { Pagination } from 'stores/PaginationTypes';\nimport mockedPermissions from 'logic/permissions/mocked';\nimport type { PaginatedEntityShares } from 'actions/permissions/EntityShareActions';\nimport { DataTable, PaginatedList, Spinner, EmptyResult } from 'components/common';\n\nimport SharedEntitiesFilter from './SharedEntitiesFilter';\nimport SharedEntitiesOverviewItem from './SharedEntitiesOverviewItem';\n\nconst TABLE_HEADERS = ['Entity Name', 'Entity Type', 'Owner', 'Capability'];\nconst DEFAULT_PAGINATION = {\n page: 1,\n perPage: 10,\n query: '',\n};\n\ntype Props = {\n entityType: string,\n searchPaginated: (pagination: Pagination) => Promise,\n setLoading: (loading: boolean) => void,\n};\n\nconst StyledPaginatedList = styled(PaginatedList)`\n .pagination {\n margin: 0;\n }\n`;\n\nconst _sharedEntityOverviewItem = (sharedEntity, { granteeCapabilities } = { granteeCapabilities: undefined }) => {\n const capability = granteeCapabilities?.[sharedEntity.id];\n const capabilityTitle = mockedPermissions.availableCapabilities[capability];\n\n return ;\n};\n\nconst _loadSharedEntities = (pagination, searchPaginated, setPaginatedEntityShares, setLoading) => {\n setLoading(true);\n\n searchPaginated(pagination).then((paginatedEntityShares) => {\n setLoading(false);\n setPaginatedEntityShares(paginatedEntityShares);\n });\n};\n\nconst SharedEntitiesOverview = ({ entityType, searchPaginated, setLoading }: Props) => {\n const [paginatedEntityShares, setPaginatedEntityShares] = useState();\n const [pagination, setPagination] = useState(DEFAULT_PAGINATION);\n const { list, context, pagination: { total } = { total: 0 } } = paginatedEntityShares || {};\n const { page, query, additionalQueries } = pagination;\n\n useEffect(() => _loadSharedEntities(pagination, searchPaginated, setPaginatedEntityShares, setLoading), [pagination, searchPaginated, setLoading]);\n\n const _handleSearch = (newQuery: string) => setPagination({ ...pagination, query: newQuery });\n const _handleFilter = (param: string, value: string) => setPagination({ ...pagination, query, additionalQueries: { ...additionalQueries, [param]: value } });\n\n if (!paginatedEntityShares) {\n return ;\n }\n\n return (\n <>\n

\n Found {total} entities which are shared with the {entityType}.\n

\n setPagination({ ...pagination, page: newPage, perPage: newPerPage })}\n useQueryParameter={false}>\n \n )}\n dataRowFormatter={(sharedEntity) => _sharedEntityOverviewItem(sharedEntity, context)}\n filterKeys={[]}\n noDataText={No shared entities have been found.}\n headers={TABLE_HEADERS}\n id=\"shared-entities\"\n rowClassName=\"no-bm\"\n rows={list.toJS()}\n sortByKey=\"type\" />\n \n \n );\n};\n\nexport default SharedEntitiesOverview;\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 */\n\nimport SharedEntitiesOverview from './SharedEntitiesOverview';\n\nexport default SharedEntitiesOverview;\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 React from 'react';\nimport { useState, useCallback } from 'react';\nimport type { $PropertyType } from 'utility-types';\n\nimport SharedEntitiesOverview from 'components/permissions/SharedEntitiesOverview';\nimport EntityShareDomain from 'domainActions/permissions/EntityShareDomain';\nimport type User from 'logic/users/User';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n userId: $PropertyType,\n};\n\nconst SharedEntitiesSection = ({ userId }: Props) => {\n const [loading, setLoading] = useState(false);\n const _searchPaginated = useCallback((pagination) => EntityShareDomain.loadUserSharesPaginated(userId, pagination), [userId]);\n\n return (\n \n \n \n );\n};\n\nexport default SharedEntitiesSection;\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 React from 'react';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport type User from 'logic/users/User';\nimport { EnterprisePluginNotFound } from 'components/common';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\ntype Props = {\n user: User,\n};\n\nconst TeamsSection = ({ user }: Props) => {\n const teamsPlugin = PluginStore.exports('teams');\n\n const UserTeamsAssignment = teamsPlugin?.[0]?.UserTeamsAssignment;\n\n return (\n \n {UserTeamsAssignment ? : }\n \n );\n};\n\nexport default TeamsSection;\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 React from 'react';\n\nimport { IfPermitted, Spinner } from 'components/common';\nimport type User from 'logic/users/User';\nimport SectionGrid from 'components/common/Section/SectionGrid';\n\nimport PreferencesSection from './PreferencesSection';\nimport ProfileSection from './ProfileSection';\nimport RolesSection from './RolesSection';\nimport SettingsSection from './SettingsSection';\nimport SharedEntitiesSection from './SharedEntitiesSection';\nimport TeamsSection from './TeamsSection';\n\nimport PermissionsUpdateInfo from '../PermissionsUpdateInfo';\n\ntype Props = {\n user: User | null | undefined,\n};\n\nconst UserDetails = ({ user }: Props) => {\n if (!user) {\n return ;\n }\n\n return (\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\nexport default UserDetails;\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 UserDetails from './UserDetails';\n\nexport default UserDetails;\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 React from 'react';\nimport { useEffect, useState } from 'react';\n\nimport withParams from 'routing/withParams';\nimport { PageHeader, DocumentTitle } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport UsersDomain from 'domainActions/users/UsersDomain';\nimport UserDetails from 'components/users/UserDetails';\nimport UsersPageNavigation from 'components/users/navigation/UsersPageNavigation';\nimport UserActionLinks from 'components/users/navigation/UserActionLinks';\nimport type User from 'logic/users/User';\n\ntype Props = {\n params: {\n userId: string,\n },\n};\n\nconst PageTitle = ({ fullName }: {fullName: string}) => (\n <>\n User Details {fullName && (\n <>\n - {fullName}\n \n )}\n \n);\n\nconst UserDetailsPage = ({ params }: Props) => {\n const [loadedUser, setLoadedUser] = useState();\n const userId = params?.userId;\n\n useEffect(() => {\n UsersDomain.load(userId).then(setLoadedUser);\n }, [userId]);\n\n return (\n \n \n }\n actions={(\n \n )}\n documentationLink={{\n title: 'Permissions documentation',\n path: DocsHelper.PAGES.USERS_ROLES,\n }}>\n \n Overview of details like profile information, settings, teams and roles.\n \n \n\n \n \n );\n};\n\nexport default withParams(UserDetailsPage);\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\ntype InternalState = {\n id: string,\n name: string,\n description: string,\n permissions: Immutable.Set,\n readOnly: boolean,\n};\n\nexport type RoleJSON = {\n id: string,\n name: string,\n description: string,\n permissions: Immutable.Set,\n read_only: boolean,\n};\n\nexport default class Role {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n name: $PropertyType,\n description: $PropertyType,\n permissions: $PropertyType,\n readOnly: $PropertyType,\n ) {\n this._value = {\n id,\n name,\n description,\n permissions,\n readOnly,\n };\n }\n\n get id() {\n return this._value.id;\n }\n\n get name() {\n return this._value.name;\n }\n\n get description() {\n return this._value.description;\n }\n\n get permissions() {\n return this._value.permissions;\n }\n\n get readOnly() {\n return this._value.readOnly;\n }\n\n toBuilder() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n name,\n description,\n permissions,\n readOnly,\n }));\n }\n\n static create(\n id: $PropertyType,\n name: $PropertyType,\n description: $PropertyType,\n permissions: $PropertyType,\n readOnly: $PropertyType,\n ) {\n return new Role(\n id,\n name,\n description,\n permissions,\n readOnly,\n );\n }\n\n toJSON() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this._value;\n\n return {\n id,\n name,\n description,\n permissions,\n read_only: readOnly,\n };\n }\n\n static fromJSON(value: RoleJSON) {\n const {\n id,\n name,\n description,\n permissions,\n read_only: readOnly,\n } = value;\n\n return Role.create(\n id,\n name,\n description,\n permissions,\n readOnly,\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 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 name(value: $PropertyType) {\n return new Builder(this.value.set('name', value));\n }\n\n description(value: $PropertyType) {\n return new Builder(this.value.set('description', value));\n }\n\n permissions(value: $PropertyType) {\n return new Builder(this.value.set('permissions', value));\n }\n\n readOnly(value: $PropertyType) {\n return new Builder(this.value.set('readOnly', value));\n }\n\n build() {\n const {\n id,\n name,\n description,\n permissions,\n readOnly,\n } = this.value.toObject();\n\n return new Role(\n id,\n name,\n description,\n permissions,\n readOnly,\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 type * as Immutable from 'immutable';\n\nimport type Role from 'logic/roles/Role';\nimport type UserOverview from 'logic/users/UserOverview';\nimport { singletonActions } from 'logic/singleton';\nimport type { PaginatedList, Pagination } from 'stores/PaginationTypes';\n\nexport type UserContext = {\n id: string,\n username: string,\n};\n\nexport type RoleContext = {\n users: { [key: string]: UserContext[] },\n};\n\nexport type PaginatedRoles = PaginatedList & {\n context: RoleContext,\n};\nexport type PaginatedUsers = PaginatedList;\n\nexport type ActionsType = {\n load: (roleId: string) => Promise,\n delete: (roleId: string, roleName: string) => Promise,\n addMembers: (roleId: string, usernames: Immutable.Set) => Promise,\n removeMember: (roleId: string, username: string) => Promise,\n loadUsersForRole: (roleId: string, roleName: string, pagination: Pagination) => Promise,\n loadRolesForUser: (username: string, pagination: Pagination) => Promise,\n loadRolesPaginated: (pagination: Pagination) => Promise,\n};\n\nconst AuthzRolesActions = singletonActions(\n 'AuthzRoles',\n () => Reflux.createActions({\n load: { asyncResult: true },\n delete: { asyncResult: true },\n addMembers: { asyncResult: true },\n removeMember: { asyncResult: true },\n loadUsersForRole: { asyncResult: true },\n loadRolesForUser: { asyncResult: true },\n loadRolesPaginated: { asyncResult: true },\n }),\n);\n\nexport default AuthzRolesActions;\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';\n\nimport type { PaginatedUsersResponse } from 'stores/users/UsersStore';\nimport type { Store } from 'stores/StoreTypes';\nimport fetch from 'logic/rest/FetchProvider';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport { qualifyUrl } from 'util/URLUtils';\nimport { singletonStore } from 'logic/singleton';\nimport PaginationURL from 'util/PaginationURL';\nimport Role from 'logic/roles/Role';\nimport type { RoleJSON } from 'logic/roles/Role';\nimport type { PaginatedRoles, PaginatedUsers, RoleContext } from 'actions/roles/AuthzRolesActions';\nimport AuthzRolesActions from 'actions/roles/AuthzRolesActions';\nimport UserOverview from 'logic/users/UserOverview';\nimport type { PaginatedListJSON, Pagination } from 'stores/PaginationTypes';\n\nexport type PaginatedRolesResponse = PaginatedListJSON & {\n roles: Array,\n context?: RoleContext,\n};\n\nconst _responseToPaginatedList = ({\n count,\n total,\n page,\n per_page,\n query,\n roles = [],\n context = { users: undefined },\n}: PaginatedRolesResponse) => ({\n list: Immutable.List(roles.map((r) => Role.fromJSON(r))),\n pagination: {\n query,\n page,\n perPage: per_page,\n count,\n total,\n },\n context,\n});\n\nconst _responseToPaginatedUserList = ({ count, total, page, per_page, query, users }: PaginatedUsersResponse) => ({\n list: Immutable.List(users.map((u) => UserOverview.fromJSON(u))),\n pagination: {\n page,\n perPage: per_page,\n query,\n count,\n total,\n },\n});\n\nconst encodeApiUrl = (apiRoute: (...args: Array) => { url: string }, uriParams: Array = []): string => {\n const encodedUriParams = uriParams.map((param) => encodeURIComponent(param));\n\n return apiRoute(...encodedUriParams).url;\n};\n\nconst AuthzRolesStore: Store<{}> = singletonStore(\n 'AuthzRoles',\n () => Reflux.createStore({\n listenables: [AuthzRolesActions],\n\n load(roleId: $PropertyType): Promise {\n const url = qualifyUrl(encodeApiUrl(ApiRoutes.AuthzRolesController.load, [roleId]));\n const promise = fetch('GET', url).then(Role.fromJSON);\n\n AuthzRolesActions.load.promise(promise);\n\n return promise;\n },\n\n delete(roleId: string): Promise {\n const url = qualifyUrl(encodeApiUrl(ApiRoutes.AuthzRolesController.delete, [roleId]));\n const promise = fetch('DELETE', url);\n\n AuthzRolesActions.delete.promise(promise);\n\n return promise;\n },\n\n addMembers(roleId: string, usernames: Immutable.Set): Promise {\n const url = encodeApiUrl(ApiRoutes.AuthzRolesController.addMembers, [roleId]);\n const promise = fetch('PUT', qualifyUrl(url), usernames.toArray());\n\n AuthzRolesActions.addMembers.promise(promise);\n\n return promise;\n },\n\n removeMember(roleId: string, username: string): Promise {\n const url = encodeApiUrl(ApiRoutes.AuthzRolesController.removeMember, [roleId, username]);\n const promise = fetch('DELETE', qualifyUrl(url));\n\n AuthzRolesActions.removeMember.promise(promise);\n\n return promise;\n },\n\n loadUsersForRole(roleId: string, _roleName: string, {\n page,\n perPage,\n query,\n }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.loadUsersForRole, [roleId]);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedUserList);\n\n AuthzRolesActions.loadUsersForRole.promise(promise);\n\n return promise;\n },\n\n loadRolesForUser(username: string, { page, perPage, query }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.loadRolesForUser, [username]);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedList);\n\n AuthzRolesActions.loadRolesForUser.promise(promise);\n\n return promise;\n },\n\n loadRolesPaginated({ page, perPage, query }: Pagination): Promise {\n const apiUrl = encodeApiUrl(ApiRoutes.AuthzRolesController.list);\n const url = PaginationURL(apiUrl, page, perPage, query);\n\n const promise = fetch('GET', qualifyUrl(url))\n .then(_responseToPaginatedList);\n\n AuthzRolesActions.loadRolesPaginated.promise(promise);\n\n return promise;\n },\n }),\n);\n\nexport { AuthzRolesActions, AuthzRolesStore };\n"],"names":["PaginatedItemOverview","Header","styled","Headline","LoadingSpinner","Spinner","theme","css","fonts","size","h3","SectionComponent","children","title","showLoading","headerActions","className","xs","text","delay","defaultProps","undefined","$columns","breakpoints","max","md","bsStyle","name","page","DocsHelper","rolesQueryHelpPopover","id","condensed","trigger","rootClose","placement","overlay","userId","userIsReadOnly","to","Routes","load","notifyingAction","action","AuthzRolesActions","error","roleId","message","notFoundRedirect","delete","success","_roleId","roleName","addMembers","usernames","join","removeMember","username","loadUsersForRole","loadRolesForUser","loadRolesPaginated","defaultPreferences","enableSmartSearch","updateUnfocussed","searchSidebarIsPinned","dashboardSidebarIsPinned","user","preferences","databasePreferences","readOnly","localStoragePreferences","Store","PREFERENCES_THEME_MODE","label","value","fullName","firstName","lastName","email","clientAddress","lastActivity","sessionActive","accountStatus","loading","setLoading","useState","_onLoad","useCallback","pagination","isSubscribed","AuthzRolesDomain","then","paginatedRoles","noDataText","onLoad","queryHelper","RolesQueryHelp","_sessionTimeout","sessionTimeout","unitString","StartpageValue","type","setTitle","useEffect","StreamsActions","streamTitle","ViewManagementActions","viewTitle","route","upperFirst","timezone","serviceAccount","startpage","searchPaginatedEntitySharesResponse","perPage","query","additionalQueries","mockedEntities","Array","fill","owners","mockedResponse","total","count","Math","round","per_page","entities","context","grantee_capabilities","Promise","resolve","list","Immutable","map","se","SharedEntity","granteeCapabilities","availableEntityTypes","stream","dashboard","search","event_definition","availableCapabilities","own","view","manage","sharedEntitiesQueryHelperPopover","StyledSearchForm","SearchForm","Filters","SelectWrapper","StyledSelect","Select","entityTypeOptions","Object","entries","mockedPermissions","key","capabilityOptions","onSearch","onFilter","onReset","queryHelpComponent","topMargin","htmlFor","inputId","onChange","entityType","options","placeholder","capability","TitleWithLink","_getOwnerTitle","userPermissions","isPermitted","getShowRouteFromGRN","Error","assertUnreachable","currentUser","useCurrentUser","sortedOwners","sort","o1","o2","defaultCompare","owner","index","permissions","isLast","capabilityTitle","sharedEntity","TABLE_HEADERS","DEFAULT_PAGINATION","StyledPaginatedList","PaginatedList","searchPaginated","paginatedEntityShares","setPaginatedEntityShares","setPagination","_loadSharedEntities","activePage","totalItems","newPage","newPerPage","useQueryParameter","customFilter","newQuery","param","dataRowFormatter","_sharedEntityOverviewItem","filterKeys","headers","rowClassName","rows","toJS","sortByKey","_searchPaginated","EntityShareDomain","teamsPlugin","PluginStore","UserTeamsAssignment","featureName","SectionGrid","PermissionsUpdateInfo","PageTitle","withParams","params","loadedUser","setLoadedUser","UsersDomain","UsersPageNavigation","actions","UserActionLinks","documentationLink","path","Role","constructor","description","this","_value","toBuilder","Builder","toJSON","read_only","create","set","build","toObject","singletonActions","Reflux","asyncResult","_responseToPaginatedList","roles","users","r","fromJSON","_responseToPaginatedUserList","u","UserOverview","encodeApiUrl","apiRoute","uriParams","encodedUriParams","encodeURIComponent","url","singletonStore","listenables","qualifyUrl","ApiRoutes","promise","fetch","toArray","_roleName","apiUrl","PaginationURL"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy