mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
28 lines
562 B
Go
28 lines
562 B
Go
// Package tenant provides multi-tenancy helpers
|
|
package tenant
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/micro/micro/v3/service/auth"
|
|
)
|
|
|
|
// FromContext returns a tenant from the context
|
|
func FromContext(ctx context.Context) (string, bool) {
|
|
acc, ok := auth.AccountFromContext(ctx)
|
|
if !ok {
|
|
return "", false
|
|
}
|
|
return FromAccount(acc), true
|
|
}
|
|
|
|
// FromAccount returns a tenant from
|
|
func FromAccount(acc *auth.Account) string {
|
|
owner := acc.Metadata["apikey_owner"]
|
|
if len(owner) == 0 {
|
|
owner = acc.ID
|
|
}
|
|
return fmt.Sprintf("%s/%s", acc.Issuer, owner)
|
|
}
|