fix: avoid truncate permission import cycle (#18292)

This commit is contained in:
Luke Parker
2026-03-20 13:52:04 +10:00
committed by GitHub
parent 16a0abc970
commit ebbb4124b8
4 changed files with 30 additions and 8 deletions
@@ -0,0 +1,15 @@
import { Wildcard } from "@/util/wildcard"
type Rule = {
permission: string
pattern: string
action: "allow" | "deny" | "ask"
}
export function evaluate(permission: string, pattern: string, ...rulesets: Rule[][]): Rule {
const rules = rulesets.flat()
const match = rules.findLast(
(rule) => Wildcard.match(permission, rule.permission) && Wildcard.match(pattern, rule.pattern),
)
return match ?? { action: "ask", permission, pattern: "*" }
}