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))

Uses (9)

Used by (1)