kw unless
Контекстное слово — политика (§13.4)
Список слов: §1.4
Синтаксис
Rule = ( "allow" | "deny" ) ( "*" | RTarget { "," RTarget } ) ( "if" | "unless" ) Expr ;Грамматика: Прил. A
Определяется в
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 13.4 Авторизация и политики — Объект политики
Примеры
policy Orders {
allow get(id) if caller.isUser(db.find(Order, id)?.userId)
allow list, recent if caller.has(role: .Support)
allow * if caller.service("billing")
deny delete unless caller.has(role: .Admin) && caller is .User(mfa: true, ..)
}
@public rpc health() -> Ok
@allow(role: .Admin) rpc purge() -> Ok
@internal rpc create(…) -> OrderСвязанные диагностики
data-rights, missing-policy, unknown-policy-target