mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-10 09:12:51 +01:00
refactor: remove pocketbase (#1138)
This commit is contained in:
73
app/auth/permission.go
Normal file
73
app/auth/permission.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
var (
|
||||
TicketReadPermission = "ticket:read"
|
||||
TicketWritePermission = "ticket:write"
|
||||
FileReadPermission = "file:read"
|
||||
FileWritePermission = "file:write"
|
||||
TypeReadPermission = "type:read"
|
||||
TypeWritePermission = "type:write"
|
||||
UserReadPermission = "user:read"
|
||||
UserWritePermission = "user:write"
|
||||
GroupReadPermission = "group:read"
|
||||
GroupWritePermission = "group:write"
|
||||
ReactionReadPermission = "reaction:read"
|
||||
ReactionWritePermission = "reaction:write"
|
||||
WebhookReadPermission = "webhook:read"
|
||||
WebhookWritePermission = "webhook:write"
|
||||
SettingsReadPermission = "settings:read"
|
||||
SettingsWritePermission = "settings:write"
|
||||
)
|
||||
|
||||
func All() []string {
|
||||
return []string{
|
||||
TicketReadPermission,
|
||||
TicketWritePermission,
|
||||
FileReadPermission,
|
||||
FileWritePermission,
|
||||
TypeReadPermission,
|
||||
TypeWritePermission,
|
||||
UserReadPermission,
|
||||
UserWritePermission,
|
||||
GroupReadPermission,
|
||||
GroupWritePermission,
|
||||
ReactionReadPermission,
|
||||
ReactionWritePermission,
|
||||
WebhookReadPermission,
|
||||
WebhookWritePermission,
|
||||
SettingsReadPermission,
|
||||
SettingsWritePermission,
|
||||
}
|
||||
}
|
||||
|
||||
func FromJSONArray(ctx context.Context, permissions string) []string {
|
||||
var result []string
|
||||
if err := json.Unmarshal([]byte(permissions), &result); err != nil {
|
||||
slog.ErrorContext(ctx, "Failed to unmarshal permissions", "error", err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func ToJSONArray(ctx context.Context, permissions []string) string {
|
||||
if len(permissions) == 0 {
|
||||
return "[]"
|
||||
}
|
||||
|
||||
data, err := json.Marshal(permissions)
|
||||
if err != nil {
|
||||
slog.ErrorContext(ctx, "Failed to marshal permissions", "error", err)
|
||||
|
||||
return "[]"
|
||||
}
|
||||
|
||||
return string(data)
|
||||
}
|
||||
Reference in New Issue
Block a user