private getConfigForAdmin()

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;
      })
  }