{"version":3,"sources":["App.js","reportWebVitals.js","context/index.js","index.js","appAuth/auth-provider.js","services/AxiosObjects.js","context/auth-context.js","services/AccessControlApis.js"],"names":["AuthenticatedApp","React","UnauthenticatedApp","App","user","useAuth","_jsx","fallback","children","reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","AppProviders","Router","AuthProvider","theme","createTheme","typography","allVariants","fontFamily","textTransform","ReactDOM","render","StrictMode","ThemeProvider","document","getElementById","sessionStorageUser","client_id","dev_client_id","authURL","authProxyURL","devAuthProxyURL","mainURL","devURL","getUserFromSessionStorage","JSON","parse","window","sessionStorage","getItem","redirectToNYULobby","dev","arguments","length","undefined","logout","authorizationURL","concat","QueryString","stringify","redirect_uri","response_type","scope","location","href","includes","replace","authenticate","_authenticate","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","DEV","_process$env$REACT_AP","netId","_userInfo","code","userInfo","response","wrap","_context","prev","next","URL","indexOf","process","REACT_APP_DEVNETID","console","log","eduperson_primary_affiliation","firstname","netid","email","lastname","expiry","Date","getTime","token","setItem","abrupt","searchParams","has","get","axios","params","sent","data","stop","clear","SandboxApi","create","baseURL","DevApi","ProdApi","NyuPortalApi","AuthContext","props","_React$useState","_React$useState2","_slicedToArray","setUser","_React$useState3","_React$useState4","accessPermission","setaccessPermission","_React$useState5","_React$useState6","unauthorizedError","setUnauthorizedError","userInStorage","auth","CheckAccessControl","login","authUser","catch","err","error","value","Provider","_objectSpread","context","Error","displayName","_x","_CheckAccessControl","config","headers","authorizationtoken","resp","permission","alert","FetchAccessableTableau","_x2","_x3","_x4","_x5","_FetchAccessableTableau","_callee2","setData","setAccess","setloading","dataSource","_context2","access","map","item","FetchAccessableDashboards","_x6","_x7","_x8","_x9","_FetchAccessableDashboards","_callee3","setudwdata","setudwAccess","getUniqueKey","_context3","udwAccess","forEach","FetchAccessableDV","_x10","_x11","_x12","_x13","_FetchAccessableDV","_callee4","setdvData","setdvAccess","setSchemas","_context4","dvAccess","schemaSet","Set","Array","from","ModifyAccessToWorkbooks","_x14","_x15","_x16","_ModifyAccessToWorkbooks","_callee5","restrict_list","delete_list","source","_context5","post","report_ids"],"mappings":"yLAGMA,EAAmBC,QAAW,kBAClC,uDAEIC,EAAqBD,QAAW,kBAAM,iCAY7BE,MAVf,WACE,IAAQC,EAASC,cAATD,KAER,OACEE,cAACL,WAAc,CAACM,SAAUD,cAAA,OAAAE,SAAK,eAAiBA,SAC7CJ,EAAOE,cAACN,EAAgB,IAAMM,cAACJ,EAAkB,OCDzCO,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAK,SAAAC,GAAkD,IAA/CC,EAAMD,EAANC,OAAQC,EAAMF,EAANE,OAAQC,EAAMH,EAANG,OAAQC,EAAMJ,EAANI,OAAQC,EAAOL,EAAPK,QAC3DJ,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAOP,GACPQ,EAAQR,O,QCHd,SAASS,EAAYN,GAAgB,IAAbL,EAAQK,EAARL,SACtB,OACEF,cAACc,IAAM,CAAAZ,SACLF,cAACe,IAAY,CAAAb,SAAEA,M,sBCEfc,EAAQC,YAAY,CACxBC,WAAY,CACVC,YAAa,CACXC,WAAY,QACZC,cAAe,WAKrBC,IAASC,OACPvB,cAACL,IAAM6B,WAAU,CAAAtB,SACfF,cAACa,EAAY,CAAAX,SACXF,cAACyB,IAAa,CAACT,MAAOA,EAAMd,SAC1BF,cAACH,EAAG,UAIV6B,SAASC,eAAe,SAM1BxB,K,mMC9BMyB,EAAqB,gCACrBC,EAAY,+BACZC,EAAgB,+BAEhBC,EAAU,8BAEVC,EACJ,uGACIC,EACJ,gFAKIC,EAAU,wBACVC,EAAS,4BAEf,SAASC,IACP,OAAOC,KAAKC,MAAMC,OAAOC,eAAeC,QAAQb,IAGlD,SAASc,IAAiC,IAAdC,EAAGC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAE7BG,IAEA,IAAIC,EACF,GAAAC,OAAGlB,EAAO,eACVmB,IAAYC,UAAU,CACpBC,aAAcT,EAAMR,EAASD,EAC7BmB,cAAe,OACfC,MAAO,SACPzB,UAAWc,EAAMb,EAAgBD,IAErCU,OAAOgB,SAASC,KAAOR,EAElBT,OAAOgB,SAASC,KAAKC,SAAS,UAEjClB,OAAOgB,SAASG,QAAQV,GAG3B,SAEcW,IAAY,OAAAC,EAAAC,MAAC,KAADjB,WAAA,SAAAgB,IAwD1B,OAxD0BA,EAAAE,YAAAC,IAAAC,MAA3B,SAAAC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAV,IAAAW,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAOyE,GANnEX,EAAM,IAAIY,IAAIvC,OAAOgB,SAASC,MAK5BW,EACJ5B,OAAOgB,SAASC,KAAKuB,QAAQ,qBAAuB,IAElDxC,OAAOgB,SAASC,KAAKuB,QAAQ,cAAgB,GAAC,CAAAJ,EAAAE,KAAA,QAgB4B,OAfxER,EAAsC,QAAjCD,EAAGY,mIAAYC,0BAAkB,IAAAb,IAAI,WAC9Cc,QAAQC,IAAIH,mIAAYC,oBACpBT,EAAW,CACbY,8BAA+B,WAC/BC,UAAWhB,EACXiB,MAAOjB,EACPkB,MAAO,WACPC,SAAU,GACVC,QAAQ,IAAIC,MAAOC,UAAY,KAC/BC,MAEE,4TAIJrD,OAAOC,eAAeqD,QAAQjE,EAAoBS,KAAKc,UAAUqB,IAAWG,EAAAmB,OAAA,SACrEtB,GAAQ,UAIdN,EAAI6B,aAAaC,IAAI,SACgC,OAAtDzD,OAAOC,eAAeC,QAAQb,GAA4B,CAAA+C,EAAAE,KAAA,SAElC,OAAxBnC,EAAmByB,GAAKQ,EAAAmB,OAAA,kBAKa,OAAnCvB,EAAOL,EAAI6B,aAAaE,IAAI,QAAOtB,EAAAE,KAAA,GAIlBqB,IAAMD,IAAI9B,EAAMlC,EAAkBD,EAAc,CACnEmE,OAAQ,CACN5B,UAED,KAAD,GAO4C,OAX1CE,EAAQE,EAAAyB,MAMZ5B,EAAWC,EAAS4B,KAAKA,MAChBZ,QAAS,IAAIC,MAAOC,UAAY,KACzCpD,OAAOC,eAAeqD,QAAQjE,EAAoBS,KAAKc,UAAUqB,IAGjEjC,OAAOgB,SAASC,KAAOW,EAAMhC,EAASD,EAAQyC,EAAAmB,OAAA,SAEvCtB,GAAQ,yBAAAG,EAAA2B,UAAArC,QAChBJ,MAAA,KAAAjB,WAED,SAASG,IACPR,OAAOC,eAAe+D,QACtBhE,OAAOgB,SAASG,QA1FhB,yI,gCCdF,6JAEa8C,EAAaN,IAAMO,OAAO,CACrCC,QAAS,iEAGEC,EAAST,IAAMO,OAAO,CACjCC,QACE,uFAGSE,EAAUV,IAAMO,OAAO,CAClCC,QACE,wFAGSG,EAAeX,IAAMO,OAAO,CACvCC,QAAS,mD,qJCbLI,EAAcnH,kBAGpB,SAASoB,EAAagG,GACpB,IAAAC,EAAwBrH,WAAe,MAAKsH,EAAAC,YAAAF,EAAA,GAArClH,EAAImH,EAAA,GAAEE,EAAOF,EAAA,GACpBG,EAAgDzH,WAAe,UAAS0H,EAAAH,YAAAE,EAAA,GAAjEE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5CG,EAAkD7H,WAAe,MAAK8H,EAAAP,YAAAM,EAAA,GAA/DE,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAI9C9H,aAAgB,WACd,IAAMiI,EAAgBC,MAClBD,KACE,IAAIlC,MAAOC,UAAYiC,EAAsB,QAC/CE,YAAmBP,GACnBJ,EAAQS,IAERC,SAGH,IAEH,IAAME,EAAQpI,eACZ,kBACEkI,MAEGvH,MAAK,SAAC0H,GACLb,EAAQa,MAETC,OAAM,SAACC,GACNhD,QAAQiD,MAAMD,GACdP,EAAqBO,QAG3B,CAACf,IAGGpE,EAASpD,eAAkB,WAC/BkI,QACC,IAEGO,EAAQzI,WACZ,iBAAO,CAAEG,OAAMiI,QAAOhF,SAAQuE,mBAAkBI,uBAChD,CAACK,EAAOhF,EAAQjD,EAAMwH,EAAkBI,IAE1C,OAAO1H,cAAC8G,EAAYuB,SAAQC,YAAA,CAACF,MAAOA,GAAWrB,IAGjD,SAAShH,IACP,IAAMwI,EAAU5I,aAAiBmH,GAEjC,QAAgBhE,IAAZyF,EACF,MAAM,IAAIC,MAAM,8CAElB,OAAOD,EArDTzB,EAAY2B,YAAc,e,qPCFnB,SAAeX,EAAkBY,GAAA,OAAAC,EAAA9E,MAAC,KAADjB,WAYvC,SAAA+F,IAAA,OAAAA,EAAA7E,YAAAC,IAAAC,MAZM,SAAAC,EAAkCsD,GAAmB,IAAAzH,EAAA8I,EAAA,OAAA7E,IAAAW,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,YAEvC/B,KADbhD,EAAOsC,eACJwD,QACDgD,EAAS,CACbC,QAAS,CACPC,mBAAoBhJ,EAAK8F,QAG7BgB,IAAQX,IAAI,kCAAmC2C,GAC5CtI,MAAK,SAACyI,GAAI,OAAKxB,EAAoBwB,EAAK1C,KAAK2C,eAC7Cf,OAAM,SAACC,GAAG,OAAKe,MAAMf,OACzB,wBAAAvD,EAAA2B,UAAArC,QACFJ,MAAA,KAAAjB,WAEM,SAAesG,EAAsBC,EAAAC,EAAAC,EAAAC,GAAA,OAAAC,EAAA1F,MAAC,KAADjB,WA0C3C,SAAA2G,IAAA,OAAAA,EAAAzF,YAAAC,IAAAC,MA1CM,SAAAwF,EACLC,EACAC,EACAC,EACAC,GAAU,IAAA9J,EAAA8I,EAAA,OAAA7E,IAAAW,MAAA,SAAAmF,GAAA,cAAAA,EAAAjF,KAAAiF,EAAAhF,MAAA,UAEL,CAAC,UAAW,sBAAsBpB,SAASmG,GAAY,CAADC,EAAAhF,KAAA,QAEvC,OADlBK,QAAQiD,MAAM,uBACdwB,GAAW,GAAOE,EAAA/D,OAAA,sBAIDhD,KADbhD,EAAOsC,eACJwD,QACP+D,GAAW,GACLf,EAAS,CACbC,QAAS,CACPC,mBAAoBhJ,EAAK8F,QAI7BgB,IAAQX,IACN,iDAAmD2D,EACnDhB,GAECtI,MAAK,SAACyI,GACL,IAAM1C,EAAO0C,EAAK1C,KAAKA,KACvBoD,EAAQpD,GAER,IAAMyD,EAAS,GACI,YAAfF,EACFvD,EAAK0D,KAAI,SAACC,GAAI,OAAMF,EAAOE,EAAK,IAAMA,EAAK,MACnB,uBAAfJ,GACTvD,EAAK0D,KAAI,SAACC,GAAI,OAAMF,EAAOE,EAAK,IAAMA,EAAK,MAE7CN,EAAUI,GACVH,GAAW,MAEZ1B,OAAM,SAACC,GACNe,MAAMf,GACNyB,GAAW,OAEhB,wBAAAE,EAAAvD,UAAAkD,QACF3F,MAAA,KAAAjB,WAEM,SAAeqH,EAAyBC,EAAAC,EAAAC,EAAAC,GAAA,OAAAC,EAAAzG,MAAC,KAADjB,WA6B9C,SAAA0H,IAAA,OAAAA,EAAAxG,YAAAC,IAAAC,MA7BM,SAAAuG,EACLC,EACAC,EACAd,EACAe,GAAY,IAAA5K,EAAA,OAAAiE,IAAAW,MAAA,SAAAiG,GAAA,cAAAA,EAAA/F,KAAA+F,EAAA9F,MAAA,YAGO/B,KADbhD,EAAOsC,eACJwD,QACP+D,GAAW,GACI,CACbd,QAAS,CACPC,mBAAoBhJ,EAAK8F,QAG7BgB,IAAQX,IAAI,uDACT3F,MAAK,SAACyI,GACLyB,EAAWzB,EAAK1C,KAAKA,MACrB,IAAMuE,EAAY,GAClB7B,EAAK1C,KAAKA,KAAKwE,SAAQ,SAACb,GACtBY,EAAUF,EAAaV,IAASA,EAAK,MAEvCS,EAAaG,GACbjB,GAAW,MAEZ1B,OAAM,SAACC,GACNe,MAAMf,GACNyB,GAAW,OAEhB,wBAAAgB,EAAArE,UAAAiE,QACF1G,MAAA,KAAAjB,WAEM,SAAekI,EAAiBC,EAAAC,EAAAC,EAAAC,GAAA,OAAAC,EAAAtH,MAAC,KAADjB,WA+BtC,SAAAuI,IAAA,OAAAA,EAAArH,YAAAC,IAAAC,MA/BM,SAAAoH,EACLC,EACAC,EACAC,EACA5B,GAAU,IAAA7J,EAAA8I,EAAA,OAAA7E,IAAAW,MAAA,SAAA8G,GAAA,cAAAA,EAAA5G,KAAA4G,EAAA3G,MAAA,YAGS/B,KADbhD,EAAOsC,eACJwD,QACP+D,GAAW,GACLf,EAAS,CACbC,QAAS,CACPC,mBAAoBhJ,EAAK8F,QAG7BgB,IAAQX,IAAI,mDAAoD2C,GAC7DtI,MAAK,SAACyI,GACLsC,EAAUtC,EAAK1C,KAAKA,MACpB,IAAMoF,EAAW,GAEXC,EAAY,IAAIC,IAAI5C,EAAK1C,KAAKA,KAAK0D,KAAI,SAACC,GAAI,OAAKA,EAAK,OAC5DuB,EAAWK,MAAMC,KAAKH,IAEtB3C,EAAK1C,KAAKA,KAAK0D,KAAI,SAACC,GAAI,OAAMyB,EAASzB,EAAK,IAAMA,EAAK,MACvDsB,EAAYG,GACZ9B,GAAW,MAEZ1B,OAAM,SAACC,GACNe,MAAMf,GACNyB,GAAW,OAEhB,wBAAA6B,EAAAlF,UAAA8E,QACFvH,MAAA,KAAAjB,WAEM,SAAekJ,EAAuBC,EAAAC,EAAAC,GAAA,OAAAC,EAAArI,MAAC,KAADjB,WAmC5C,SAAAsJ,IAAA,OAAAA,EAAApI,YAAAC,IAAAC,MAnCM,SAAAmI,EACLC,EACAC,EACAC,GAAM,IAAAxM,EAAA8I,EAAA,OAAA7E,IAAAW,MAAA,SAAA6H,GAAA,cAAAA,EAAA3H,KAAA2H,EAAA1H,MAAA,YAGa/B,KADbhD,EAAOsC,eACJwD,QACDgD,EAAS,CACbC,QAAS,CACPC,mBAAoBhJ,EAAK8F,QAMzBwG,EAAcvJ,QAChB+D,IAAQ4F,KACN,mDAAqDF,EACrD,CAAEG,WAAYL,GACdxD,GAECtI,MAAK,SAACyI,GAAI,OAAK7D,QAAQC,IAAI9C,KAAKc,UAAU4F,EAAK1C,UAC/C4B,OAAM,SAACC,GAAG,OAAKhD,QAAQiD,MAAMD,MAG9BmE,EAAYxJ,QACd+D,IAAQ4F,KACN,mDAAqDF,EACrD,CAAEG,WAAYJ,GACdzD,GAECtI,MAAK,SAACyI,GAAI,OAAK7D,QAAQC,IAAI9C,KAAKc,UAAU4F,EAAK1C,UAC/C4B,OAAM,SAACC,GAAG,OAAKhD,QAAQiD,MAAMD,OAEnC,wBAAAqE,EAAAjG,UAAA6F,QACFtI,MAAA,KAAAjB,a","file":"static/js/main.299d63ef.chunk.js","sourcesContent":["import * as React from \"react\";\r\nimport { useAuth } from \"./context/auth-context\";\r\n\r\nconst AuthenticatedApp = React.lazy(() =>\r\n import(/* webpackPrefetch: true */ \"./appAuth/authenticated-app\")\r\n);\r\nconst UnauthenticatedApp = React.lazy(() => import(\"./appAuth/unauthenticated-app\"));\r\n\r\nfunction App() {\r\n const { user } = useAuth();\r\n //console.log(user);\r\n return (\r\n Loading...}>\r\n {user ? : }\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import * as React from \"react\";\r\nimport { HashRouter as Router } from \"react-router-dom\";\r\nimport { AuthProvider } from \"./auth-context\";\r\n\r\nfunction AppProviders({ children }) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { AppProviders };\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { AppProviders } from \"./context\";\r\nimport { ThemeProvider, createTheme } from '@mui/material/styles';\r\n\r\nconst theme = createTheme({\r\n typography: {\r\n allVariants: {\r\n fontFamily: 'arial',\r\n textTransform: 'none',\r\n },\r\n },\r\n});\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import axios from \"axios\";\r\nimport QueryString from \"query-string\";\r\nconst sessionStorageUser = \"__nyu_bi_auth_provider_user__\";\r\nconst client_id = \"ikFmD4RiZCYtgKAZXxsMx64riHsa\";\r\nconst dev_client_id = \"Cim2dVfR5GkopObXZL7hhGB5Zosa\";\r\n\r\nconst authURL = \"https://auth.nyu.edu/oauth2\";\r\n\r\nconst authProxyURL =\r\n \"https://vrzy62aws9-vpce-068a21ad2a050c990.execute-api.us-east-1.amazonaws.com/dev/EDM-Dev-Auth-Proxy\"; //Dev/QA API\r\nconst devAuthProxyURL =\r\n \"https://8u6gr3dn2g.execute-api.us-east-1.amazonaws.com/Dev/EDM-DEV-Auth-Proxy\"; // Sandbox Dev API\r\n\r\nconst logoutURL =\r\n \"https://auth.nyu.edu/commonauth?commonAuthLogout=true&type=oidc2&commonAuthCallerPath=https://shibboleth.nyu.edu/idp/profile/Logout\";\r\n\r\nconst mainURL = \"https://data.nyu.edu/\";\r\nconst devURL = \"https://dev.data.nyu.edu/\";\r\n\r\nfunction getUserFromSessionStorage() {\r\n return JSON.parse(window.sessionStorage.getItem(sessionStorageUser));\r\n}\r\n\r\nfunction redirectToNYULobby(dev = false) {\r\n // return;\r\n logout();\r\n\r\n let authorizationURL =\r\n `${authURL}/authorize?` +\r\n QueryString.stringify({\r\n redirect_uri: dev ? devURL : mainURL,\r\n response_type: \"code\",\r\n scope: \"openid\",\r\n client_id: dev ? dev_client_id : client_id,\r\n });\r\n window.location.href = authorizationURL;\r\n\r\n if (!window.location.href.includes(\"code=\")) {\r\n // replace will stop current program\r\n window.location.replace(authorizationURL);\r\n return;\r\n }\r\n}\r\n\r\nasync function authenticate() {\r\n let url = new URL(window.location.href);\r\n\r\n //If no code param exist and no user in session storage, go to auth url\r\n //console.log(process.env.REACT_APP_DEVNETID);\r\n\r\n const DEV =\r\n window.location.href.indexOf(\"dev.data.nyu.edu\") > -1 ? true : false;\r\n\r\n if (window.location.href.indexOf(\"localhost\") > -1) {\r\n let netId = process.env.REACT_APP_DEVNETID ?? \"no-netid\";\r\n console.log(process.env.REACT_APP_DEVNETID);\r\n let userInfo = {\r\n eduperson_primary_affiliation: \"employee\",\r\n firstname: netId,\r\n netid: netId,\r\n email: \"no-email\",\r\n lastname: \"\",\r\n expiry: new Date().getTime() + 30 * 60 * 1000,\r\n token:\r\n // Lei's token for local testing\r\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJsd20zIiwiZmlyc3RuYW1lIjoiTGVpIFdhbmciLCJuZXRpZCI6Imx3bTMiLCJlbWFpbCI6Imx3bTNAbnl1LmVkdSIsImVkdXBlcnNvbl9wcmltYXJ5X2FmZmlsaWF0aW9uIjoiZW1wbG95ZWUiLCJsYXN0bmFtZSI6Ik1pbGxtYW4iLCJpYXQiOjE3MTg3MTY5NzEsImV4cCI6MTcxODczODU3MX0.IK-Ly3V65Pd68As86otjRDWrt3G4DI0kzeZIDjweuOg\",\r\n // alex's token\r\n // \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqeDIwNzEiLCJmaXJzdG5hbWUiOiJBbGV4IiwibmV0aWQiOiJqeDIwNzEiLCJlbWFpbCI6Imp4MjA3MUBueXUuZWR1IiwibGFzdG5hbWUiOiJYdSIsImlhdCI6MTY4NzQ2ODUxM30.R2GaRwUiCQDjq6ZA6f__pSsk46qFn7t29yb0_zcgdp4\",\r\n };\r\n window.sessionStorage.setItem(sessionStorageUser, JSON.stringify(userInfo));\r\n return userInfo;\r\n }\r\n\r\n if (\r\n !url.searchParams.has(\"code\") &&\r\n window.sessionStorage.getItem(sessionStorageUser) === null\r\n ) {\r\n redirectToNYULobby(DEV);\r\n return;\r\n }\r\n\r\n //Example Return URL : https://bi.nyu.edu/reporting?state=af0ifjsldkjd&code=e836906123a7eb5dfcf53e39fb729eb2&awda=waeae\r\n let code = url.searchParams.get(\"code\");\r\n\r\n let userInfo;\r\n\r\n let response = await axios.get(DEV ? devAuthProxyURL : authProxyURL, {\r\n params: {\r\n code,\r\n },\r\n });\r\n\r\n userInfo = response.data.data;\r\n userInfo.expiry = new Date().getTime() + 30 * 60 * 1000;\r\n window.sessionStorage.setItem(sessionStorageUser, JSON.stringify(userInfo));\r\n //after user stored in session storage,\r\n //redirect to main url to remove \"code\" and \"session state\" params\r\n window.location.href = DEV ? devURL : mainURL;\r\n\r\n return userInfo;\r\n}\r\n\r\nfunction logout() {\r\n window.sessionStorage.clear();\r\n window.location.replace(logoutURL);\r\n}\r\n\r\nexport { getUserFromSessionStorage, authenticate, logout, sessionStorageUser };\r\n","import axios from \"axios\";\r\n\r\nexport const SandboxApi = axios.create({\r\n baseURL: \" https://8u6gr3dn2g.execute-api.us-east-1.amazonaws.com/Dev/\",\r\n});\r\n\r\nexport const DevApi = axios.create({\r\n baseURL:\r\n \"https://vrzy62aws9-vpce-068a21ad2a050c990.execute-api.us-east-1.amazonaws.com/dev/\",\r\n});\r\n\r\nexport const ProdApi = axios.create({\r\n baseURL:\r\n \"https://h7syscw6ad-vpce-071f556077546152f.execute-api.us-east-1.amazonaws.com/prod/\",\r\n});\r\n\r\nexport const NyuPortalApi = axios.create({\r\n baseURL: \"https://anypoint.mulesoft.com/exchange/api/v2\",\r\n});\r\n","import * as React from \"react\";\r\nimport * as auth from \"../appAuth/auth-provider\";\r\nimport { CheckAccessControl } from \"../services/AccessControlApis\";\r\n\r\nconst AuthContext = React.createContext();\r\nAuthContext.displayName = \"AuthContext\";\r\n\r\nfunction AuthProvider(props) {\r\n const [user, setUser] = React.useState(null);\r\n const [accessPermission, setaccessPermission] = React.useState(\"NYU-IT\");\r\n const [unauthorizedError, setUnauthorizedError] = React.useState(null); // received 403 from server\r\n // set location as dependency to re-run useEffect() testing expire time\r\n // let location = useLocation();\r\n\r\n React.useEffect(() => {\r\n const userInStorage = auth.getUserFromSessionStorage();\r\n if (userInStorage) {\r\n if (new Date().getTime() < userInStorage[\"expiry\"]) {\r\n CheckAccessControl(setaccessPermission);\r\n setUser(userInStorage);\r\n } else {\r\n auth.logout();\r\n }\r\n }\r\n }, []);\r\n\r\n const login = React.useCallback(\r\n () =>\r\n auth\r\n .authenticate()\r\n .then((authUser) => {\r\n setUser(authUser);\r\n })\r\n .catch((err) => {\r\n console.error(err)\r\n setUnauthorizedError(err)\r\n } \r\n ),\r\n [setUser]\r\n );\r\n\r\n const logout = React.useCallback(() => {\r\n auth.logout();\r\n }, []);\r\n\r\n const value = React.useMemo(\r\n () => ({ user, login, logout, accessPermission, unauthorizedError }),\r\n [login, logout, user, accessPermission, unauthorizedError]\r\n );\r\n return ;\r\n}\r\n\r\nfunction useAuth() {\r\n const context = React.useContext(AuthContext);\r\n\r\n if (context === undefined) {\r\n throw new Error(`useAuth must be used within a AuthProvider`);\r\n }\r\n return context;\r\n}\r\n\r\nexport { AuthProvider, useAuth };\r\n","import { getUserFromSessionStorage } from \"../appAuth/auth-provider\";\r\nimport { ProdApi } from \"./AxiosObjects\";\r\n\r\nexport async function CheckAccessControl(setaccessPermission) {\r\n const user = getUserFromSessionStorage();\r\n if (user.token !== undefined) {\r\n const config = {\r\n headers: {\r\n authorizationtoken: user.token,\r\n },\r\n };\r\n ProdApi.get(\"EDM-Prod-Tableau-Access-Control\", config)\r\n .then((resp) => setaccessPermission(resp.data.permission))\r\n .catch((err) => alert(err));\r\n }\r\n}\r\n\r\nexport async function FetchAccessableTableau(\r\n setData,\r\n setAccess,\r\n setloading,\r\n dataSource\r\n) {\r\n if (![\"tableau\", \"tableau_datasource\"].includes(dataSource)) {\r\n console.error(\"Invalid data source\");\r\n setloading(false);\r\n return;\r\n }\r\n const user = getUserFromSessionStorage();\r\n if (user.token !== undefined) {\r\n setloading(true);\r\n const config = {\r\n headers: {\r\n authorizationtoken: user.token,\r\n },\r\n };\r\n\r\n ProdApi.get(\r\n \"EDM-Prod-Tableau-Workbooks-Access-Load?source=\" + dataSource,\r\n config\r\n )\r\n .then((resp) => {\r\n const data = resp.data.data;\r\n setData(data);\r\n\r\n const access = {};\r\n if (dataSource === \"tableau\") {\r\n data.map((item) => (access[item[2]] = item[5]));\r\n } else if (dataSource === \"tableau_datasource\") {\r\n data.map((item) => (access[item[2]] = item[3]));\r\n }\r\n setAccess(access);\r\n setloading(false);\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n setloading(false);\r\n });\r\n }\r\n}\r\n\r\nexport async function FetchAccessableDashboards(\r\n setudwdata,\r\n setudwAccess,\r\n setloading,\r\n getUniqueKey\r\n) {\r\n const user = getUserFromSessionStorage();\r\n if (user.token !== undefined) {\r\n setloading(true);\r\n const config = {\r\n headers: {\r\n authorizationtoken: user.token,\r\n },\r\n };\r\n ProdApi.get(\"EDM-Prod-Tableau-Workbooks-Access-Load?source=obiee\")\r\n .then((resp) => {\r\n setudwdata(resp.data.data);\r\n const udwAccess = {};\r\n resp.data.data.forEach((item) => {\r\n udwAccess[getUniqueKey(item)] = item[3];\r\n });\r\n setudwAccess(udwAccess);\r\n setloading(false);\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n setloading(false);\r\n });\r\n }\r\n}\r\n\r\nexport async function FetchAccessableDV(\r\n setdvData,\r\n setdvAccess,\r\n setSchemas,\r\n setloading\r\n) {\r\n const user = getUserFromSessionStorage();\r\n if (user.token !== undefined) {\r\n setloading(true);\r\n const config = {\r\n headers: {\r\n authorizationtoken: user.token,\r\n },\r\n };\r\n ProdApi.get(\"EDM-Prod-Tableau-Workbooks-Access-Load?source=dv\", config)\r\n .then((resp) => {\r\n setdvData(resp.data.data);\r\n const dvAccess = {};\r\n\r\n const schemaSet = new Set(resp.data.data.map((item) => item[1]));\r\n setSchemas(Array.from(schemaSet));\r\n\r\n resp.data.data.map((item) => (dvAccess[item[0]] = item[9]));\r\n setdvAccess(dvAccess);\r\n setloading(false);\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n setloading(false);\r\n });\r\n }\r\n}\r\n\r\nexport async function ModifyAccessToWorkbooks(\r\n restrict_list,\r\n delete_list,\r\n source\r\n) {\r\n const user = getUserFromSessionStorage();\r\n if (user.token !== undefined) {\r\n const config = {\r\n headers: {\r\n authorizationtoken: user.token,\r\n },\r\n };\r\n\r\n // console.log(restrict_list, delete_list)\r\n\r\n if (restrict_list.length) {\r\n ProdApi.post(\r\n \"EDM-Prod-Tableau-Access-Control?action=r&source=\" + source,\r\n { report_ids: restrict_list },\r\n config\r\n )\r\n .then((resp) => console.log(JSON.stringify(resp.data)))\r\n .catch((err) => console.error(err));\r\n }\r\n\r\n if (delete_list.length) {\r\n ProdApi.post(\r\n \"EDM-Prod-Tableau-Access-Control?action=d&source=\" + source,\r\n { report_ids: delete_list },\r\n config\r\n )\r\n .then((resp) => console.log(JSON.stringify(resp.data)))\r\n .catch((err) => console.error(err));\r\n }\r\n }\r\n}\r\n"],"sourceRoot":""}