Commit ed89be44 authored by Stephan Renatus's avatar Stephan Renatus Committed by Eric Chiang

bugfix: make getCreds work for non-admins (#396)

parent 70cb0546
...@@ -88,7 +88,7 @@ type authedHandle func(w http.ResponseWriter, r *http.Request, ps httprouter.Par ...@@ -88,7 +88,7 @@ type authedHandle func(w http.ResponseWriter, r *http.Request, ps httprouter.Par
// that of an admin user. // that of an admin user.
func (s *UserMgmtServer) authAPIHandle(handle authedHandle, requiresAdmin bool) httprouter.Handle { func (s *UserMgmtServer) authAPIHandle(handle authedHandle, requiresAdmin bool) httprouter.Handle {
return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
creds, err := s.getCreds(r) creds, err := s.getCreds(r, requiresAdmin)
if err != nil { if err != nil {
s.writeError(w, err) s.writeError(w, err)
return return
...@@ -243,7 +243,7 @@ func (s *UserMgmtServer) writeError(w http.ResponseWriter, err error) { ...@@ -243,7 +243,7 @@ func (s *UserMgmtServer) writeError(w http.ResponseWriter, err error) {
writeAPIError(w, http.StatusInternalServerError, newAPIError(errorServerError, err.Error())) writeAPIError(w, http.StatusInternalServerError, newAPIError(errorServerError, err.Error()))
} }
func (s *UserMgmtServer) getCreds(r *http.Request) (api.Creds, error) { func (s *UserMgmtServer) getCreds(r *http.Request, requiresAdmin bool) (api.Creds, error) {
token, err := oidc.ExtractBearerToken(r) token, err := oidc.ExtractBearerToken(r)
if err != nil { if err != nil {
log.Errorf("userMgmtServer: GetCreds err: %q", err) log.Errorf("userMgmtServer: GetCreds err: %q", err)
...@@ -300,7 +300,7 @@ func (s *UserMgmtServer) getCreds(r *http.Request) (api.Creds, error) { ...@@ -300,7 +300,7 @@ func (s *UserMgmtServer) getCreds(r *http.Request) (api.Creds, error) {
log.Errorf("userMgmtServer: GetCreds err: %q", err) log.Errorf("userMgmtServer: GetCreds err: %q", err)
return api.Creds{}, err return api.Creds{}, err
} }
if !isAdmin { if requiresAdmin && !isAdmin {
return api.Creds{}, api.ErrorForbidden return api.Creds{}, api.ErrorForbidden
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment