mirror of
https://github.com/larksuite/cli.git
synced 2026-07-20 02:42:15 +08:00
Port changes from feat/strict-mode-identity-filter_3 branch: - Add strict mode for identity filtering and configuration - Add profile management commands (add/list/remove/rename/use) - Add credential extension framework (registry, env provider) - Add VFS abstraction layer - Refactor factory default and client options - Update shortcuts to use new credential and validation patterns Change-Id: I8c104c6b147e1901d94aefcefe35a174932c742b Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package cmdutil
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
const skipAuthCheckKey = "skipAuthCheck"
|
|
const annotationSupportedIdentities = "lark:supportedIdentities"
|
|
|
|
// SetSupportedIdentities marks which identities a command supports.
|
|
func SetSupportedIdentities(cmd *cobra.Command, identities []string) {
|
|
if cmd.Annotations == nil {
|
|
cmd.Annotations = map[string]string{}
|
|
}
|
|
cmd.Annotations[annotationSupportedIdentities] = strings.Join(identities, ",")
|
|
}
|
|
|
|
// GetSupportedIdentities returns the declared identities, or nil if not declared.
|
|
func GetSupportedIdentities(cmd *cobra.Command) []string {
|
|
v, ok := cmd.Annotations[annotationSupportedIdentities]
|
|
if !ok || v == "" {
|
|
return nil
|
|
}
|
|
return strings.Split(v, ",")
|
|
}
|
|
|
|
// DisableAuthCheck marks a command (and all its children) as not requiring auth.
|
|
func DisableAuthCheck(cmd *cobra.Command) {
|
|
if cmd.Annotations == nil {
|
|
cmd.Annotations = map[string]string{}
|
|
}
|
|
cmd.Annotations[skipAuthCheckKey] = "true"
|
|
}
|
|
|
|
// IsAuthCheckDisabled returns true if the command or any ancestor has auth check disabled.
|
|
func IsAuthCheckDisabled(cmd *cobra.Command) bool {
|
|
for c := cmd; c != nil; c = c.Parent() {
|
|
if c.Annotations != nil && c.Annotations[skipAuthCheckKey] == "true" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|