Skip to content

Removed access management flags and code validating it(AST-103296) #1211

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
6 changes: 3 additions & 3 deletions internal/commands/groups.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import (
"github.com/spf13/cobra"
)

func updateGroupValues(input *[]byte, cmd *cobra.Command, groupsWrapper wrappers.GroupsWrapper) ([]*wrappers.Group, error) {
func updateGroupValues(input *[]byte, cmd *cobra.Command, groupsWrapper wrappers.GroupsWrapper) error {
groupListStr, _ := cmd.Flags().GetString(commonParams.GroupList)
groups, err := services.CreateGroupsMap(groupListStr, groupsWrapper)
if err != nil {
return groups, err
return err
}

// we're not checking here status of the feature flag, because of refactoring in AM
Expand All @@ -22,5 +22,5 @@ func updateGroupValues(input *[]byte, cmd *cobra.Command, groupsWrapper wrappers
info["groups"] = services.GetGroupIds(groups)
*input, _ = json.Marshal(info)

return groups, nil
return nil
}
2 changes: 2 additions & 0 deletions internal/commands/groups_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"github.com/checkmarx/ast-cli/internal/wrappers/mock"
)

//todo : need to modify these test cases

Check failure on line 10 in internal/commands/groups_test.go

View workflow job for this annotation

GitHub Actions / lint

commentFormatting: put a space between `//` and comment text (gocritic)

func TestCreateScanAndProjectWithGroupFFTrue(t *testing.T) {
mock.Flags = wrappers.FeatureFlagsResponseModel{{Name: "ACCESS_MANAGEMENT_ENABLED", Status: true}}
execCmdNilAssertion(
Expand Down
17 changes: 4 additions & 13 deletions internal/commands/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ var (
)

func NewProjectCommand(applicationsWrapper wrappers.ApplicationsWrapper, projectsWrapper wrappers.ProjectsWrapper, groupsWrapper wrappers.GroupsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) *cobra.Command {
) *cobra.Command {
projCmd := &cobra.Command{
Use: "project",
Short: "Manage projects",
Expand Down Expand Up @@ -90,7 +90,7 @@ func NewProjectCommand(applicationsWrapper wrappers.ApplicationsWrapper, project
`,
),
},
RunE: runCreateProjectCommand(applicationsWrapper, projectsWrapper, groupsWrapper, accessManagementWrapper, featureFlagsWrapper),
RunE: runCreateProjectCommand(applicationsWrapper, projectsWrapper, groupsWrapper),
}
createProjCmd.PersistentFlags().String(commonParams.TagList, "", "List of tags, ex: (tagA,tagB:val,etc)")
createProjCmd.PersistentFlags().String(commonParams.GroupList, "", "List of groups, ex: (PowerUsers,etc)")
Expand Down Expand Up @@ -227,8 +227,6 @@ func runCreateProjectCommand(
applicationsWrapper wrappers.ApplicationsWrapper,
projectsWrapper wrappers.ProjectsWrapper,
groupsWrapper wrappers.GroupsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
applicationName, _ := cmd.Flags().GetString(commonParams.ApplicationName)
Expand All @@ -249,17 +247,11 @@ func runCreateProjectCommand(
if err != nil {
return err
}
groups, err := updateGroupValues(&input, cmd, groupsWrapper)
if err != nil {
return err
}
// Validate groups access before creating the project.
// This validation will only be performed if the ACCESS_MANAGEMENT_PHASE2 flag is ON.
err = services.ValidateGroupsAccessPhase2(groups, accessManagementWrapper, featureFlagsWrapper)

err = updateGroupValues(&input, cmd, groupsWrapper)
if err != nil {
return err
}

setupScanTags(&input, cmd)
err = validateConfiguration(cmd)
if err != nil {
Expand Down Expand Up @@ -291,7 +283,6 @@ func runCreateProjectCommand(
return errors.Wrapf(err, "%s", services.FailedCreatingProj)
}
}
err = services.AssignGroupsToProjectNewAccessManagement(projResponseModel.ID, projResponseModel.Name, groups, accessManagementWrapper, featureFlagsWrapper)
if err != nil {
return err
}
Expand Down
4 changes: 1 addition & 3 deletions internal/commands/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,11 @@ func NewAstCLI(
scaRealTimeWrapper,
policyWrapper,
sastMetadataWrapper,
accessManagementWrapper,
featureFlagsWrapper,
containerResolverWrapper,
realTimeWrapper,
)
projectCmd := NewProjectCommand(applicationsWrapper, projectsWrapper, groupsWrapper, accessManagementWrapper, featureFlagsWrapper)
projectCmd := NewProjectCommand(applicationsWrapper, projectsWrapper, groupsWrapper)

resultsCmd := NewResultsCommand(
resultsWrapper,
Expand Down Expand Up @@ -214,7 +213,6 @@ func NewAstCLI(
projectsWrapper,
uploadsWrapper,
groupsWrapper,
accessManagementWrapper,
applicationsWrapper,
byorWrapper,
featureFlagsWrapper,
Expand Down
12 changes: 1 addition & 11 deletions internal/commands/scan.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ func NewScanCommand(
scaRealTimeWrapper wrappers.ScaRealTimeWrapper,
policyWrapper wrappers.PolicyWrapper,
sastMetadataWrapper wrappers.SastMetadataWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
containerResolverWrapper wrappers.ContainerResolverWrapper,
realtimeScannerWrapper wrappers.RealtimeScannerWrapper,
Expand Down Expand Up @@ -193,7 +192,6 @@ func NewScanCommand(
scsScanOverviewWrapper,
jwtWrapper,
policyWrapper,
accessManagementWrapper,
applicationsWrapper,
featureFlagsWrapper,
)
Expand Down Expand Up @@ -592,7 +590,6 @@ func scanCreateSubCommand(
scsScanOverviewWrapper wrappers.ScanOverviewWrapper,
jwtWrapper wrappers.JWTWrapper,
policyWrapper wrappers.PolicyWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
) *cobra.Command {
Expand Down Expand Up @@ -625,7 +622,6 @@ func scanCreateSubCommand(
scsScanOverviewWrapper,
jwtWrapper,
policyWrapper,
accessManagementWrapper,
applicationsWrapper,
featureFlagsWrapper,
),
Expand Down Expand Up @@ -841,7 +837,6 @@ func setupScanTypeProjectAndConfig(
groupsWrapper wrappers.GroupsWrapper,
scansWrapper wrappers.ScansWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
jwtWrapper wrappers.JWTWrapper,
) error {
Expand Down Expand Up @@ -869,9 +864,7 @@ func setupScanTypeProjectAndConfig(
cmd,
projectsWrapper,
groupsWrapper,
accessManagementWrapper,
applicationsWrapper,
featureFlagsWrapper,
)
if findProjectErr != nil {
return findProjectErr
Expand Down Expand Up @@ -1892,7 +1885,6 @@ func runCreateScanCommand(
scsScanOverviewWrapper wrappers.ScanOverviewWrapper,
jwtWrapper wrappers.JWTWrapper,
policyWrapper wrappers.PolicyWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
) func(cmd *cobra.Command, args []string) error {
Expand Down Expand Up @@ -1921,7 +1913,6 @@ func runCreateScanCommand(
projectsWrapper,
groupsWrapper,
scansWrapper,
accessManagementWrapper,
applicationsWrapper,
featureFlagsWrapper,
jwtWrapper,
Expand Down Expand Up @@ -2018,15 +2009,14 @@ func createScanModel(
projectsWrapper wrappers.ProjectsWrapper,
groupsWrapper wrappers.GroupsWrapper,
scansWrapper wrappers.ScansWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
jwtWrapper wrappers.JWTWrapper,
) (*wrappers.Scan, string, error) {
var input = []byte("{}")

// Define type, project and config in scan model
err := setupScanTypeProjectAndConfig(&input, cmd, projectsWrapper, groupsWrapper, scansWrapper, applicationsWrapper, accessManagementWrapper, featureFlagsWrapper, jwtWrapper)
err := setupScanTypeProjectAndConfig(&input, cmd, projectsWrapper, groupsWrapper, scansWrapper, applicationsWrapper, featureFlagsWrapper, jwtWrapper)
if err != nil {
return nil, "", err
}
Expand Down
6 changes: 2 additions & 4 deletions internal/commands/util/import.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ func NewImportCommand(
projectsWrapper wrappers.ProjectsWrapper,
uploadsWrapper wrappers.UploadsWrapper,
groupsWrapper wrappers.GroupsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
byorWrapper wrappers.ByorWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper) *cobra.Command {
Expand All @@ -37,7 +36,7 @@ func NewImportCommand(
`,
),
},
RunE: runImportCommand(projectsWrapper, uploadsWrapper, groupsWrapper, accessManagementWrapper, applicationsWrapper, byorWrapper, featureFlagsWrapper),
RunE: runImportCommand(projectsWrapper, uploadsWrapper, groupsWrapper, applicationsWrapper, byorWrapper, featureFlagsWrapper),
}

cmd.PersistentFlags().String(commonParams.ImportFilePath, "", "Path to the import file (sarif file or zip archive containing sarif files)")
Expand All @@ -50,7 +49,6 @@ func runImportCommand(
projectsWrapper wrappers.ProjectsWrapper,
uploadsWrapper wrappers.UploadsWrapper,
groupsWrapper wrappers.GroupsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
byorWrapper wrappers.ByorWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper) func(cmd *cobra.Command, args []string) error {
Expand All @@ -65,7 +63,7 @@ func runImportCommand(
return errors.Errorf(errorConstants.ProjectNameIsRequired)
}

projectID, err := services.FindProject(projectName, cmd, projectsWrapper, groupsWrapper, accessManagementWrapper, applicationsWrapper, featureFlagsWrapper)
projectID, err := services.FindProject(projectName, cmd, projectsWrapper, groupsWrapper, applicationsWrapper)
if err != nil {
return err
}
Expand Down
8 changes: 0 additions & 8 deletions internal/commands/util/import_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ func TestImport_ImportSarifFileWithCorrectFlags_CreateImportSuccessfully(t *test
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -32,7 +31,6 @@ func TestImport_ImportSarifFileProjectDoesntExist_CreateImportWithProvidedNewNam
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -48,7 +46,6 @@ func TestImport_ImportSarifFileMissingImportFilePath_CreateImportReturnsErrorWit
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -63,7 +60,6 @@ func TestImport_ImportSarifFileEmptyImportFilePathValue_CreateImportReturnsError
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -78,7 +74,6 @@ func TestImport_ImportSarifFileMissingImportProjectName_CreateImportReturnsError
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -93,7 +88,6 @@ func TestImport_ImportSarifFileProjectNameNotProvided_CreateImportWithProvidedNe
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -108,7 +102,6 @@ func TestImport_ImportSarifFileUnacceptedFileExtension_CreateImportReturnsErrorW
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand All @@ -123,7 +116,6 @@ func TestImport_ImportSarifFileMissingExtension_CreateImportReturnsErrorWithCorr
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
&mock.ByorMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.FeatureFlagsMockWrapper{},
Expand Down
3 changes: 1 addition & 2 deletions internal/commands/util/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ func NewUtilsCommand(
projectsWrapper wrappers.ProjectsWrapper,
uploadsWrapper wrappers.UploadsWrapper,
groupsWrapper wrappers.GroupsWrapper,
accessManagementWrapper wrappers.AccessManagementWrapper,
applicationsWrapper wrappers.ApplicationsWrapper,
byorWrapper wrappers.ByorWrapper,
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
Expand All @@ -64,7 +63,7 @@ func NewUtilsCommand(
},
}

importCmd := NewImportCommand(projectsWrapper, uploadsWrapper, groupsWrapper, accessManagementWrapper, byorWrapper, applicationsWrapper, featureFlagsWrapper)
importCmd := NewImportCommand(projectsWrapper, uploadsWrapper, groupsWrapper, byorWrapper, applicationsWrapper, featureFlagsWrapper)

envCheckCmd := NewEnvCheckCommand()

Expand Down
1 change: 0 additions & 1 deletion internal/commands/util/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ func TestNewUtilsCommand(t *testing.T) {
&mock.ProjectsMockWrapper{},
&mock.UploadsMockWrapper{},
&mock.GroupsMockWrapper{},
mock.AccessManagementMockWrapper{},
mock.ApplicationsMockWrapper{},
&mock.ByorMockWrapper{},
&mock.FeatureFlagsMockWrapper{})
Expand Down
29 changes: 0 additions & 29 deletions internal/services/groups.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package services
import (
"strings"

featureFlagsConstants "github.com/checkmarx/ast-cli/internal/constants/feature-flags"
"github.com/checkmarx/ast-cli/internal/wrappers"
"github.com/pkg/errors"
)
Expand Down Expand Up @@ -47,34 +46,6 @@ func CreateGroupsMap(groupsStr string, groupsWrapper wrappers.GroupsWrapper) ([]
}
return groupsMap, nil
}

func AssignGroupsToProjectNewAccessManagement(projectID string, projectName string, groups []*wrappers.Group,
accessManagement wrappers.AccessManagementWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) error {

amEnabledFlag, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, featureFlagsConstants.AccessManagementEnabled)
amPhase2Flag, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, featureFlagsConstants.AccessManagementPhase2)

// If ACCESS_MANAGEMENT_PHASE2 flag is ON and if the ACCESS_MANAGEMENT_ENABLED flag is OFF
// In both cases, we do not need to assign groups through the CreateGroupsAssignment call.
if !amEnabledFlag.Status || amPhase2Flag.Status {
return nil
}
groupsAssignedToTheProject, err := accessManagement.GetGroups(projectID)
if err != nil {
return err
}
groupsToAssign := getGroupsToAssign(groups, groupsAssignedToTheProject)
if len(groupsToAssign) == 0 {
return nil
}

err = accessManagement.CreateGroupsAssignment(projectID, projectName, groupsToAssign)
if err != nil {
return err
}
return nil
}

func getGroupsToAssign(receivedGroups, existingGroups []*wrappers.Group) []*wrappers.Group {
var groupsToAssign []*wrappers.Group
var groupsMap = make(map[string]bool)
Expand Down
Loading
Loading