Provider-Wechsel nur für Admin (403 für Nutzer); App blendet Provider-Auswahl für Nicht-Admins aus; v0.3.1

This commit is contained in:
OpenClaw Dev 2026-11-01 04:17:53 +01:00
parent 161bc02bb9
commit 70d316851a
12 changed files with 102 additions and 17 deletions

View file

@ -253,6 +253,9 @@ type chatReq struct {
func (s *Server) startSession(ctx context.Context, req chatReq) (string, error) {
var a providers.Active
if req.SessionID == "" && req.Provider != "" && s.Providers != nil {
if !principal(ctx).Admin {
return "", errAdminOnly
}
var err error
if a, err = s.Providers.Validate(req.Provider, req.Model); err != nil {
return "", err
@ -288,6 +291,10 @@ func (s *Server) chat(w http.ResponseWriter, r *http.Request) {
return
}
id, err := s.startSession(r.Context(), req)
if errors.Is(err, errAdminOnly) {
writeErr(w, http.StatusForbidden, err.Error())
return
}
if err != nil {
if req.SessionID == "" && req.Provider != "" {
providerErr(w, err)