Files
ai-agent/internal/pkg/httpx/context.go
T
t 2bbf42b741 refactor(auth): delegate access control to be-system
Remove Agent Desk users, roles, login sessions, tokens, and local permission persistence. Expose the backend as an embeddable ai-agent module with host-provided subject lookup and operation authorization callbacks, and complete the frontend/backend repository split.
2026-08-21 00:41:07 +08:00

47 lines
1.1 KiB
Go

package httpx
import (
"code.tczkiot.com/wlw/ai-agent/internal/pkg/httpx/params"
"code.tczkiot.com/wlw/ai-agent/internal/pkg/openidentity"
"code.tczkiot.com/wlw/ai-agent/internal/pkg/tracex"
"github.com/gin-gonic/gin"
"github.com/mlogclub/simple/common/strs"
)
const (
ctxKeyExternalUser = "externalUser"
)
func SetExternalUser(ctx *gin.Context, ext *openidentity.ExternalUser) {
ctx.Set(ctxKeyExternalUser, ext)
}
func GetExternalUser(ctx *gin.Context) *openidentity.ExternalUser {
v, _ := ctx.Get(ctxKeyExternalUser)
ext, _ := v.(*openidentity.ExternalUser)
return ext
}
func GetChannelID(ctx *gin.Context) string {
if channelID := ctx.GetHeader("X-Channel-ID"); strs.IsNotBlank(channelID) {
return channelID
}
if channelID, _ := params.Get(ctx, "channelId"); strs.IsNotBlank(channelID) {
return channelID
}
return ""
}
func GetRequestID(ctx *gin.Context) string {
if ctx == nil {
return ""
}
if value, ok := ctx.Get(tracex.GinRequestIDKey); ok {
if requestID, ok := value.(string); ok {
return tracex.NormalizeRequestID(requestID)
}
}
return tracex.NormalizeRequestID(ctx.GetHeader(tracex.RequestIDHeader))
}