isAllowedSource method
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;
}