Skip to content

Commit

Permalink
fix: prefer method TeamProjectValidation
Browse files Browse the repository at this point in the history
...over the other variation of this method (TeamProjectValidationForCohortIdsList)
  • Loading branch information
pieterlukasse committed Dec 18, 2023
1 parent 8b40f1c commit 6852e94
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 17 deletions.
9 changes: 3 additions & 6 deletions controllers/cohortdata.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ func (u CohortDataController) RetrieveHistogramForCohortIdAndConceptId(c *gin.Co
cohortId, _ := strconv.Atoi(cohortIdStr)
histogramConceptId, _ := strconv.ParseInt(histogramIdStr, 10, 64)

uniqueCohortDefinitionIdsList := utils.GetUniqueCohortDefinitionIdsListFromRequest([]int{cohortId}, cohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidationForCohortIdsList(c, uniqueCohortDefinitionIdsList)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, []int{cohortId}, cohortPairs)
if !validAccessRequest {
log.Printf("Error: invalid request")
c.JSON(http.StatusBadRequest, gin.H{"message": "access denied"})
Expand Down Expand Up @@ -99,8 +98,7 @@ func (u CohortDataController) RetrieveDataBySourceIdAndCohortIdAndVariables(c *g
sourceId, _ := strconv.Atoi(sourceIdStr)
cohortId, _ := strconv.Atoi(cohortIdStr)

uniqueCohortDefinitionIdsList := utils.GetUniqueCohortDefinitionIdsListFromRequest([]int{cohortId}, cohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidationForCohortIdsList(c, uniqueCohortDefinitionIdsList)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, []int{cohortId}, cohortPairs)
if !validAccessRequest {
log.Printf("Error: invalid request")
c.JSON(http.StatusBadRequest, gin.H{"message": "access denied"})
Expand Down Expand Up @@ -253,8 +251,7 @@ func (u CohortDataController) RetrieveCohortOverlapStatsWithoutFilteringOnConcep
controlCohortId, errors[2] = utils.ParseNumericArg(c, "controlcohortid")
conceptIds, cohortPairs, errors[3] = utils.ParseConceptIdsAndDichotomousDefs(c)

uniqueCohortDefinitionIdsList := utils.GetUniqueCohortDefinitionIdsListFromRequest([]int{caseCohortId, controlCohortId}, cohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidationForCohortIdsList(c, uniqueCohortDefinitionIdsList)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, []int{caseCohortId, controlCohortId}, cohortPairs)
if !validAccessRequest {
log.Printf("Error: invalid request")
c.JSON(http.StatusBadRequest, gin.H{"message": "access denied"})
Expand Down
4 changes: 2 additions & 2 deletions controllers/concept.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ func (u ConceptController) RetrieveBreakdownStatsBySourceIdAndCohortIdAndVariabl
c.Abort()
return
}
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, cohortId, cohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, []int{cohortId}, cohortPairs)
if !validAccessRequest {
log.Printf("Error: invalid request")
c.JSON(http.StatusBadRequest, gin.H{"message": "access denied"})
Expand Down Expand Up @@ -198,7 +198,7 @@ func (u ConceptController) RetrieveAttritionTable(c *gin.Context) {
return
}
_, cohortPairs := utils.GetConceptIdsAndCohortPairsAsSeparateLists(conceptIdsAndCohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, cohortId, cohortPairs)
validAccessRequest := u.teamProjectAuthz.TeamProjectValidation(c, []int{cohortId}, cohortPairs)
if !validAccessRequest {
log.Printf("Error: invalid request")
c.JSON(http.StatusBadRequest, gin.H{"message": "access denied"})
Expand Down
8 changes: 4 additions & 4 deletions middlewares/teamprojectauthz.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

type TeamProjectAuthzI interface {
TeamProjectValidationForCohort(ctx *gin.Context, cohortDefinitionId int) bool
TeamProjectValidation(ctx *gin.Context, cohortDefinitionId int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool
TeamProjectValidation(ctx *gin.Context, cohortDefinitionIds []int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool
TeamProjectValidationForCohortIdsList(ctx *gin.Context, uniqueCohortDefinitionIdsList []int) bool
}

Expand Down Expand Up @@ -59,12 +59,12 @@ func (u TeamProjectAuthz) hasAccessToAtLeastOne(ctx *gin.Context, teamProjects [

func (u TeamProjectAuthz) TeamProjectValidationForCohort(ctx *gin.Context, cohortDefinitionId int) bool {
filterCohortPairs := []utils.CustomDichotomousVariableDef{}
return u.TeamProjectValidation(ctx, cohortDefinitionId, filterCohortPairs)
return u.TeamProjectValidation(ctx, []int{cohortDefinitionId}, filterCohortPairs)
}

func (u TeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionId int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {
func (u TeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionIds []int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {

uniqueCohortDefinitionIdsList := utils.GetUniqueCohortDefinitionIdsListFromRequest([]int{cohortDefinitionId}, filterCohortPairs)
uniqueCohortDefinitionIdsList := utils.GetUniqueCohortDefinitionIdsListFromRequest(cohortDefinitionIds, filterCohortPairs)
return u.TeamProjectValidationForCohortIdsList(ctx, uniqueCohortDefinitionIdsList)
}

Expand Down
4 changes: 2 additions & 2 deletions tests/controllers_tests/controllers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func (h dummyTeamProjectAuthz) TeamProjectValidationForCohort(ctx *gin.Context,
return true
}

func (h dummyTeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionId int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {
func (h dummyTeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionIds []int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {
return true
}

Expand All @@ -156,7 +156,7 @@ func (h dummyFailingTeamProjectAuthz) TeamProjectValidationForCohort(ctx *gin.Co
return false
}

func (h dummyFailingTeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionId int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {
func (h dummyFailingTeamProjectAuthz) TeamProjectValidation(ctx *gin.Context, cohortDefinitionIds []int, filterCohortPairs []utils.CustomDichotomousVariableDef) bool {
return false
}

Expand Down
6 changes: 3 additions & 3 deletions tests/middlewares_tests/middlewares_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ func TestTeamProjectValidation(t *testing.T) {
requestContext.Request.Header = map[string][]string{
"Authorization": {"dummy_token_value"},
}
result := teamProjectAuthz.TeamProjectValidation(requestContext, 1, nil)
result := teamProjectAuthz.TeamProjectValidation(requestContext, []int{1}, nil)
if result == false {
t.Errorf("Expected TeamProjectValidation result to be 'true'")
}
Expand All @@ -155,7 +155,7 @@ func TestTeamProjectValidationArborist401(t *testing.T) {
requestContext.Request.Header = map[string][]string{
"Authorization": {"dummy_token_value"},
}
result := teamProjectAuthz.TeamProjectValidation(requestContext, 1, nil)
result := teamProjectAuthz.TeamProjectValidation(requestContext, []int{1}, nil)
if result == true {
t.Errorf("Expected TeamProjectValidation result to be 'false'")
}
Expand All @@ -176,7 +176,7 @@ func TestTeamProjectValidationNoTeamProjectMatchingAllCohortDefinitions(t *testi
requestContext.Request.Header = map[string][]string{
"Authorization": {"dummy_token_value"},
}
result := teamProjectAuthz.TeamProjectValidation(requestContext, 0, nil)
result := teamProjectAuthz.TeamProjectValidation(requestContext, []int{0}, nil)
if result == true {
t.Errorf("Expected TeamProjectValidation result to be 'false'")
}
Expand Down

0 comments on commit 6852e94

Please sign in to comment.