Files
threshold/internal/iam/ids.go
T
shadowdaoandClaude Sonnet 5.5 962d708fdd Rename Go module paths to repo.anhonesthost.net/CyberCoveLLC/threshold
Rename root, api and sdk module paths (imports, go.mod, go_package,
ldflags, build scripts, buf configs) and regenerate protobuf/gateway
code with the project's pinned toolchain. Wire identifiers unchanged.
api gets a local replace for sdk; root/api/sdk require v0.1.0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 10:33:41 -07:00

56 lines
1.4 KiB
Go

// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: BUSL-1.1
package iam
import (
"context"
"fmt"
"repo.anhonesthost.net/CyberCoveLLC/threshold/globals"
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/db"
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/errors"
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/types/scope"
)
const (
// RoleGrantPrefix is the prefix for role grants
RoleGrantPrefix = "rg"
)
func newRoleId(ctx context.Context) (string, error) {
id, err := db.NewPublicId(ctx, globals.RolePrefix)
if err != nil {
return "", errors.Wrap(ctx, err, "iam.newRoleId")
}
return id, nil
}
func newUserId(ctx context.Context) (string, error) {
id, err := db.NewPublicId(ctx, globals.UserPrefix)
if err != nil {
return "", errors.Wrap(ctx, err, "iam.newUserId")
}
return id, nil
}
func newGroupId(ctx context.Context) (string, error) {
id, err := db.NewPublicId(ctx, globals.GroupPrefix)
if err != nil {
return "", errors.Wrap(ctx, err, "iam.newGroupId")
}
return id, nil
}
func newScopeId(ctx context.Context, scopeType scope.Type) (string, error) {
const op = "iam.newScopeId"
if scopeType == scope.Unknown {
return "", errors.New(ctx, errors.InvalidParameter, op, "unknown scope is not supported")
}
id, err := db.NewPublicId(ctx, scopeType.Prefix())
if err != nil {
return "", errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("scope type: %s", scopeType.String())))
}
return id, nil
}