public PermissionServiceImpl(ResourceTypes resourceTypes) { globalPermissions = ImmutableList.copyOf(ALL_GLOBAL_PERMISSIONS.stream() .filter(s -> !s.equals(OrganizationPermission.APPLICATION_CREATOR) || resourceTypes.isQualifierPresent(Qualifiers.APP)) .filter(s -> !s.equals(OrganizationPermission.PORTFOLIO_CREATOR) || resourceTypes.isQualifierPresent(Qualifiers.VIEW)) .collect(toList())); projectPermissions = ImmutableList.copyOf(ALL_PROJECT_PERMISSIONS.stream() .filter(s -> !s.equals(OrganizationPermission.APPLICATION_CREATOR.getKey()) || resourceTypes.isQualifierPresent(Qualifiers.APP)) .filter(s -> !s.equals(OrganizationPermission.PORTFOLIO_CREATOR.getKey()) || resourceTypes.isQualifierPresent(Qualifiers.VIEW)) .collect(toList())); }
@Test public void isQualifierPresent() { assertThat(types.isQualifierPresent(Qualifiers.APP)).isTrue(); assertThat(types.isQualifierPresent(Qualifiers.VIEW)).isTrue(); assertThat(types.isQualifierPresent("XXXX")).isFalse(); }
@Test public void insert_default_permission_template_if_fresh_install_with_governance() { GroupDto defaultGroup = createAndSetDefaultGroup(); db.users().insertGroup(db.getDefaultOrganization(), DefaultGroups.ADMINISTRATORS); when(resourceTypes.isQualifierPresent(eq(Qualifiers.APP))).thenReturn(true); when(resourceTypes.isQualifierPresent(eq(Qualifiers.VIEW))).thenReturn(true); underTest.start(); PermissionTemplateDto defaultTemplate = selectTemplate(); assertThat(defaultTemplate.getName()).isEqualTo("Default template"); List<PermissionTemplateGroupDto> groupPermissions = selectGroupPermissions(defaultTemplate); assertThat(groupPermissions).hasSize(7); expectGroupPermission(groupPermissions, UserRole.ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.ISSUE_ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.SECURITYHOTSPOT_ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, OrganizationPermission.APPLICATION_CREATOR.getKey(), DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, OrganizationPermission.PORTFOLIO_CREATOR.getKey(), DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.CODEVIEWER, defaultGroup.getName()); expectGroupPermission(groupPermissions, UserRole.USER, defaultGroup.getName()); verifyDefaultTemplates(); assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); }
@Test public void insert_default_permission_template_if_fresh_install_without_governance() { GroupDto defaultGroup = createAndSetDefaultGroup(); db.users().insertGroup(db.getDefaultOrganization(), DefaultGroups.ADMINISTRATORS); when(resourceTypes.isQualifierPresent(eq(Qualifiers.APP))).thenReturn(false); when(resourceTypes.isQualifierPresent(eq(Qualifiers.VIEW))).thenReturn(false); underTest.start(); PermissionTemplateDto defaultTemplate = selectTemplate(); assertThat(defaultTemplate.getName()).isEqualTo("Default template"); List<PermissionTemplateGroupDto> groupPermissions = selectGroupPermissions(defaultTemplate); assertThat(groupPermissions).hasSize(7); expectGroupPermission(groupPermissions, UserRole.ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.ISSUE_ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.SECURITYHOTSPOT_ADMIN, DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, OrganizationPermission.APPLICATION_CREATOR.getKey(), DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, OrganizationPermission.PORTFOLIO_CREATOR.getKey(), DefaultGroups.ADMINISTRATORS); expectGroupPermission(groupPermissions, UserRole.CODEVIEWER, defaultGroup.getName()); expectGroupPermission(groupPermissions, UserRole.USER, defaultGroup.getName()); verifyDefaultTemplates(); assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty(); }