Ver código fonte

Merge branch 'NET-1227' of https://github.com/gravitl/netmaker into NET-1227-pro

abhishek9686 1 ano atrás
pai
commit
203d80ba33
3 arquivos alterados com 12 adições e 1 exclusões
  1. 7 0
      controllers/middleware.go
  2. 4 0
      logic/security.go
  3. 1 1
      models/user_mgmt.go

+ 7 - 0
controllers/middleware.go

@@ -2,6 +2,7 @@ package controller
 
 import (
 	"net/http"
+	"net/url"
 	"strings"
 
 	"github.com/gorilla/mux"
@@ -76,7 +77,13 @@ func userMiddleWare(handler http.Handler) http.Handler {
 
 		if userID, ok := params["username"]; ok {
 			r.Header.Set("TARGET_RSRC_ID", userID)
+		} else {
+			username, _ := url.QueryUnescape(r.URL.Query().Get("username"))
+			if username != "" {
+				r.Header.Set("TARGET_RSRC_ID", username)
+			}
 		}
+
 		if r.Header.Get("NET_ID") == "" && (r.Header.Get("TARGET_RSRC_ID") == "" ||
 			r.Header.Get("TARGET_RSRC") == models.EnrollmentKeysRsrc.String() ||
 			r.Header.Get("TARGET_RSRC") == models.UserRsrc.String()) {

+ 4 - 0
logic/security.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"net/http"
+	"net/url"
 	"strings"
 
 	"github.com/gorilla/mux"
@@ -98,6 +99,9 @@ func ContinueIfUserMatch(next http.Handler) http.HandlerFunc {
 		}
 		var params = mux.Vars(r)
 		var requestedUser = params["username"]
+		if requestedUser == "" {
+			requestedUser, _ = url.QueryUnescape(r.URL.Query().Get("username"))
+		}
 		if requestedUser != r.Header.Get("user") {
 			logger.Log(0, "next 2", r.URL.String(), errorResponse.Message)
 			ReturnErrorResponse(w, r, errorResponse)

+ 1 - 1
models/user_mgmt.go

@@ -143,7 +143,7 @@ type User struct {
 
 type ReturnUserWithRolesAndGroups struct {
 	ReturnUser
-	PlatformRole UserRolePermissionTemplate
+	PlatformRole UserRolePermissionTemplate `json:"platform_role"`
 }
 
 // ReturnUser - return user struct