diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-09 01:16:35 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-09 01:16:35 -0300 |
| commit | 254d106c92dcabcdeb83a5d0141deca22ffb79de (patch) | |
| tree | c99478aed6730365fcdd907b7bd777e3b7e2237a /lib/kernel/Branch.ml | |
| parent | 4896005e5d156e8a590b12946a54507daa895686 (diff) | |
| download | RNT-254d106c92dcabcdeb83a5d0141deca22ffb79de.tar.gz RNT-254d106c92dcabcdeb83a5d0141deca22ffb79de.zip | |
admission protocol for multigroup denial checks
Diffstat (limited to '')
| -rw-r--r-- | lib/kernel/Branch.ml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/kernel/Branch.ml b/lib/kernel/Branch.ml index 936391c..70e0711 100644 --- a/lib/kernel/Branch.ml +++ b/lib/kernel/Branch.ml @@ -118,8 +118,24 @@ module Make (S : Abstract.Storage.STORAGE) = struct ~constructor:(fun node' -> MultigroupM.from node' |> make |> Result.ok ) ] ) in let open Utilities.Result in + let admits (m, multigroup) = + Protocols.Handle.releasing multigroup (fun () -> + let* admission = Protocols.Admission.require multigroup in + let* violations = Protocols.Admission.check admission in + Ok + (List.map + (fun (d, tuples) -> + Path.(to_string ("multigroup" @/ m @/ "denial" @/ d @/ this)), tuples ) + violations ) ) + in Protocols. [ Addressable.make self; + Admission.make + object + method check = + let* named = Prototype.Directory.children multigroups in + List.map admits named |> Utilities.List.sequence |> Result.map List.concat + end; Prototype.Associative.( of_properties [ ( "multigroup", |
