4
4
"context"
5
5
"io"
6
6
"net/http"
7
+ "net/url"
7
8
8
9
"github.com/go-gorp/gorp"
9
10
"github.com/gorilla/mux"
@@ -186,7 +187,12 @@ func (api *API) getActionHandler() service.Handler {
186
187
vars := mux .Vars (r )
187
188
188
189
groupName := vars ["permGroupName" ]
189
- actionName := vars ["permActionName" ]
190
+ actionNameEscaped := vars ["permActionName" ]
191
+
192
+ actionName , err := url .PathUnescape (actionNameEscaped )
193
+ if err != nil {
194
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
195
+ }
190
196
191
197
g , err := group .LoadByName (ctx , api .mustDB (), groupName , group .LoadOptions .WithMembers )
192
198
if err != nil {
@@ -221,7 +227,13 @@ func (api *API) putActionHandler() service.Handler {
221
227
vars := mux .Vars (r )
222
228
223
229
groupName := vars ["permGroupName" ]
224
- actionName := vars ["permActionName" ]
230
+
231
+ actionNameEscaped := vars ["permActionName" ]
232
+
233
+ actionName , err := url .PathUnescape (actionNameEscaped )
234
+ if err != nil {
235
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
236
+ }
225
237
226
238
g , err := group .LoadByName (ctx , api .mustDB (), groupName )
227
239
if err != nil {
@@ -318,7 +330,13 @@ func (api *API) deleteActionHandler() service.Handler {
318
330
vars := mux .Vars (r )
319
331
320
332
groupName := vars ["permGroupName" ]
321
- actionName := vars ["permActionName" ]
333
+
334
+ actionNameEscaped := vars ["permActionName" ]
335
+
336
+ actionName , err := url .PathUnescape (actionNameEscaped )
337
+ if err != nil {
338
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
339
+ }
322
340
323
341
g , err := group .LoadByName (ctx , api .mustDB (), groupName )
324
342
if err != nil {
@@ -364,7 +382,13 @@ func (api *API) getActionAuditHandler() service.Handler {
364
382
vars := mux .Vars (r )
365
383
366
384
groupName := vars ["permGroupName" ]
367
- actionName := vars ["permActionName" ]
385
+
386
+ actionNameEscaped := vars ["permActionName" ]
387
+
388
+ actionName , err := url .PathUnescape (actionNameEscaped )
389
+ if err != nil {
390
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
391
+ }
368
392
369
393
g , err := group .LoadByName (ctx , api .mustDB (), groupName )
370
394
if err != nil {
@@ -440,7 +464,12 @@ func (api *API) postActionAuditRollbackHandler() service.Handler {
440
464
vars := mux .Vars (r )
441
465
442
466
groupName := vars ["permGroupName" ]
443
- actionName := vars ["permActionName" ]
467
+ actionNameEscaped := vars ["permActionName" ]
468
+
469
+ actionName , err := url .PathUnescape (actionNameEscaped )
470
+ if err != nil {
471
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
472
+ }
444
473
445
474
auditID , err := requestVarInt (r , "auditID" )
446
475
if err != nil {
@@ -575,7 +604,12 @@ func (api *API) getActionUsageHandler() service.Handler {
575
604
vars := mux .Vars (r )
576
605
577
606
groupName := vars ["permGroupName" ]
578
- actionName := vars ["permActionName" ]
607
+ actionNameEscaped := vars ["permActionName" ]
608
+
609
+ actionName , err := url .PathUnescape (actionNameEscaped )
610
+ if err != nil {
611
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
612
+ }
579
613
580
614
g , err := group .LoadByName (ctx , api .mustDB (), groupName )
581
615
if err != nil {
@@ -604,7 +638,12 @@ func (api *API) getActionExportHandler() service.Handler {
604
638
vars := mux .Vars (r )
605
639
606
640
groupName := vars ["permGroupName" ]
607
- actionName := vars ["permActionName" ]
641
+ actionNameEscaped := vars ["permActionName" ]
642
+
643
+ actionName , err := url .PathUnescape (actionNameEscaped )
644
+ if err != nil {
645
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
646
+ }
608
647
609
648
format := FormString (r , "format" )
610
649
if format == "" {
@@ -800,7 +839,12 @@ func (api *API) getActionBuiltinHandler() service.Handler {
800
839
return func (ctx context.Context , w http.ResponseWriter , r * http.Request ) error {
801
840
vars := mux .Vars (r )
802
841
803
- actionName := vars ["permActionBuiltinName" ]
842
+ actionNameEscaped := vars ["permActionBuiltinName" ]
843
+
844
+ actionName , err := url .PathUnescape (actionNameEscaped )
845
+ if err != nil {
846
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
847
+ }
804
848
805
849
a , err := action .LoadByTypesAndName (ctx , api .mustDB (), []string {sdk .BuiltinAction , sdk .PluginAction }, actionName ,
806
850
action .LoadOptions .WithRequirements ,
@@ -822,7 +866,12 @@ func (api *API) getActionBuiltinUsageHandler() service.Handler {
822
866
return func (ctx context.Context , w http.ResponseWriter , r * http.Request ) error {
823
867
vars := mux .Vars (r )
824
868
825
- actionName := vars ["permActionBuiltinName" ]
869
+ actionNameEscaped := vars ["permActionBuiltinName" ]
870
+
871
+ actionName , err := url .PathUnescape (actionNameEscaped )
872
+ if err != nil {
873
+ return sdk .NewErrorFrom (sdk .ErrWrongRequest , "%s" , err )
874
+ }
826
875
827
876
a , err := action .LoadByTypesAndName (ctx , api .mustDB (), []string {sdk .BuiltinAction , sdk .PluginAction }, actionName ,
828
877
action .LoadOptions .WithRequirements ,
0 commit comments