From dab7a5c4ae85b4767c76827778ef6d1177dc51cd Mon Sep 17 00:00:00 2001 From: Tom Wiesing Date: Tue, 3 Jan 2023 12:19:10 +0100 Subject: [PATCH] Show grants on instance info page --- .../component/control/info/html/instance.html | 44 ++++++++++++++++++- internal/status/wisski.go | 1 + .../wisski/ingredient/php/users/policy.go | 24 ++++++++++ internal/wisski/wisski.go | 1 + 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 internal/wisski/ingredient/php/users/policy.go diff --git a/internal/dis/component/control/info/html/instance.html b/internal/dis/component/control/info/html/instance.html index 9f3a48c..74862ab 100644 --- a/internal/dis/component/control/info/html/instance.html +++ b/internal/dis/component/control/info/html/instance.html @@ -176,8 +176,9 @@ +
-

Users

+

(Drupal) Users

@@ -260,6 +261,47 @@
+
+

(Distillery) Users

+
+ +
+
+
+ + + + + + + + + + {{ range $index, $grant := .Info.Grants }} + + + + + + {{ end }} + +
+ Distillery User + + WissKI User + + Admin +
+ {{ $grant.User }} + + {{ $grant.DrupalUsername }} + + {{ $grant.DrupalAdminRole }} +
+
+
+
+

WissKI Data

diff --git a/internal/status/wisski.go b/internal/status/wisski.go index 7974a18..ac2415c 100644 --- a/internal/status/wisski.go +++ b/internal/status/wisski.go @@ -37,6 +37,7 @@ type WissKI struct { Prefixes []string // list of prefixes Pathbuilders map[string]string // all the pathbuilders Users []User // all the known users + Grants []models.Grant } // Statistics holds statistics generated by the WissKI module diff --git a/internal/wisski/ingredient/php/users/policy.go b/internal/wisski/ingredient/php/users/policy.go new file mode 100644 index 0000000..dae30b9 --- /dev/null +++ b/internal/wisski/ingredient/php/users/policy.go @@ -0,0 +1,24 @@ +package users + +import ( + "github.com/FAU-CDI/wisski-distillery/internal/status" + "github.com/FAU-CDI/wisski-distillery/internal/wisski/ingredient" +) + +type UserPolicy struct { + ingredient.Base +} + +var ( + _ ingredient.WissKIFetcher = (*UserPolicy)(nil) +) + +func (up *UserPolicy) Fetch(flags ingredient.FetcherFlags, target *status.WissKI) (err error) { + if flags.Quick { + return nil + } + + // read the grants into the info struct + target.Grants, err = up.Malt.Policy.Instance(flags.Context, up.Slug) + return err +} diff --git a/internal/wisski/wisski.go b/internal/wisski/wisski.go index 8e41a52..3ad0bbe 100644 --- a/internal/wisski/wisski.go +++ b/internal/wisski/wisski.go @@ -106,6 +106,7 @@ func (wisski *WissKI) allIngredients() []initFunc { auto[*extras.Pathbuilder], auto[*extras.Stats], auto[*users.Users], + auto[*users.UserPolicy], // info manual(func(info *info.Info) {