@@ -51,6 +51,7 @@ const ENV_DELETE_SUCCESS_RESP = "Environment deleted successfully."
5151type EnvironmentRestHandler interface {
5252 Create (w http.ResponseWriter , r * http.Request )
5353 Get (w http.ResponseWriter , r * http.Request )
54+ GetDataSourceName (w http.ResponseWriter , r * http.Request )
5455 GetAll (w http.ResponseWriter , r * http.Request )
5556 GetAllActive (w http.ResponseWriter , r * http.Request )
5657 Update (w http.ResponseWriter , r * http.Request )
@@ -167,6 +168,34 @@ func (impl EnvironmentRestHandlerImpl) Get(w http.ResponseWriter, r *http.Reques
167168 common .WriteJsonResp (w , err , bean , http .StatusOK )
168169}
169170
171+ func (impl EnvironmentRestHandlerImpl ) GetDataSourceName (w http.ResponseWriter , r * http.Request ) {
172+ vars := mux .Vars (r )
173+ environmentName := vars ["environmentName" ]
174+
175+ bean , err := impl .environmentClusterMappingsService .FindOne (environmentName )
176+ if err != nil {
177+ impl .logger .Errorw ("service err, Get" , "err" , err , "payload" , bean )
178+ common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
179+ return
180+ }
181+
182+ // RBAC enforcer applying
183+ token := r .Header .Get ("token" )
184+ if ok := impl .enforcer .Enforce (token , casbin .ResourceGlobalEnvironment , casbin .ActionGet , bean .EnvironmentIdentifier ); ! ok {
185+ common .WriteJsonResp (w , errors .New ("unauthorized" ), nil , http .StatusForbidden )
186+ return
187+ }
188+ //RBAC enforcer Ends
189+
190+ resp , err := impl .environmentClusterMappingsService .GetDataSourceName (bean )
191+ if err != nil {
192+ impl .logger .Errorw ("service err, Get" , "err" , err , "env" , environmentName )
193+ common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
194+ return
195+ }
196+ common .WriteJsonResp (w , err , resp , http .StatusOK )
197+ }
198+
170199func (impl EnvironmentRestHandlerImpl ) GetAll (w http.ResponseWriter , r * http.Request ) {
171200 environments , err := impl .environmentReadService .GetAll ()
172201 if err != nil {
0 commit comments