Skip to content

Commit d63fd1a

Browse files
FIX: Hotfixes epic bugathon 02 ISSUE: user auth issues, api error response , cluster soft delete (#486)
* user auth api error response for structured * cluster listing soft delete items excludes * environment autocomplete api added auth disable functionality
1 parent 48d94f2 commit d63fd1a

File tree

4 files changed

+32
-17
lines changed

4 files changed

+32
-17
lines changed

api/restHandler/EnvironmentRestHandler.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,27 @@ func (impl EnvironmentRestHandlerImpl) GetEnvironmentListForAutocomplete(w http.
257257
writeJsonResp(w, err, nil, http.StatusInternalServerError)
258258
return
259259
}
260+
261+
v := r.URL.Query()
262+
authEnabled := true
263+
auth := v.Get("auth")
264+
if len(auth) > 0 {
265+
authEnabled, err = strconv.ParseBool(auth)
266+
if err != nil {
267+
authEnabled = true
268+
err = nil
269+
//ignore error, apply rbac by default
270+
}
271+
}
260272
token := r.Header.Get("token")
261273
// RBAC enforcer applying
262274
var grantedEnvironment []request.EnvironmentBean
263275
for _, item := range environments {
264-
if ok := impl.enforcer.Enforce(token, rbac.ResourceGlobalEnvironment, rbac.ActionGet, strings.ToLower(item.Environment)); ok {
276+
if authEnabled == true {
277+
if ok := impl.enforcer.Enforce(token, rbac.ResourceGlobalEnvironment, rbac.ActionGet, strings.ToLower(item.Environment)); ok {
278+
grantedEnvironment = append(grantedEnvironment, item)
279+
}
280+
} else {
265281
grantedEnvironment = append(grantedEnvironment, item)
266282
}
267283
}

api/restHandler/UserAuthHandler.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"github.com/devtron-labs/devtron/pkg/sso"
2828
"github.com/devtron-labs/devtron/pkg/user"
2929
"github.com/devtron-labs/devtron/util/rbac"
30-
"github.com/devtron-labs/devtron/util/response"
3130
"github.com/gorilla/mux"
3231
"github.com/nats-io/stan"
3332
"go.uber.org/zap"
@@ -148,7 +147,7 @@ func (handler UserAuthHandlerImpl) AddPolicy(w http.ResponseWriter, r *http.Requ
148147
// RBAC enforcer applying
149148
token := r.Header.Get("token")
150149
if ok := handler.enforcer.Enforce(token, rbac.ResourceAdmin, rbac.ActionCreate, string(userId)); !ok {
151-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
150+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
152151
return
153152
}
154153
//RBAC enforcer Ends
@@ -188,7 +187,7 @@ func (handler UserAuthHandlerImpl) RemovePolicy(w http.ResponseWriter, r *http.R
188187
// RBAC enforcer applying
189188
token := r.Header.Get("token")
190189
if ok := handler.enforcer.Enforce(token, rbac.ResourceAdmin, rbac.ActionDelete, userId); !ok {
191-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
190+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
192191
return
193192
}
194193
//RBAC enforcer Ends

api/restHandler/UserRestHandler.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -184,14 +184,14 @@ func (handler UserRestHandlerImpl) UpdateUser(w http.ResponseWriter, r *http.Req
184184
for _, filter := range userInfo.RoleFilters {
185185
if len(filter.Team) > 0 {
186186
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionUpdate, strings.ToLower(filter.Team)); !ok {
187-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
187+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
188188
return
189189
}
190190
}
191191
}
192192
} else {
193193
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionUpdate, "*"); !ok {
194-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
194+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
195195
return
196196
}
197197
}
@@ -290,7 +290,7 @@ func (handler UserRestHandlerImpl) GetById(w http.ResponseWriter, r *http.Reques
290290
authPass = true
291291
}
292292
if authPass == false {
293-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
293+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
294294
return
295295
}
296296
}
@@ -372,7 +372,7 @@ func (handler UserRestHandlerImpl) GetUserByEmail(w http.ResponseWriter, r *http
372372
for _, filter := range res.RoleFilters {
373373
if len(filter.Team) > 0 {
374374
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionGet, strings.ToLower(filter.Team)); !ok {
375-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
375+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
376376
return
377377
}
378378
}
@@ -410,14 +410,14 @@ func (handler UserRestHandlerImpl) DeleteUser(w http.ResponseWriter, r *http.Req
410410
for _, filter := range user.RoleFilters {
411411
if len(filter.Team) > 0 {
412412
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionDelete, strings.ToLower(filter.Team)); !ok {
413-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
413+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
414414
return
415415
}
416416
}
417417
}
418418
} else {
419419
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionDelete, ""); !ok {
420-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
420+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
421421
return
422422
}
423423
}
@@ -456,7 +456,7 @@ func (handler UserRestHandlerImpl) FetchRoleGroupById(w http.ResponseWriter, r *
456456
for _, filter := range res.RoleFilters {
457457
if len(filter.Team) > 0 {
458458
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionGet, strings.ToLower(filter.Team)); !ok {
459-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
459+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
460460
return
461461
}
462462
}
@@ -490,14 +490,14 @@ func (handler UserRestHandlerImpl) CreateRoleGroup(w http.ResponseWriter, r *htt
490490
for _, filter := range request.RoleFilters {
491491
if len(filter.Team) > 0 {
492492
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionCreate, strings.ToLower(filter.Team)); !ok {
493-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
493+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
494494
return
495495
}
496496
}
497497
}
498498
} else {
499499
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionCreate, "*"); !ok {
500-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
500+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
501501
return
502502
}
503503
}
@@ -545,14 +545,14 @@ func (handler UserRestHandlerImpl) UpdateRoleGroup(w http.ResponseWriter, r *htt
545545
for _, filter := range request.RoleFilters {
546546
if len(filter.Team) > 0 {
547547
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionUpdate, strings.ToLower(filter.Team)); !ok {
548-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
548+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
549549
return
550550
}
551551
}
552552
}
553553
} else {
554554
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionUpdate, "*"); !ok {
555-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
555+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
556556
return
557557
}
558558
}
@@ -635,7 +635,7 @@ func (handler UserRestHandlerImpl) DeleteRoleGroup(w http.ResponseWriter, r *htt
635635
for _, filter := range userGroup.RoleFilters {
636636
if len(filter.Team) > 0 {
637637
if ok := handler.enforcer.Enforce(token, rbac.ResourceUser, rbac.ActionDelete, strings.ToLower(filter.Team)); !ok {
638-
response.WriteResponse(http.StatusForbidden, "FORBIDDEN", w, errors.New("unauthorized"))
638+
writeJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
639639
return
640640
}
641641
}

pkg/cluster/ClusterService.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ func (impl ClusterServiceImpl) FindOneActive(clusterName string) (*ClusterBean,
221221
}
222222

223223
func (impl ClusterServiceImpl) FindAll() ([]*ClusterBean, error) {
224-
model, err := impl.clusterRepository.FindAll()
224+
model, err := impl.clusterRepository.FindAllActive()
225225
if err != nil {
226226
return nil, err
227227
}

0 commit comments

Comments
 (0)