|
@@ -7,6 +7,7 @@ import (
|
|
|
"fmt"
|
|
|
"net/http"
|
|
|
"net/url"
|
|
|
+ "strings"
|
|
|
|
|
|
"github.com/gorilla/mux"
|
|
|
"github.com/gravitl/netmaker/database"
|
|
@@ -218,8 +219,12 @@ func inviteUsers(w http.ResponseWriter, r *http.Request) {
|
|
|
NetworkRoles: inviteReq.NetworkRoles,
|
|
|
InviteCode: logic.RandomString(8),
|
|
|
}
|
|
|
+ frontendURL := strings.TrimSuffix(servercfg.GetFrontendURL(), "/")
|
|
|
+ if frontendURL == "" {
|
|
|
+ frontendURL = fmt.Sprintf("https://dashboard.%s", servercfg.GetNmBaseDomain())
|
|
|
+ }
|
|
|
u, err := url.Parse(fmt.Sprintf("%s/invite?email=%s&invite_code=%s",
|
|
|
- servercfg.GetFrontendURL(), url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
|
|
|
+ frontendURL, url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
|
|
|
if err != nil {
|
|
|
slog.Error("failed to parse to invite url", "error", err)
|
|
|
return
|
|
@@ -808,21 +813,18 @@ func removeUserFromRemoteAccessGW(w http.ResponseWriter, r *http.Request) {
|
|
|
func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
// set header.
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
|
- logger.Log(0, "------------> 1. getUserRemoteAccessGwsV1")
|
|
|
var params = mux.Vars(r)
|
|
|
username := params["username"]
|
|
|
if username == "" {
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("required params username"), "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
- logger.Log(0, "------------> 2. getUserRemoteAccessGwsV1")
|
|
|
user, err := logic.GetUser(username)
|
|
|
if err != nil {
|
|
|
logger.Log(0, username, "failed to fetch user: ", err.Error())
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(fmt.Errorf("failed to fetch user %s, error: %v", username, err), "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
- logger.Log(0, "------------> 3. getUserRemoteAccessGwsV1")
|
|
|
remoteAccessClientID := r.URL.Query().Get("remote_access_clientid")
|
|
|
var req models.UserRemoteGwsReq
|
|
|
if remoteAccessClientID == "" {
|
|
@@ -833,7 +835,6 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- logger.Log(0, "------------> 4. getUserRemoteAccessGwsV1")
|
|
|
reqFromMobile := r.URL.Query().Get("from_mobile") == "true"
|
|
|
if req.RemoteAccessClientID == "" && remoteAccessClientID == "" {
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("remote access client id cannot be empty"), "badrequest"))
|
|
@@ -843,13 +844,11 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
req.RemoteAccessClientID = remoteAccessClientID
|
|
|
}
|
|
|
userGws := make(map[string][]models.UserRemoteGws)
|
|
|
- logger.Log(0, "------------> 5. getUserRemoteAccessGwsV1")
|
|
|
allextClients, err := logic.GetAllExtClients()
|
|
|
if err != nil {
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
|
|
return
|
|
|
}
|
|
|
- logger.Log(0, "------------> 6. getUserRemoteAccessGwsV1")
|
|
|
userGwNodes := proLogic.GetUserRAGNodes(*user)
|
|
|
logger.Log(0, fmt.Sprintf("1. User Gw Nodes: %+v", userGwNodes))
|
|
|
for _, extClient := range allextClients {
|
|
@@ -890,7 +889,6 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
logger.Log(0, fmt.Sprintf("2. User Gw Nodes: %+v", userGwNodes))
|
|
|
// add remaining gw nodes to resp
|
|
|
for gwID := range userGwNodes {
|
|
|
- logger.Log(0, "RAG ---> 1")
|
|
|
node, err := logic.GetNodeByID(gwID)
|
|
|
if err != nil {
|
|
|
continue
|
|
@@ -901,7 +899,6 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
if node.PendingDelete {
|
|
|
continue
|
|
|
}
|
|
|
- logger.Log(0, "RAG ---> 2")
|
|
|
host, err := logic.GetHost(node.HostID.String())
|
|
|
if err != nil {
|
|
|
continue
|
|
@@ -910,7 +907,6 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
|
|
|
if err != nil {
|
|
|
slog.Error("failed to get node network", "error", err)
|
|
|
}
|
|
|
- logger.Log(0, "RAG ---> 3")
|
|
|
gws := userGws[node.Network]
|
|
|
|
|
|
gws = append(gws, models.UserRemoteGws{
|