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
+
+
+
+
+
+
+
+
+ |
+ Distillery User
+ |
+
+ WissKI User
+ |
+
+ Admin
+ |
+
+
+
+ {{ range $index, $grant := .Info.Grants }}
+
+
+ {{ $grant.User }}
+ |
+
+ {{ $grant.DrupalUsername }}
+ |
+
+ {{ $grant.DrupalAdminRole }}
+ |
+
+ {{ end }}
+
+
+
+
+
+
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) {