MCPcopy Create free account
hub / github.com/boringproxy/boringproxy / handleClients

Method handleClients

ui_handler.go:411–470  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request, user User, tokenData TokenData)

Source from the content-addressed store, hash-verified

409}
410
411func (h *WebUiHandler) handleClients(w http.ResponseWriter, r *http.Request, user User, tokenData TokenData) {
412
413 r.ParseForm()
414
415 switch r.Method {
416 case "GET":
417 var users map[string]User
418
419 // TODO: handle security checks in api
420 if user.IsAdmin {
421 users = h.db.GetUsers()
422 } else {
423 user, _ := h.db.GetUser(tokenData.Owner)
424 users = make(map[string]User)
425 users[tokenData.Owner] = user
426 }
427
428 clients := make(map[string]DbClient)
429
430 for _, user := range users {
431 for clientName, client := range user.Clients {
432 clients[clientName] = client
433 }
434 }
435
436 templateData := struct {
437 User User
438 Users map[string]User
439 Clients map[string]DbClient
440 }{
441 User: user,
442 Users: users,
443 Clients: clients,
444 }
445
446 err := h.tmpl.ExecuteTemplate(w, "clients.tmpl", templateData)
447 if err != nil {
448 w.WriteHeader(500)
449 io.WriteString(w, err.Error())
450 return
451 }
452 case "POST":
453
454 owner := r.Form.Get("owner")
455 clientName := r.Form.Get("client-name")
456
457 err := h.api.SetClient(tokenData, r.Form, owner, clientName)
458 if err != nil {
459 w.WriteHeader(500)
460 h.alertDialog(w, r, err.Error(), "/clients")
461 return
462 }
463
464 http.Redirect(w, r, "/clients", 303)
465 default:
466 w.WriteHeader(405)
467 h.alertDialog(w, r, "Invalid method for tokens", "/tokens")
468 return

Callers 1

handleWebUiRequestMethod · 0.95

Calls 4

alertDialogMethod · 0.95
GetUserMethod · 0.80
SetClientMethod · 0.80
GetUsersMethod · 0.45

Tested by

no test coverage detected