{"version":3,"sources":["config sync /^/config/..*/.json$","infrastructure/components/Header/NavDropdownHover.tsx","application/common/constants.ts","application/common/config.ts","infrastructure/api/authentication.ts","application/common/usermanagement.ts","infrastructure/components/Header/Banner.tsx","application/images/sfu_design/sfu-logo.png","presentation/components/EditUser/EditUser.tsx","infrastructure/components/Layout/Jumbotron.tsx","routes.ts","presentation/components/Authentication/Logout/Logout.tsx","infrastructure/components/Header/Header.tsx","infrastructure/components/Layout/Footer.tsx","infrastructure/components/Loading/Spinner.tsx","presentation/components/Authentication/Login/Login.tsx","App.tsx","infrastructure/api/interceptors.ts","index.tsx"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","NavDropdownHover","_ref","title","children","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","_jsx","NavDropdown","menuVariant","className","show","onMouseOver","onMouseLeave","STATUS","API_RESPONSE_STATUS","READY","config","require","os","hostname","login","_asyncToGenerator","_regeneratorRuntime","mark","_callee","casTicket","response","wrap","_context","prev","next","axios","post","concat","SERVICE_URL_TASK","sent","abrupt","JSON","parse","data","t0","console","error","stop","_x","apply","arguments","refresh","_ref2","_callee2","currentUserCentral","_context2","_x2","AUTH_STATUS","UserCentralContext","UserManager","loginAndGetToken","casUrl","userSession","CASTicket","ERROR","window","sessionStorage","setItem","stringify","checkToken","AUTHENTICATED","refreshToken","checkTokenAndRefresh","_ref3","_callee3","_UserCentralContext","_UserCentralContext$U","_UserCentralContext2","_UserCentralContext2$","refreshTokenTime","_context3","getItem","UserCentralToken","TokenKey","TokenExpire","Date","getTime","now","t1","_UserCentralContext3","_UserCentralContext3$","_UserCentralContext4","_UserCentralContext4$","logoutUser","casLogout","length","undefined","removeItem","location","href","CAS_URL","getComputingId","CASUser","ComputingId","casRedirect","returnUrl","replace","Banner","_UserCentralContext$C","_UserCentralContext$C2","_jsxs","Row","Image","src","process","EditUser","dataString","localStorage","Id","_useState3","FirstName","_useState4","firstName","setFirstName","_useState5","LastName","_useState6","lastName","setlastName","_useState7","Email","_useState8","email","setEmail","handleSubmit","event","editUser","serviceAccount","bearerToken","responseToken","headers","updateLocalStorage","preventDefault","ACCOUNT","PASSWORD","serviceToken","log","Authorization","KUALI_BEARER","put","alert","reload","onSubmit","value","onChange","target","required","Button","type","onClick","Jumbotron","routes","path","label","component","exact","useEffect","_Fragment","Header","routeIndex","routeLinks","route","_route$children","isDropdown","dropdownItem","Item","as","Link","to","eventKey","Nav","Container","Navbar","variant","collapseOnSelect","expand","Toggle","Collapse","Footer","Spinner","status","displayCondition","LOADING","COMPLETE","Login","setStatus","retryLogin","protocol","host","pathname","isMounted","authenticate","then","result","ReactDOM","render","document","getElementById","sendData","schoolId","serviceAcc","getInfo","jsonObject","postUser","bearerToken2","responseToken2","addedUser","clear","SERVICE_URL_API","SERVICETOKEN","get","CommonName","EmailAddress","FirstNames","name","username","ID","FIRSTNAME","LASTNAME","EMAIL","t2","t3","t4","t5","authStatus","windowUrl","NONE","search","URLSearchParams","UNAUTHORIZED","App","BrowserRouter","Route","Switch","AxiosInterceptors","validateRequestAuthAsync","request","_request$url","url","includes","validateRequestAuth","_request$url2","injectAxiosInterceptors","interceptors","use","common","Promise","reject","_UserCentralContext$U2","React","StrictMode"],"mappings":"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","file":"static/js/main.0ac52510.chunk.js","sourcesContent":["var map = {\n\t\"./config.connector-dev.its.sfu.ca.json\": 109,\n\t\"./config.connector-stg.its.sfu.ca.json\": 110,\n\t\"./config.connector-tst.its.sfu.ca.json\": 111,\n\t\"./config.connector.its.sfu.ca.json\": 112,\n\t\"./config.localhost.json\": 113\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 108;","import React, { useState } from 'react';\r\nimport NavDropdown from 'react-bootstrap/NavDropdown';\r\n\r\ninterface NavDropdownProps {\r\n title: string;\r\n}\r\n\r\nexport const NavDropdownHover: React.FC = ({\r\n title,\r\n children,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n return (\r\n setIsOpen(true)}\r\n onMouseLeave={() => setIsOpen(false)}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","\r\nexport const APP_TITLE = 'Kuali-Add-Edit';\r\nexport const BUILD_DATE = 'September 2023';\r\nexport const COPYRIGHT = '© 2023 - Simon Fraser University';\r\nexport const VERSION = '1.0.0';\r\nexport const LEAVE_MSG = 'Are you sure you want to leave?';\r\n\r\nexport enum STATUS {\r\n READY,\r\n LOADING,\r\n COMPLETE,\r\n}\r\nexport const FAKE_DELAY = 500;\r\nexport const DEBOUNCE_VALUE = 300;\r\nexport const TABLE_DEBOUNCE_VALUE = 1500;\r\nexport const TOAST_DELAY_VALUE = 5000;\r\n\r\nexport enum API_RESPONSE_STATUS {\r\n READY = '',\r\n SUCCESS = 'success',\r\n ERROR = 'danger',\r\n}\r\n\r\nexport type API_RESPONSE = {\r\n message: string;\r\n statusLevel: API_RESPONSE_STATUS;\r\n};\r\n\r\nexport const INIT_API_RESPONSE: API_RESPONSE = {\r\n message: '',\r\n statusLevel: API_RESPONSE_STATUS.READY,\r\n};\r\n\r\nexport type Dict_Lookup = {\r\n [key: string]: T;\r\n};\r\n\r\nexport const DATE_TIME_FIELDS: Dict_Lookup = {\r\n};\r\n\r\nexport const DATE_FIELDS: Dict_Lookup = {\r\n};\r\n\r\nexport const INIT_SELECT_FIELDS: Dict_Lookup = {\r\n};\r\n","import os from 'os';\r\n\r\n/* eslint-disable */\r\nexport const config = require(\"./../../config/config.\" + os.hostname() + \".json\");\r\n\r\nexport default config;\r\n","import axios from 'axios';\r\nimport { Ticket } from '../../application/models/ticket';\r\nimport { UserCentral } from '../../application/models/userCentral';\r\nimport config from \"./../../application/common/config\";\r\n\r\n// eslint-disable-next-line\r\nexport const login = async (casTicket: Ticket): Promise => {\r\n try {\r\n // console.log(\"Sending login request with payload\", casTicket);\r\n const response = await axios.post(`${config.SERVICE_URL_TASK}/system/CAS/login`, casTicket); \r\n // console.log(window.location.hostname);\r\n return JSON.parse(response.data);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line\r\nexport const refresh = async (currentUserCentral: UserCentral): Promise => {\r\n try {\r\n const response = await axios.post(`${config.SERVICE_URL_TASK}/system/CAS/refresh`, currentUserCentral);\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\n","import { UserCentral } from \"../models/userCentral\";\r\nimport { login, refresh } from \"../../infrastructure/api/authentication\";\r\nimport { Ticket } from \"../models/ticket\";\r\nimport config from \"./config\";\r\n\r\nexport enum ACCESS_PERMISSION {\r\n ATS_User = \"User\"\r\n}\r\n\r\nexport enum AUTH_STATUS {\r\n NONE,\r\n AUTHENTICATED,\r\n UNAUTHORIZED,\r\n ERROR\r\n}\r\n\r\nexport let UserCentralContext: UserCentral | null = null;\r\n\r\n/* eslint-disable */\r\nexport const UserManager = (function() {\r\n \r\n var casRedirect = function() {\r\n let returnUrl: string = window.location.href.replace(\"logout\", \"\");\r\n window.location.href = config.CAS_URL + '/cas/login?service=' + returnUrl; \r\n return null;\r\n };\r\n \r\n var loginAndGetToken = async function(casUrl: string) {\r\n let casTicket: Ticket = {\r\n CASTicket: casUrl \r\n }\r\n let userSession: UserCentral = (await login(casTicket)) as UserCentral;\r\n // console.log(userSession);\r\n if (!userSession) {\r\n return AUTH_STATUS.ERROR;\r\n }\r\n window.sessionStorage.setItem('ATS_UserCentral', JSON.stringify(userSession));\r\n if(!checkToken()) {\r\n return AUTH_STATUS.ERROR;\r\n }\r\n return AUTH_STATUS.AUTHENTICATED; \r\n };\r\n\r\n var getComputingId = function() {\r\n if (!checkToken() || !UserCentralContext) {\r\n return null;\r\n }\r\n return UserCentralContext.CASUser.ComputingId;\r\n }\r\n\r\n var logoutUser = function(casLogout: boolean = false) {\r\n UserCentralContext = null;\r\n window.sessionStorage.removeItem('ATS_UserCentral');\r\n if (casLogout) {\r\n window.location.href = config.CAS_URL + '/cas/logout'; \r\n return null;\r\n }\r\n }\r\n\r\n var refreshToken = async function() {\r\n if (!UserCentralContext) {\r\n return AUTH_STATUS.ERROR;\r\n }\r\n let userSession: UserCentral = (await refresh(UserCentralContext)) as UserCentral;\r\n if (!userSession) {\r\n return AUTH_STATUS.ERROR;\r\n }\r\n UserCentralContext = userSession;\r\n window.sessionStorage.setItem('ATS_UserCentral', JSON.stringify(UserCentralContext));\r\n return AUTH_STATUS.AUTHENTICATED;\r\n };\r\n\r\n /*var validatePermission = function(accessNeeded: ACCESS_PERMISSION) {\r\n if (UserCentralContext && UserCentralContext?.UserCentralUser?.Permissions?.find((permission) => {\r\n return permission.PermissionName === accessNeeded;\r\n })) {\r\n return true;\r\n }\r\n return false;\r\n };*/\r\n\r\n var checkTokenAndRefresh = async function() {\r\n if (!UserCentralContext) {\r\n const userSession: string | null = window.sessionStorage.getItem(\"ATS_UserCentral\");\r\n if (userSession) {\r\n UserCentralContext = JSON.parse(userSession);\r\n } else {\r\n return false;\r\n }\r\n }\r\n if (!UserCentralContext?.UserCentralToken?.TokenKey || !UserCentralContext?.UserCentralToken?.TokenExpire || new Date(UserCentralContext.UserCentralToken.TokenExpire).getTime() <= Date.now()) {\r\n return false;\r\n }\r\n let refreshTokenTime: number = Date.now() + (1*60*60*1000);\r\n if (new Date(UserCentralContext.UserCentralToken.TokenExpire).getTime() <= refreshTokenTime) {\r\n return (await refreshToken()) === AUTH_STATUS.AUTHENTICATED;\r\n }\r\n return true;\r\n };\r\n\r\n var checkToken = function() {\r\n if (!UserCentralContext) {\r\n const userSession: string | null = window.sessionStorage.getItem(\"ATS_UserCentral\");\r\n if (userSession) {\r\n UserCentralContext = JSON.parse(userSession);\r\n } else {\r\n return false;\r\n }\r\n }\r\n if (!UserCentralContext?.UserCentralToken?.TokenKey || !UserCentralContext?.UserCentralToken?.TokenExpire || new Date(UserCentralContext.UserCentralToken.TokenExpire).getTime() <= Date.now()) {\r\n return false;\r\n }\r\n let refreshTokenTime: number = Date.now() + (1*60*60*1000);\r\n if (new Date(UserCentralContext.UserCentralToken.TokenExpire).getTime() <= refreshTokenTime) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n \r\n return {\r\n logoutUser: logoutUser,\r\n loginAndGetToken: loginAndGetToken,\r\n getComputingId: getComputingId,\r\n casRedirect: casRedirect,\r\n refreshToken: refreshToken,\r\n // validatePermission: validatePermission,\r\n checkToken: checkToken,\r\n checkTokenAndRefresh: checkTokenAndRefresh\r\n }\r\n \r\n })();\r\n \r\n export default UserManager;\r\n","import React from 'react';\r\nimport Image from 'react-bootstrap/Image';\r\nimport Row from 'react-bootstrap/Row';\r\nimport SFULogo from '../../../application/images/sfu_design/sfu-logo.png';\r\nimport './Header.css';\r\nimport { APP_TITLE } from '../../../application/common/constants';\r\nimport { UserCentralContext } from '../../../application/common/usermanagement';\r\nimport config from '../../../application/common/config'\r\n\r\nexport const Banner: React.FC = () => {\r\n const isNonProduction = (!process.env.NODE_ENV || process.env.NODE_ENV === 'development' ||\r\n process.env.NODE_ENV == 'test' || process.env.NODE_ENV == 'stage');\r\n return (\r\n \r\n \r\n
\r\n

{APP_TITLE}

\r\n {UserCentralContext?.CASUser?.ComputingId != null &&\r\n

\r\n Logged in as {UserCentralContext?.CASUser?.ComputingId}\r\n

\r\n }\r\n
\r\n {isNonProduction &&\r\n \r\n
\r\n

{config.ENVIRONMENT} ENVIRONMENT

\r\n
\r\n
\r\n }\r\n
\r\n );\r\n};\r\n","export default \"data:image/png;base64,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\"","import React, { useState } from 'react';\r\nimport './EditUser.css';\r\nimport { Button } from 'react-bootstrap';\r\nimport axios from 'axios';\r\nimport config from '../../../application/common/config';\r\n\r\nexport const EditUser: React.FC = () => {\r\n // get incoming data\r\n const dataString = localStorage.getItem('data');\r\n const data = dataString? JSON.parse(dataString) : null;\r\n\r\n const [Id, setId] = useState(data? data.Id : '');\r\n const [firstName, setFirstName] = useState(data ? data.FirstName : '')\r\n const [lastName, setlastName] = useState(data ? data.LastName: '')\r\n const [email, setEmail] = useState(data ? data.Email : '')\r\n\r\n // console.log(\"The Id received is: \", Id);\r\n\r\n // function for 'Submit' button\r\n const handleSubmit = async (event: { preventDefault: () => void; }) =>{\r\n event.preventDefault(); // prevent page refresh\r\n const editUser = { // the updated data I want to send\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Email: email\r\n };\r\n // do post call to get PIC auth token\r\n const serviceAccount = {\r\n \"accountName\": `${config.ACCOUNT}`,\r\n \"password\": `${config.PASSWORD}`,\r\n \"context\": \"All\"\r\n };\r\n let bearerToken = \"\";\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const responseToken = await axios.post(`${config.SERVICE_URL_TASK}/auth/token`, serviceAccount);\r\n // console.log(responseToken.data);\r\n bearerToken = responseToken.data.serviceToken;\r\n }\r\n catch(error){\r\n console.log(error);\r\n bearerToken = \"\";\r\n }\r\n // set the header for the put call to send updated data to Kuali\r\n const headers = {\r\n Authorization: `Bearer ${bearerToken}`,\r\n 'API-Key': 'Bearer ' + `${config.KUALI_BEARER}`,\r\n }; \r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const response = await axios.put(`${config.SERVICE_URL_TASK}/Kuali/EditUser/UserId/`+Id+'/FirstName/'+editUser.FirstName+'/LastName/'+editUser.LastName+'/Email/'+editUser.Email, editUser, {headers});\r\n // console.log('Data updated successfully', response.data);\r\n alert('Success!');\r\n\r\n // new Data\r\n const updateLocalStorage = {\r\n Id: data? data.Id : '',\r\n FirstName: editUser? editUser.FirstName : '',\r\n LastName: editUser? editUser.LastName : '',\r\n Email: editUser? editUser.Email : ''\r\n } \r\n // update localStorage with new data\r\n localStorage.setItem('data', JSON.stringify(updateLocalStorage));\r\n window.location.reload(); // reload the page\r\n }\r\n catch(error){\r\n // Handle any error that occurred during the request\r\n console.error('Error updating data:', error);\r\n alert('Error!');\r\n }\r\n };\r\n // function for 'Clear Form' button\r\n const clearForm = ()=>{\r\n setFirstName('');\r\n setlastName('');\r\n setEmail('');\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Edit User

\r\n
\r\n
\r\n
\r\n \r\n setFirstName(e.target.value)}\r\n required\r\n >\r\n \r\n \r\n setlastName(e.target.value)}\r\n required\r\n >\r\n \r\n \r\n setEmail(e.target.value)}\r\n required\r\n >\r\n \r\n
\r\n
\r\n
\r\n Save \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\nexport default EditUser;\r\n","import React from 'react';\r\n\r\ninterface JumbotronProps {\r\n title: string;\r\n}\r\n\r\nexport const Jumbotron: React.FC = ({ title, children }) => {\r\n return (\r\n
\r\n

{title}

\r\n {children}\r\n
\r\n );\r\n};\r\n","import { EditUser } from './presentation/components/EditUser/EditUser';\r\nimport { Logout } from './presentation/components/Authentication/Logout/Logout';\r\n\r\ninterface RouteType {\r\n label: string;\r\n path: string;\r\n component?: React.FC;\r\n isDropdown?: boolean;\r\n exact?: boolean;\r\n children?: Pick[];\r\n}\r\n\r\nexport const routes: RouteType[] = [\r\n {\r\n path: '/',\r\n label: 'Edit User',\r\n component: EditUser,\r\n exact: true\r\n },\r\n {\r\n path: '/logout',\r\n label: 'Logout',\r\n component: Logout,\r\n exact: true\r\n }\r\n];\r\n","import React, { useEffect } from 'react';\r\nimport { Jumbotron } from '../../../../infrastructure/components/Layout/Jumbotron';\r\nimport UserManager from '../../../../application/common/usermanagement';\r\n\r\nimport './Logout.css';\r\n\r\nexport const Logout: React.FC = () => {\r\n\r\n useEffect(() => {\r\n UserManager.logoutUser(true);\r\n })\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport Navbar from 'react-bootstrap/Navbar';\r\nimport Nav from 'react-bootstrap/Nav';\r\nimport NavDropdown from 'react-bootstrap/NavDropdown';\r\nimport Container from 'react-bootstrap/Container';\r\nimport Row from 'react-bootstrap/Row';\r\nimport { NavDropdownHover } from './NavDropdownHover';\r\nimport { Link } from 'react-router-dom';\r\nimport { Banner } from './Banner';\r\nimport { routes } from '../../../routes';\r\nimport './Header.css';\r\n\r\nexport const Header: React.FC = () => {\r\n let routeIndex = 0;\r\n const routeLinks = routes.map((route) => {\r\n routeIndex += 1;\r\n if (!route.isDropdown)\r\n return (\r\n \r\n {route.label}\r\n \r\n );\r\n else {\r\n return (\r\n \r\n {route.children?.map((dropdownItem) => {\r\n routeIndex += 1;\r\n return (\r\n \r\n {dropdownItem.label}\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport Container from 'react-bootstrap/Container';\r\nimport {\r\n BUILD_DATE,\r\n COPYRIGHT,\r\n VERSION,\r\n} from '../../../application/common/constants';\r\n\r\nexport const Footer: React.FC = () => {\r\n return (\r\n \r\n
{COPYRIGHT}
\r\n
\r\n Ver {VERSION} Build Date: {BUILD_DATE}\r\n
\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { STATUS } from '../../../application/common/constants';\r\n\r\nimport './Loading.css';\r\ninterface Spinner {\r\n status: STATUS;\r\n displayCondition: boolean;\r\n}\r\n\r\nexport const Spinner: React.FC = ({\r\n status,\r\n displayCondition,\r\n children,\r\n}) => {\r\n return (\r\n <>\r\n {status === STATUS.LOADING && (\r\n
\r\n
\r\n
\r\n )}\r\n {status === STATUS.COMPLETE && displayCondition && children}\r\n \r\n );\r\n};\r\n","import React, { createContext, useState, useEffect, Dispatch, SetStateAction } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Jumbotron } from '../../../../infrastructure/components/Layout/Jumbotron';\r\nimport { STATUS } from '../../../../application/common/constants';\r\nimport Button from 'react-bootstrap/Button';\r\nimport UserManager, { AUTH_STATUS } from '../../../../application/common/usermanagement';\r\nimport { Spinner } from '../../../../infrastructure/components/Loading/Spinner';\r\nimport config from '../../../../application/common/config';\r\nimport './Login.css';\r\nimport axios from 'axios';\r\n\r\nexport const Login: React.FC = () => {\r\n const [status, setStatus] = useState(STATUS.LOADING);\r\n useEffect(() => {\r\n if (status === STATUS.COMPLETE) {\r\n return;\r\n }\r\n let isMounted = true;\r\n authenticate().then(result => {\r\n ReactDOM.render(\r\n result,\r\n document.getElementById(\"loginView\")\r\n );\r\n if (isMounted) setStatus(STATUS.COMPLETE);\r\n })\r\n return () => { isMounted = false };\r\n }); \r\n\r\n function retryLogin() {\r\n UserManager.logoutUser();\r\n window.location.href = location.protocol + '//' + location.host + location.pathname;\r\n }\r\n\r\n // pass the data to receiving component (EditUser)\r\n const sendData = async(schoolId: string | null) =>{\r\n localStorage.clear(); // clear out any info previously stored\r\n if (schoolId != null){\r\n const serviceAcc = {\r\n \"accountName\": `${config.ACCOUNT}`,\r\n \"password\": `${config.PASSWORD}`,\r\n \"context\": \"All\"\r\n }\r\n let bearerToken = \"\";\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const responseToken = await axios.post(`${config.SERVICE_URL_API}/auth/token`, serviceAcc);\r\n // console.log(responseToken.data);\r\n bearerToken = responseToken.data.SERVICETOKEN;\r\n }\r\n catch(error){\r\n console.log(error);\r\n bearerToken = \"\";\r\n }\r\n // do the GET call to see if user in Kuali \r\n const headers = {\r\n Authorization: `Bearer ${bearerToken}`,\r\n 'API-Key': 'Bearer ' + `${config.KUALI_BEARER}`,\r\n }; \r\n const data = {\r\n Id: '',\r\n FirstName: '',\r\n LastName: '',\r\n Email: ''\r\n };\r\n try{\r\n const response = await axios.get(`${config.SERVICE_URL_API}/Kuali/GetUser/SchoolId/`+schoolId, {headers});\r\n // console.log(\"User info in Kuali: \", response.data);\r\n if (response.data == \"Response has no data\"){\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const getInfo = await axios.get(`${config.SERVICE_URL_API}/system/Account/`+schoolId, {\r\n headers: {Authorization: `Bearer ${bearerToken}`}\r\n });\r\n // console.log(getInfo.data);\r\n const jsonObject = JSON.parse(getInfo.data); // parse the JSON string to JSON object\r\n if (jsonObject.ComputingId != null){ // if the user info is valid\r\n // add user to Kuali\r\n const postUser = {\r\n \"name\": jsonObject.CommonName,\r\n \"username\": jsonObject.CommonName,\r\n \"email\": jsonObject.EmailAddress,\r\n \"firstName\": jsonObject.FirstNames,\r\n \"lastName\": jsonObject.LastName,\r\n \"schoolId\": jsonObject.ComputingId \r\n }\r\n \r\n // get the bearer token from PlatfromIntegratorCoreTask\r\n let bearerToken2 = \"\";\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const responseToken2 = await axios.post(`${config.SERVICE_URL_TASK}/auth/token`, serviceAcc);\r\n // console.log(responseToken2.data);\r\n bearerToken2 = responseToken2.data.serviceToken;\r\n }\r\n catch(error){\r\n console.log(error);\r\n bearerToken2 = \"\";\r\n };\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const postInfo = await axios.post(`${config.SERVICE_URL_TASK}/Kuali/CreateUser/Email/`+postUser.email+'?name='+postUser.name+\r\n '&username='+postUser.username+'&firstName='+postUser.firstName+'&lastName='+postUser.lastName+'&schoolId='+postUser.schoolId, postUser, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${bearerToken2}`,\r\n 'API-Key': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0NzhkNzg0NGZhNTBmMDAxNWRlMzk1NyIsImlzcyI6Imt1YWxpLmNvIiwiZXhwIjoxNzE3MjYzNDkyLCJpYXQiOjE2ODU2NDEwOTJ9.KKM1gAVfJyY8xvFLnS9zUg9xG-5Dnwuv0nUtKB9Tsos'\r\n }\r\n });\r\n // console.log(\"Added user to Kuali: \", postInfo.data);\r\n\r\n // do get call to get the added user's info:\r\n try{\r\n // console.log(`${config.SERVICE_URL_API}`);\r\n const addedUser = await axios.get(`${config.SERVICE_URL_API}/Kuali/GetUser/SchoolId/`+postUser.schoolId, {headers});\r\n // console.log(\"The added user was: \", addedUser.data);\r\n \r\n // bring up form with prefilled attributes\r\n data.Id = addedUser.data.ID;\r\n data.FirstName = addedUser.data.FIRSTNAME;\r\n data.LastName = addedUser.data.LASTNAME;\r\n data.Email = addedUser.data.EMAIL;\r\n // console.log(\"The passing Id is: \", data.Id);\r\n }catch(err){\r\n console.log(err);\r\n alert(\"Added user's info wasn't retrieved\");\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }catch(error){\r\n console.log(error);\r\n alert(\"User wasn't added to Kuali: User email not found, duplicated or user might be inActive!\");\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }\r\n else{\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }\r\n catch(error){\r\n console.log(error);\r\n alert(\"User info retrieval failed\");\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }\r\n else{\r\n // bring up form with prefilled attributes since user present in Kuali\r\n data.Id = response.data.ID;\r\n data.FirstName = response.data.FIRSTNAME;\r\n data.LastName = response.data.LASTNAME;\r\n data.Email = response.data.EMAIL;\r\n // console.log(\"The passing Id is: \", data.Id);\r\n }\r\n // send data to receiving component \r\n localStorage.setItem('data', JSON.stringify(data));\r\n window.location.href = '/';\r\n }\r\n catch(error){\r\n console.log(error);\r\n alert(\"Couldn't retrieve data for user associated to CAS ticket!\");\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }\r\n else{\r\n alert(\"ComputingId invalid or not found!\");\r\n // logout user\r\n UserManager.logoutUser();\r\n }\r\n }\r\n\r\n const authenticate = async () => {\r\n let authStatus: AUTH_STATUS = AUTH_STATUS.NONE;\r\n if (!(await UserManager.checkTokenAndRefresh())) { \r\n const windowUrl = window.location.search;\r\n const urlParams = new URLSearchParams(windowUrl);\r\n if (!urlParams.get('ticket')) { \r\n UserManager.casRedirect();\r\n setStatus(STATUS.COMPLETE);\r\n return (\r\n \r\n );\r\n }\r\n // if the ticket paramater is present, login and get token for this ticket\r\n authStatus = await UserManager.loginAndGetToken(window.location.href.replace(\"?ticket\", \"&ticket\"));\r\n if (authStatus == AUTH_STATUS.AUTHENTICATED){\r\n // get the computingID\r\n const schoolId = UserManager.getComputingId();\r\n // console.log(schoolId);\r\n await sendData(schoolId); \r\n }\r\n } else {\r\n authStatus = AUTH_STATUS.UNAUTHORIZED;\r\n }\r\n \r\n setStatus(STATUS.COMPLETE);\r\n switch (authStatus) {\r\n case AUTH_STATUS.AUTHENTICATED:\r\n window.location.reload();\r\n return (\r\n <>\r\n \r\n \r\n );\r\n case AUTH_STATUS.UNAUTHORIZED:\r\n return (\r\n \r\n

You are not authorized to access this application. Please contact your supervisor to get granted the following permission (Kuali User).

\r\n \r\n
\r\n );\r\n case AUTH_STATUS.ERROR:\r\n default:\r\n return (\r\n \r\n

An error occurred when trying to log into this application. Please contact the Office of Research Ethics for assistance, or try again below.

\r\n \r\n
\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Route, BrowserRouter, Switch } from 'react-router-dom';\r\nimport Container from 'react-bootstrap/Container';\r\nimport { Header } from './infrastructure/components/Header/Header';\r\nimport { Footer } from './infrastructure/components/Layout/Footer';\r\nimport UserManager, { ACCESS_PERMISSION } from './application/common/usermanagement';\r\nimport { Login } from './presentation/components/Authentication/Login/Login';\r\nimport { routes } from './routes';\r\nimport { Banner } from './infrastructure/components/Header/Banner';\r\n\r\nexport const App = (): JSX.Element => {\r\n if (!UserManager.checkToken()) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n