private async Task ValidateAndFixAclAsync()

in Core/src/Impl/Commands/StorageManager.cs [314:351]


    private async Task ValidateAndFixAclAsync(ILogger logger, int degreeOfParallelism, IEnumerable<SymbolStoragePath> files, bool fix)
    {
      if (!myStorage.SupportAccessMode)
      {
        logger.Warning("Validating access rights is not supported for storage");
        return;
      }

      logger.Info($"[{DateTime.Now:s}] Validating access rights{myId}...");
      await files.ParallelForAsync(degreeOfParallelism, async file =>
        {
          logger.Verbose($"  Validating {file}");
          if (TagUtil.IsTagFile(file) || TagUtil.IsStorageCasingFile(file))
          {
            if (await myStorage.GetAccessModeAsync(file) != AccessMode.Private)
            {
              logger.Error($"The internal file {file} has invalid access rights");
              if (fix)
              {
                logger.Fix($"Update access rights for the internal file {file}");
                await myStorage.SetAccessModeAsync(file, AccessMode.Private);
              }
            }
          }
          else
          {
            if (await myStorage.GetAccessModeAsync(file) != AccessMode.Public)
            {
              logger.Error($"The storage file {file} has invalid access rights");
              if (fix)
              {
                logger.Fix($"Update access rights for the storage file {file}");
                await myStorage.SetAccessModeAsync(file, AccessMode.Public);
              }
            }
          }
        });
    }