github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/usersserver/get.go (about) 1 package usersserver 2 3 import ( 4 "encoding/json" 5 "net/http" 6 7 "github.com/pf-qiu/concourse/v6/atc" 8 "github.com/pf-qiu/concourse/v6/atc/api/accessor" 9 ) 10 11 func (s *Server) GetUser(w http.ResponseWriter, r *http.Request) { 12 hLog := s.logger.Session("user") 13 w.Header().Set("Content-Type", "application/json") 14 15 acc := accessor.GetAccessor(r) 16 17 claims := acc.Claims() 18 19 user := atc.UserInfo{ 20 Sub: claims.Sub, 21 Name: claims.UserName, 22 UserId: claims.UserID, 23 UserName: claims.PreferredUsername, 24 Email: claims.Email, 25 IsAdmin: acc.IsAdmin(), 26 IsSystem: acc.IsSystem(), 27 Teams: acc.TeamRoles(), 28 } 29 30 err := json.NewEncoder(w).Encode(user) 31 if err != nil { 32 hLog.Error("failed-to-encode-users", err) 33 w.WriteHeader(http.StatusInternalServerError) 34 } 35 return 36 }