@@ -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