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:
parent
161bc02bb9
commit
70d316851a
12 changed files with 102 additions and 17 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue