Skip to content

Commit e53cb1c

Browse files
app autocomplete optimization
1 parent 3c441a4 commit e53cb1c

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

api/restHandler/app/AutoCompleteRestHandler.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,34 @@ func (handler PipelineConfigRestHandlerImpl) GetAppListForAutocomplete(w http.Re
5757
}
5858

5959
token := r.Header.Get("token")
60+
userEmailId, err := handler.userAuthService.GetEmailFromToken(token)
61+
if err != nil {
62+
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
63+
return
64+
}
6065
var accessedApps []*pipeline.AppBean
66+
var enforcerResult map[string]bool
6167
// RBAC
6268
objects := handler.enforcerUtil.GetRbacObjectsForAllApps()
69+
if !isActionUserSuperAdmin {
70+
objectArray := make([]string, len(apps))
71+
for _, app := range apps {
72+
object := objects[app.Id]
73+
objectArray = append(objectArray, object)
74+
}
75+
enforcerResult = handler.enforcer.EnforceByEmailInBatch(userEmailId, casbin.ResourceApplications, casbin.ActionGet, objectArray)
76+
}
6377
for _, app := range apps {
6478
if isActionUserSuperAdmin {
6579
accessedApps = append(accessedApps, app)
6680
continue
6781
}
6882
object := objects[app.Id]
69-
if ok := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionGet, object); ok {
83+
if ok := enforcerResult[object]; ok {
7084
accessedApps = append(accessedApps, app)
7185
}
7286
}
87+
7388
// RBAC
7489
if len(accessedApps) == 0 {
7590
accessedApps = make([]*pipeline.AppBean, 0)

0 commit comments

Comments
 (0)