2020-07-08 13:56:37 +02:00
|
|
|
package authz
|
2020-04-07 13:23:04 +02:00
|
|
|
|
2025-06-18 13:24:39 +02:00
|
|
|
import (
|
|
|
|
"context"
|
2020-04-07 13:23:04 +02:00
|
|
|
|
2025-06-18 13:24:39 +02:00
|
|
|
"golang.org/x/text/language"
|
|
|
|
)
|
|
|
|
|
|
|
|
type MockContextInstanceOpts func(i *instance)
|
|
|
|
|
|
|
|
func WithMockDefaultLanguage(lang language.Tag) MockContextInstanceOpts {
|
|
|
|
return func(i *instance) {
|
|
|
|
i.defaultLanguage = lang
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewMockContext(instanceID, orgID, userID string, opts ...MockContextInstanceOpts) context.Context {
|
2022-03-23 09:02:39 +01:00
|
|
|
ctx := context.WithValue(context.Background(), dataKey, CtxData{UserID: userID, OrgID: orgID})
|
2025-06-18 13:24:39 +02:00
|
|
|
|
|
|
|
i := &instance{id: instanceID}
|
|
|
|
for _, o := range opts {
|
|
|
|
o(i)
|
|
|
|
}
|
|
|
|
|
|
|
|
return context.WithValue(ctx, instanceKey, i)
|
2020-04-07 13:23:04 +02:00
|
|
|
}
|
2021-03-15 12:51:15 +01:00
|
|
|
|
2025-01-14 14:15:59 +01:00
|
|
|
func NewMockContextWithAgent(instanceID, orgID, userID, agentID string) context.Context {
|
|
|
|
ctx := context.WithValue(context.Background(), dataKey, CtxData{UserID: userID, OrgID: orgID, AgentID: agentID})
|
|
|
|
return context.WithValue(ctx, instanceKey, &instance{id: instanceID})
|
|
|
|
}
|
|
|
|
|
2022-03-23 09:02:39 +01:00
|
|
|
func NewMockContextWithPermissions(instanceID, orgID, userID string, permissions []string) context.Context {
|
|
|
|
ctx := context.WithValue(context.Background(), dataKey, CtxData{UserID: userID, OrgID: orgID})
|
2023-07-10 15:27:00 +02:00
|
|
|
ctx = context.WithValue(ctx, instanceKey, &instance{id: instanceID})
|
2021-03-15 12:51:15 +01:00
|
|
|
return context.WithValue(ctx, requestPermissionsKey, permissions)
|
|
|
|
}
|