def matches
bend-kit-authz@0.1.0.0 · authz.bend:95
import bend-kit-authz@0.1.0.0/authz.bend as Authz
import Base
95def matches(t: Target, +req: Request) -> Tri:
96 match t:
97 case Everyone{}:
98 Yes{}
99 case Nobody{}:
100 No{}
101 case Action{name}:
102 Request{s, r, o, action, resource} = req
103 tri(String.eq(action, name))
104 case Resource{name}:
105 Request{s, r, o, action, resource} = req
106 tri(String.eq(resource, name))
107 case Subject{name}:
108 Request{s, r, o, action, resource} = req
109 subject.is(name, s)
110 case Role{name}:
111 Request{s, r, o, action, resource} = req
112 role.is(name, r)
113 case Owner{}:
114 Request{s, r, o, action, resource} = req
115 owner.of(s, o)
116 case AllOf{a, b}:
117 all(matches(a, req), matches(b, req))