diff --git a/src/cognito/access-control.ts b/src/cognito/access-control.ts index 6b531ac..5e8c387 100644 --- a/src/cognito/access-control.ts +++ b/src/cognito/access-control.ts @@ -17,6 +17,7 @@ export enum Scopes { CATEGORIES_WRITE = 'categories.write', MARKETS_READ = 'markets.read', KEYWORDS_READ = 'keywords.read', + KEYWORDS_PUBLIC_READ = 'keywords.public.read', KEYWORDS_WRITE = 'keywords.write', LOCALES_READ = 'locales.read', TEXTS_READ = 'texts.read', @@ -102,6 +103,17 @@ export const ScopeAccess = (() => { return validationObject(Object.values(Scopes)); } + if (user.userName === 'public_access_user') { + // Public access user has all public scopes + return validationObject([ + Scopes.CATEGORIES_PUBLIC_READ, + Scopes.DESIGNERS_PUBLIC_READ, + Scopes.INTERIORS_PUBLIC_READ, + Scopes.PRODUCTS_PUBLIC_READ, + Scopes.KEYWORDS_PUBLIC_READ, + ]); + } + // AccessToken with scopes return validationObject(getScopes(user)); }, diff --git a/src/cognito/cognito-client.ts b/src/cognito/cognito-client.ts index 175d6e7..fe6b74d 100644 --- a/src/cognito/cognito-client.ts +++ b/src/cognito/cognito-client.ts @@ -221,9 +221,13 @@ const verifyAuthentication = async (req: IncomingMessage) => { accessToken: null, idToken: null, }; - } else { - notAuthorizedError(); } + return { + userName: 'public_access_user', + isValid: true, + accessToken: null, + idToken: null, + }; }; export { verifyToken, verifyAuthentication };