fix order of returned var in controller.SecurityCheck

This commit is contained in:
Matthew R. Kasun
2022-06-27 10:30:26 -04:00
parent b217d526fa
commit 3097b7d403
2 changed files with 11 additions and 11 deletions

View File

@@ -182,24 +182,24 @@ func TestSecurityCheck(t *testing.T) {
database.InitializeDatabase() database.InitializeDatabase()
os.Setenv("MASTER_KEY", "secretkey") os.Setenv("MASTER_KEY", "secretkey")
t.Run("NoNetwork", func(t *testing.T) { t.Run("NoNetwork", func(t *testing.T) {
err, networks, username := SecurityCheck(false, "", "Bearer secretkey") networks, username, err := SecurityCheck(false, "", "Bearer secretkey")
assert.Nil(t, err) assert.Nil(t, err)
t.Log(networks, username) t.Log(networks, username)
}) })
t.Run("WithNetwork", func(t *testing.T) { t.Run("WithNetwork", func(t *testing.T) {
err, networks, username := SecurityCheck(false, "skynet", "Bearer secretkey") networks, username, err := SecurityCheck(false, "skynet", "Bearer secretkey")
assert.Nil(t, err) assert.Nil(t, err)
t.Log(networks, username) t.Log(networks, username)
}) })
t.Run("BadNet", func(t *testing.T) { t.Run("BadNet", func(t *testing.T) {
t.Skip() t.Skip()
err, networks, username := SecurityCheck(false, "badnet", "Bearer secretkey") networks, username, err := SecurityCheck(false, "badnet", "Bearer secretkey")
assert.NotNil(t, err) assert.NotNil(t, err)
t.Log(err) t.Log(err)
t.Log(networks, username) t.Log(networks, username)
}) })
t.Run("BadToken", func(t *testing.T) { t.Run("BadToken", func(t *testing.T) {
err, networks, username := SecurityCheck(false, "skynet", "Bearer badkey") networks, username, err := SecurityCheck(false, "skynet", "Bearer badkey")
assert.NotNil(t, err) assert.NotNil(t, err)
t.Log(err) t.Log(err)
t.Log(networks, username) t.Log(networks, username)

View File

@@ -31,7 +31,7 @@ func securityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
return return
} }
err, networks, username := SecurityCheck(reqAdmin, params["networkname"], bearerToken) networks, username, err := SecurityCheck(reqAdmin, params["networkname"], bearerToken)
if err != nil { if err != nil {
if strings.Contains(err.Error(), "does not exist") { if strings.Contains(err.Error(), "does not exist") {
errorResponse.Code = http.StatusNotFound errorResponse.Code = http.StatusNotFound
@@ -53,7 +53,7 @@ func securityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
} }
// SecurityCheck - checks token stuff // SecurityCheck - checks token stuff
func SecurityCheck(reqAdmin bool, netname string, token string) (error, []string, string) { func SecurityCheck(reqAdmin bool, netname string, token string) ([]string, string, error) {
var hasBearer = true var hasBearer = true
var tokenSplit = strings.Split(token, " ") var tokenSplit = strings.Split(token, " ")
@@ -72,10 +72,10 @@ func SecurityCheck(reqAdmin bool, netname string, token string) (error, []string
userName, networks, isadmin, err := logic.VerifyUserToken(authToken) userName, networks, isadmin, err := logic.VerifyUserToken(authToken)
username = userName username = userName
if err != nil { if err != nil {
return errors.New("error verifying user token"), nil, username return nil, username, errors.New("error verifying user token")
} }
if !isadmin && reqAdmin { if !isadmin && reqAdmin {
return errors.New("you are unauthorized to access this endpoint"), nil, username return nil, username, errors.New("you are unauthorized to access this endpoint")
} }
userNetworks = networks userNetworks = networks
if isadmin { if isadmin {
@@ -83,10 +83,10 @@ func SecurityCheck(reqAdmin bool, netname string, token string) (error, []string
} else { } else {
networkexists, err := functions.NetworkExists(netname) networkexists, err := functions.NetworkExists(netname)
if err != nil && !database.IsEmptyRecord(err) { if err != nil && !database.IsEmptyRecord(err) {
return err, nil, "" return nil, "", err
} }
if netname != "" && !networkexists { if netname != "" && !networkexists {
return errors.New("this network does not exist"), nil, "" return nil, "", errors.New("this network does not exist")
} }
} }
} else if isMasterAuthenticated { } else if isMasterAuthenticated {
@@ -95,7 +95,7 @@ func SecurityCheck(reqAdmin bool, netname string, token string) (error, []string
if len(userNetworks) == 0 { if len(userNetworks) == 0 {
userNetworks = append(userNetworks, NO_NETWORKS_PRESENT) userNetworks = append(userNetworks, NO_NETWORKS_PRESENT)
} }
return nil, userNetworks, username return userNetworks, username, nil
} }
// Consider a more secure way of setting master key // Consider a more secure way of setting master key