26 lines
653 B
Go
26 lines
653 B
Go
package contexts
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.haelnorr.com/h/oslstats/internal/db"
|
|
)
|
|
|
|
// WithPreviewRole adds a preview role to the context
|
|
func WithPreviewRole(ctx context.Context, role *db.Role) context.Context {
|
|
return context.WithValue(ctx, PreviewRoleKey, role)
|
|
}
|
|
|
|
// GetPreviewRole retrieves the preview role from the context, or nil if not present
|
|
func GetPreviewRole(ctx context.Context) *db.Role {
|
|
if role, ok := ctx.Value(PreviewRoleKey).(*db.Role); ok {
|
|
return role
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// IsPreviewMode returns true if the user is currently in preview mode
|
|
func IsPreviewMode(ctx context.Context) bool {
|
|
return GetPreviewRole(ctx) != nil
|
|
}
|