@@ -346,6 +346,7 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
346346 if err != nil {
347347 logger .Error ("Failed to discover resource" , zap .Error (err ))
348348 http .Error (writer , "Not Found" , http .StatusNotFound )
349+ return
349350 }
350351
351352 newUser := strings .TrimSpace (vars ["userid" ])
@@ -354,12 +355,14 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
354355 if err != nil {
355356 logger .Error ("Failed to share ownership" , zap .Error (err ))
356357 http .Error (writer , "Internal Server Error" , http .StatusInternalServerError )
358+ return
357359 }
358360
359361 err = r .Update (ctx , logger )
360362 if err != nil {
361363 logger .Error ("Failed to update resource" , zap .Error (err ))
362364 http .Error (writer , "Internal Server Error" , http .StatusInternalServerError )
365+ return
363366 }
364367
365368 logger .Info ("Shared ownership" , zap .String ("id" , id .String ()), zap .String ("newUser" , newUser ))
@@ -384,6 +387,11 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
384387 }
385388 stateId := id .ToStateId ()
386389
390+ ctx , done := authorize (writer , request , config , ctx , rm , stateId , logger , true , auth .SharePlus )
391+ if done {
392+ return
393+ }
394+
387395 operation := auth .Owner
388396 switch strings .ToLower (vars ["operation" ]) {
389397 case "signal" :
@@ -411,6 +419,7 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
411419 if err != nil {
412420 logger .Error ("Failed to discover resource" , zap .Error (err ))
413421 http .Error (writer , "" , http .StatusNotFound )
422+ return
414423 }
415424
416425 switch vars ["type" ] {
@@ -422,12 +431,14 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
422431 if err != nil {
423432 logger .Error ("Failed to grant resource" , zap .Error (err ))
424433 http .Error (writer , "" , http .StatusForbidden )
434+ return
425435 }
426436
427437 err = r .Update (ctx , logger )
428438 if err != nil {
429439 logger .Error ("Failed to update resource" , zap .Error (err ))
430440 http .Error (writer , "" , http .StatusInternalServerError )
441+ return
431442 }
432443
433444 http .Error (writer , "" , http .StatusOK )
@@ -451,10 +462,16 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
451462 }
452463 stateId := id .ToStateId ()
453464
465+ ctx , done := authorize (writer , request , config , ctx , rm , stateId , logger , true , auth .ShareMinus )
466+ if done {
467+ return
468+ }
469+
454470 r , err := rm .DiscoverResource (ctx , stateId , logger , true )
455471 if err != nil {
456472 logger .Error ("Failed to discover resource" , zap .Error (err ))
457473 http .Error (writer , "" , http .StatusNotFound )
474+ return
458475 }
459476
460477 switch vars ["type" ] {
@@ -466,12 +483,14 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
466483 if err != nil {
467484 logger .Error ("Failed to revoke resource" , zap .Error (err ))
468485 http .Error (writer , "" , http .StatusForbidden )
486+ return
469487 }
470488
471489 err = r .Update (ctx , logger )
472490 if err != nil {
473491 logger .Error ("Failed to update resource" , zap .Error (err ))
474492 http .Error (writer , "" , http .StatusInternalServerError )
493+ return
475494 }
476495
477496 http .Error (writer , "" , http .StatusOK )
@@ -649,6 +668,7 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
649668 if err != nil {
650669 logger .Error ("Failed to discover resource" , zap .Error (err ))
651670 http .Error (writer , "Not Found" , http .StatusNotFound )
671+ return
652672 }
653673
654674 newUser := strings .TrimSpace (vars ["userid" ])
@@ -657,12 +677,14 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
657677 if err != nil {
658678 logger .Error ("Failed to share ownership" , zap .Error (err ))
659679 http .Error (writer , "Internal Server Error" , http .StatusInternalServerError )
680+ return
660681 }
661682
662683 err = r .Update (ctx , logger )
663684 if err != nil {
664685 logger .Error ("Failed to update resource" , zap .Error (err ))
665686 http .Error (writer , "Internal Server Error" , http .StatusInternalServerError )
687+ return
666688 }
667689
668690 logger .Info ("Shared ownership" , zap .String ("id" , id .String ()), zap .String ("newUser" , newUser ))
@@ -687,6 +709,11 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
687709 }
688710 stateId := id .ToStateId ()
689711
712+ ctx , done := authorize (writer , request , config , ctx , rm , stateId , logger , true , auth .SharePlus )
713+ if done {
714+ return
715+ }
716+
690717 operation := auth .Owner
691718 switch strings .ToLower (vars ["operation" ]) {
692719 case "signal" :
@@ -714,6 +741,7 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
714741 if err != nil {
715742 logger .Error ("Failed to discover resource" , zap .Error (err ))
716743 http .Error (writer , "" , http .StatusNotFound )
744+ return
717745 }
718746
719747 switch vars ["type" ] {
@@ -725,19 +753,21 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
725753 if err != nil {
726754 logger .Error ("Failed to grant resource" , zap .Error (err ))
727755 http .Error (writer , "" , http .StatusForbidden )
756+ return
728757 }
729758
730759 err = r .Update (ctx , logger )
731760 if err != nil {
732761 logger .Error ("Failed to update resource" , zap .Error (err ))
733762 http .Error (writer , "" , http .StatusInternalServerError )
763+ return
734764 }
735765
736766 http .Error (writer , "" , http .StatusOK )
737767 })
738768
739769 // DELETE /orchestration/{name}/{id}/grant/{type}/{user}
740- r .HandleFunc ("/entity /{name}/{id}/grant/{type}/{user}" , func (writer http.ResponseWriter , request * http.Request ) {
770+ r .HandleFunc ("/orchestration /{name}/{id}/grant/{type}/{user}" , func (writer http.ResponseWriter , request * http.Request ) {
741771 if stop := handleCors (writer , request ); stop {
742772 return
743773 }
@@ -754,10 +784,16 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
754784 }
755785 stateId := id .ToStateId ()
756786
787+ ctx , done := authorize (writer , request , config , ctx , rm , stateId , logger , true , auth .ShareMinus )
788+ if done {
789+ return
790+ }
791+
757792 r , err := rm .DiscoverResource (ctx , stateId , logger , true )
758793 if err != nil {
759794 logger .Error ("Failed to discover resource" , zap .Error (err ))
760795 http .Error (writer , "" , http .StatusNotFound )
796+ return
761797 }
762798
763799 switch vars ["type" ] {
@@ -769,12 +805,14 @@ func Startup(ctx context.Context, js jetstream.JetStream, logger *zap.Logger, po
769805 if err != nil {
770806 logger .Error ("Failed to revoke resource" , zap .Error (err ))
771807 http .Error (writer , "" , http .StatusForbidden )
808+ return
772809 }
773810
774811 err = r .Update (ctx , logger )
775812 if err != nil {
776813 logger .Error ("Failed to update resource" , zap .Error (err ))
777814 http .Error (writer , "" , http .StatusInternalServerError )
815+ return
778816 }
779817
780818 http .Error (writer , "" , http .StatusOK )
0 commit comments