in authui-container/server/auth-server.ts [464:492]
private getConfigForAdmin(accessToken: string, hostname: string): Promise<UiConfig | null> {
let bucketName: string;
const fileName = CONFIG_FILE_NAME;
// Required OAuth scope: https://www.googleapis.com/auth/devstorage.read_write
const accessTokenManager = {
getAccessToken: () => Promise.resolve(accessToken),
};
const cloudStorageHandler = new CloudStorageHandler(this.metadataServer, accessTokenManager);
// Check bucket exists first.
return this.getBucketName()
.then((retrievedBucketName) => {
bucketName = retrievedBucketName;
return cloudStorageHandler.readFile(bucketName, fileName);
})
.catch((error) => {
if ((error.message && error.message.toLowerCase().indexOf('not found') !== -1) ||
error.statusCode === 404) {
// Since we can't check permissions on a non-existant bucket,
// check user can list buckets.
return cloudStorageHandler.listBuckets()
.then(() => {
// If not found, but user can list buckets, return default config.
// Otherwise throw an error.
return this.getDefaultConfig(hostname);
});
}
throw error;
})
}