@@ -243,11 +243,34 @@ func (h *Handler) handleActivate(req *restful.Request, resp *restful.Response) {
243243 return
244244 }
245245
246+ // for owner user, use the reverse proxy config from the payload
247+ // for non-owner user, reuse the owner's reverse proxy config
248+ isOwner := userOp .GetUserAnnotation (user , constants .UserAnnotationOwnerRole ) == constants .RoleOwner
249+
246250 reverseProxyConf := & ReverseProxyConfig {}
247- if payload .FRP .Host != "" {
248- reverseProxyConf .EnableFRP = true
249- reverseProxyConf .FRPServer = payload .FRP .Host
250- reverseProxyConf .FRPAuthMethod = FRPAuthMethodJWS
251+ if isOwner {
252+ if payload .FRP .Host != "" {
253+ reverseProxyConf .EnableFRP = true
254+ reverseProxyConf .FRPServer = payload .FRP .Host
255+ reverseProxyConf .FRPAuthMethod = FRPAuthMethodJWS
256+ }
257+ } else {
258+ ownerUser , ownerErr := userOp .GetOwnerUser ()
259+ if ownerErr != nil {
260+ err = fmt .Errorf ("activate system: failed to get owner user for reverse proxy config: %v" , ownerErr )
261+ klog .Error (err )
262+ response .HandleError (resp , err )
263+ return
264+ }
265+ ownerNamespace := fmt .Sprintf (constants .UserspaceNameFormat , ownerUser .Name )
266+ ownerConf , ownerConfErr := GetReverseProxyConfigFromNamespace (ctx , ownerNamespace )
267+ if ownerConfErr != nil {
268+ err = fmt .Errorf ("activate system: failed to get owner's reverse proxy config: %v" , ownerConfErr )
269+ klog .Error (err )
270+ response .HandleError (resp , err )
271+ return
272+ }
273+ reverseProxyConf = ownerConf
251274 }
252275 // no matter whether the reverse proxy is enabled, we need to persist the configuration
253276 // so that the configuration can be fetched by the frontend
0 commit comments