summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-23 15:33:14 -0600
committermo khan <mo@mokhan.ca>2025-07-23 15:33:14 -0600
commit7963e072161907e81544dcdc2ff04a49c9359096 (patch)
tree54c8c34feda2cdeee46cdf662d18d89889a7d609
parentf861b0df276d26ef8db1e27678f807d22dabd6e3 (diff)
refactor: remove create permission check
-rw-r--r--app/controllers/sparkles/controller.go2
-rw-r--r--app/controllers/sparkles/controller_test.go1
-rw-r--r--app/middleware/require_permission.go5
-rw-r--r--etc/authzd/relationships.yaml14
-rw-r--r--etc/authzd/schema.zed8
5 files changed, 17 insertions, 13 deletions
diff --git a/app/controllers/sparkles/controller.go b/app/controllers/sparkles/controller.go
index ef2ecd5..90767b2 100644
--- a/app/controllers/sparkles/controller.go
+++ b/app/controllers/sparkles/controller.go
@@ -30,7 +30,7 @@ func (c *Controller) MountTo(mux *http.ServeMux) {
mux.Handle("POST /sparkles", x.Middleware[http.Handler](
http.HandlerFunc(c.Create),
middleware.RequireUser(),
- middleware.RequirePermission("create", c.check),
+ // middleware.RequirePermission("create", c.check),
))
// This is a temporary endpoint to restore a backup
diff --git a/app/controllers/sparkles/controller_test.go b/app/controllers/sparkles/controller_test.go
index 64b4dc5..d2469a7 100644
--- a/app/controllers/sparkles/controller_test.go
+++ b/app/controllers/sparkles/controller_test.go
@@ -121,6 +121,7 @@ func TestSparkles(t *testing.T) {
})
t.Run("when the user is not authorized", func(t *testing.T) {
+ t.Skip()
mux := http.NewServeMux()
controller := New(repository, stub.Deny())
controller.MountTo(mux)
diff --git a/app/middleware/require_permission.go b/app/middleware/require_permission.go
index 441b334..399602f 100644
--- a/app/middleware/require_permission.go
+++ b/app/middleware/require_permission.go
@@ -15,7 +15,10 @@ func RequirePermission(permission domain.Permission, client authz.CheckPermissio
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := cfg.CurrentUser.From(r.Context())
- reply, err := client.CheckPermission(r.Context(), permission.RequestFor(user, &domain.Sparkle{ID: "*"}))
+ reply, err := client.CheckPermission(r.Context(), permission.RequestFor(
+ user,
+ &domain.Sparkle{ID: "*"},
+ ))
if err != nil {
pls.LogError(r.Context(), err)
w.WriteHeader(http.StatusForbidden)
diff --git a/etc/authzd/relationships.yaml b/etc/authzd/relationships.yaml
index 7f93052..1eb4459 100644
--- a/etc/authzd/relationships.yaml
+++ b/etc/authzd/relationships.yaml
@@ -1,12 +1,12 @@
schemaFile: "./schema.zed"
relationships: >-
- sparkle:1#author@user:mokhax
+ sparkle:1#sparkler@user:mokhax
sparkle:1#sparklee@user:tanuki
sparkle:1#reader@user:*
- sparkle:2#author@user:mona
+ sparkle:2#sparkler@user:mona
sparkle:2#sparklee@user:tanuki
@@ -15,12 +15,12 @@ assertions:
assertTrue:
- "sparkle:1#read@user:mokhax"
- "sparkle:1#read@user:tanuki"
- - "sparkle:1#write@user:mokhax"
+ - "sparkle:1#update@user:mokhax"
- "sparkle:2#read@user:mokhax"
- "sparkle:2#read@user:mona"
- "sparkle:2#read@user:tanuki"
- - "sparkle:2#write@user:mona"
+ - "sparkle:2#update@user:mona"
assertFalse:
- - "sparkle:1#write@user:tanuki"
- - "sparkle:2#write@user:tanuki"
- - "sparkle:2#write@user:mokha"
+ - "sparkle:1#update@user:tanuki"
+ - "sparkle:2#update@user:tanuki"
+ - "sparkle:2#update@user:mokhax"
diff --git a/etc/authzd/schema.zed b/etc/authzd/schema.zed
index 9af95cc..928939d 100644
--- a/etc/authzd/schema.zed
+++ b/etc/authzd/schema.zed
@@ -1,10 +1,10 @@
-definition user {}
+definition user { }
definition sparkle {
- relation author: user
+ relation sparkler: user
relation sparklee: user
relation reader: user:*
- permission read = sparklee + author + reader
- permission write = author
+ permission read = sparklee + sparkler + reader
+ permission update = sparkler
}