From fe57a6a42de032f110b943ffac15bbc92ffd8dde Mon Sep 17 00:00:00 2001 From: Abhishek K <32607604+abhishek9686@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:55:08 +0530 Subject: [PATCH] Net 1227 v1 (#3062) * generalise smtp config * copy over smtp vars * env new line * fix master key api access * comment user tests * fix network and user invite for master key access --- controllers/network.go | 15 +++++++++------ pro/controllers/users.go | 37 ++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/controllers/network.go b/controllers/network.go index c94017f2..acb479ec 100644 --- a/controllers/network.go +++ b/controllers/network.go @@ -58,13 +58,16 @@ func getNetworks(w http.ResponseWriter, r *http.Request) { logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal")) return } - username := r.Header.Get("user") - user, err := logic.GetUser(username) - if err != nil { - logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal")) - return + if r.Header.Get("ismaster") != "yes" { + username := r.Header.Get("user") + user, err := logic.GetUser(username) + if err != nil { + logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal")) + return + } + allnetworks = logic.FilterNetworksByRole(allnetworks, *user) } - allnetworks = logic.FilterNetworksByRole(allnetworks, *user) + logger.Log(2, r.Header.Get("user"), "fetched networks.") logic.SortNetworks(allnetworks[:]) w.WriteHeader(http.StatusOK) diff --git a/pro/controllers/users.go b/pro/controllers/users.go index 9387e1b2..2a96d03c 100644 --- a/pro/controllers/users.go +++ b/pro/controllers/users.go @@ -165,24 +165,27 @@ func inviteUsers(w http.ResponseWriter, r *http.Request) { return } callerUserName := r.Header.Get("user") - caller, err := logic.GetUser(callerUserName) - if err != nil { - logic.ReturnErrorResponse(w, r, logic.FormatError(err, "notfound")) - return - } - if inviteReq.PlatformRoleID == models.SuperAdminRole.String() { - logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("super admin cannot be invited"), "badrequest")) - return - } - if inviteReq.PlatformRoleID == "" { - logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("platform role id cannot be empty"), "badrequest")) - return - } - if (inviteReq.PlatformRoleID == models.AdminRole.String() || - inviteReq.PlatformRoleID == models.SuperAdminRole.String()) && caller.PlatformRoleID != models.SuperAdminRole { - logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("only superadmin can invite admin users"), "forbidden")) - return + if r.Header.Get("ismaster") != "yes" { + caller, err := logic.GetUser(callerUserName) + if err != nil { + logic.ReturnErrorResponse(w, r, logic.FormatError(err, "notfound")) + return + } + if inviteReq.PlatformRoleID == models.SuperAdminRole.String() { + logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("super admin cannot be invited"), "badrequest")) + return + } + if inviteReq.PlatformRoleID == "" { + logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("platform role id cannot be empty"), "badrequest")) + return + } + if (inviteReq.PlatformRoleID == models.AdminRole.String() || + inviteReq.PlatformRoleID == models.SuperAdminRole.String()) && caller.PlatformRoleID != models.SuperAdminRole { + logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("only superadmin can invite admin users"), "forbidden")) + return + } } + //validate Req err = proLogic.IsGroupsValid(inviteReq.UserGroups) if err != nil {