diff --git a/website/package.json b/website/package.json index 9a2c8888..e8ef3030 100644 --- a/website/package.json +++ b/website/package.json @@ -4,8 +4,10 @@ "private": true, "scripts": { "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", + "start": "OAUTH_ENABLE=false docusaurus start", + "start:withAuth": "OAUTH_ENABLE=true docusaurus start", + "build": "OAUTH_ENABLE=true docusaurus build", + "build:withoutAuth": "OAUTH_ENABLE=false docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", diff --git a/website/src/api/github.js b/website/src/api/github.js index bf407760..439c975d 100644 --- a/website/src/api/github.js +++ b/website/src/api/github.js @@ -21,7 +21,7 @@ function bindApiCall({ url, config, errorMessage }) { async function getAccessToken(code) { const accessToken = await bindApiCall({ - url: `${process.env.REACT_APP_API_PROXY_ENABLE ? '/github-proxy' : 'https://github.com' }/login/oauth/access_token`, + url: `${process.env.REACT_APP_API_PROXY_ENABLE == 'true' ? '/github-proxy' : 'https://github.com'}/login/oauth/access_token`, config: { params: { code, @@ -37,7 +37,7 @@ async function getAccessToken(code) { export async function getUser(access_token) { const user = await bindApiCall({ - url: `${process.env.REACT_APP_API_PROXY_ENABLE ? '/github-api-proxy' : 'https://api.github.com'}/user`, + url: `${process.env.REACT_APP_API_PROXY_ENABLE == 'true' ? '/github-api-proxy' : 'https://api.github.com'}/user`, config: { headers: { Authorization: `token ${access_token}` }, }, @@ -49,7 +49,6 @@ export async function getUser(access_token) { error: user.data?.error_description, status: user.status } - } export async function checkUserCollaboratorStatus(code) { @@ -57,11 +56,11 @@ export async function checkUserCollaboratorStatus(code) { const { login } = await getUser(access_token) const isUserCollaborator = await bindApiCall({ - url: `${process.env.REACT_APP_API_PROXY_ENABLE ? '/docs-access' : 'https://j20f3pfq11.execute-api.us-east-1.amazonaws.com/Prod/u'}/${login}`, + url: `${process.env.REACT_APP_API_PROXY_ENABLE == 'true' ? '/docs-access' : 'https://j20f3pfq11.execute-api.us-east-1.amazonaws.com/Prod/u'}/${login}`, errorMessage: 'error checkUserCollaboratorStatus' }) return { - isAllowed: isUserCollaborator.data + userPermission: isUserCollaborator.data } } \ No newline at end of file diff --git a/website/src/theme/DocPage/index.js b/website/src/theme/DocPage/index.js index 997ca296..9be128a0 100644 --- a/website/src/theme/DocPage/index.js +++ b/website/src/theme/DocPage/index.js @@ -139,8 +139,7 @@ function DocPage(props) { ); // CUSTOM DOCPAGE - if (process.env.REACT_APP_OAUTH_ENABLE == 'true') { - const [isUserAuthorized, setIsUserAuthorized] = useState() + if (process.env.OAUTH_ENABLE == 'true') { const [isLoading, setIsLoading] = useState(true) const [redirectState, setRedirectState] = useState() const authQuery = qs.parse(location.search); @@ -149,17 +148,11 @@ function DocPage(props) { })()) useEffect(async () => { - if (userAccessStatus) { - setIsUserAuthorized(userAccessStatus) - } else { - if (!isEmpty(authQuery)) { //callback after successful auth with github - const isUserCollaborator = await checkUserCollaboratorStatus(authQuery.code); - if (isUserCollaborator?.isAllowed) { - setUserAccessStatus(isUserCollaborator?.isAllowed) - if (typeof window !== "undefined") window.localStorage.setItem('user-github-isAllowed', isUserCollaborator?.isAllowed); - } - - setIsUserAuthorized(isUserCollaborator?.isAllowed) + if (!isEmpty(authQuery) && userAccessStatus === null) { //callback after successful auth with github + const isUserCollaborator = await checkUserCollaboratorStatus(authQuery.code); + setUserAccessStatus(isUserCollaborator?.userPermission) + if (isUserCollaborator?.userPermission) { + if (typeof window !== "undefined") window.localStorage.setItem('user-github-isAllowed', isUserCollaborator?.userPermission); } } setIsLoading(false) @@ -168,11 +161,11 @@ function DocPage(props) { if (isLoading) return - if (isUserAuthorized === false) { + if (userAccessStatus === false) { return } - if (typeof isUserAuthorized == 'undefined' || isUserAuthorized?.status === 401) { + if (userAccessStatus === null) { return ( )