diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-23 15:33:14 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-23 15:33:14 -0600 |
| commit | 7963e072161907e81544dcdc2ff04a49c9359096 (patch) | |
| tree | 54c8c34feda2cdeee46cdf662d18d89889a7d609 | |
| parent | f861b0df276d26ef8db1e27678f807d22dabd6e3 (diff) | |
refactor: remove create permission check
| -rw-r--r-- | app/controllers/sparkles/controller.go | 2 | ||||
| -rw-r--r-- | app/controllers/sparkles/controller_test.go | 1 | ||||
| -rw-r--r-- | app/middleware/require_permission.go | 5 | ||||
| -rw-r--r-- | etc/authzd/relationships.yaml | 14 | ||||
| -rw-r--r-- | etc/authzd/schema.zed | 8 |
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 } |
