diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-24 00:08:00 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-24 00:08:00 -0600 |
| commit | a8e47145f93f07740d751be37d450599b26b2fc8 (patch) | |
| tree | 3d8fdd7f7fcbda853cf1f42b4a5d96df57c3d71d /app/middleware/permission.go | |
| parent | 1ab4de8ec28d4fdd46cd9b3e246eea4a85ca6b6c (diff) | |
feat: create middleware to check if user has permission
Diffstat (limited to 'app/middleware/permission.go')
| -rw-r--r-- | app/middleware/permission.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/middleware/permission.go b/app/middleware/permission.go new file mode 100644 index 0000000..03e7cf9 --- /dev/null +++ b/app/middleware/permission.go @@ -0,0 +1,24 @@ +package middleware + +import ( + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd.git/pkg/rpc" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/domain" +) + +type Permission string + +func (p Permission) ToGID() string { + return "gid://sparkle/Permission/" + p.String() +} + +func (p Permission) RequestFor(user domain.Identifiable, resource domain.Identifiable) *rpc.AllowRequest { + return &rpc.AllowRequest{ + Subject: user.ToGID(), + Permission: p.ToGID(), + Resource: resource.ToGID(), + } +} + +func (p Permission) String() string { + return string(p) +} |
