isAllowedSource method

bool isAllowedSource({
  1. required String type,
  2. required Uri uri,
  3. required Uri? selfUri,
})

Evaluates whether the action is allowed.

Implementation

bool isAllowedSource({
  required String type,
  required Uri uri,
  required Uri? selfUri,
}) {
  final directives = getAllowedSources(type: type);
  if (directives.contains(none)) {
    return false;
  }
  if (directives.contains(wildcard)) {
    return true;
  }
  if (directives.contains(self) && selfUri != null) {
    if (selfUri.host == uri.host) {
      return true;
    }
  }
  for (var directive in directives) {
    if (directive.contains('://')) {
      final parseddirective = Uri.parse(directive);
      if (parseddirective.scheme == uri.scheme &&
          parseddirective.host == uri.host) {
        return true;
      }
    } else {
      if (directive == uri.host) {
        return true;
      }
    }
  }
  return false;
}