summaryrefslogtreecommitdiff
path: root/app/domain
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-23 12:40:12 -0600
committermo khan <mo@mokhan.ca>2025-07-23 12:40:12 -0600
commitd2ebd0a9afed57ba11f053266e6ae1edb84a0f36 (patch)
treeeb547006085f2549f2cea5773c1ec75dba47bfd0 /app/domain
parent9674cfaedfdb8d583cfe75e1c1738a1c1d66c7f9 (diff)
feat: authorize requests to create sparkles
Diffstat (limited to 'app/domain')
-rw-r--r--app/domain/permission.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/domain/permission.go b/app/domain/permission.go
new file mode 100644
index 0000000..53d4754
--- /dev/null
+++ b/app/domain/permission.go
@@ -0,0 +1,21 @@
+package domain
+
+import (
+ v1 "github.com/authzed/authzed-go/proto/authzed/api/v1"
+)
+
+type Permission string
+
+func (p Permission) RequestFor(user Identifiable, resource Identifiable) *v1.CheckPermissionRequest {
+ return &v1.CheckPermissionRequest{
+ Subject: &v1.SubjectReference{
+ Object: user.ToObjectReference(),
+ },
+ Permission: p.String(),
+ Resource: resource.ToObjectReference(),
+ }
+}
+
+func (p Permission) String() string {
+ return string(p)
+}