@Test public void actions_when_not_logged_in() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); userSession.anonymous(); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder(tuple(profile.getKee(), false, false, false, false, false)); assertThat(result.getActions().getCreate()).isFalse(); }
@Test public void actions_when_user_is_global_qprofile_administer() { OrganizationDto organization = db.organizations().insert(); QProfileDto customProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()).setIsBuiltIn(true)); QProfileDto defaultProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); db.qualityProfiles().setAsDefault(defaultProfile); UserDto user = db.users().insertUser(); userSession.logIn(user).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder( tuple(customProfile.getKee(), true, true, true, true, true), tuple(builtInProfile.getKee(), false, true, true, false, true), tuple(defaultProfile.getKee(), true, true, false, false, false)); assertThat(result.getActions().getCreate()).isTrue(); }
@Test public void actions_when_user_can_edit_profile() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile1 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); QProfileDto profile2 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey())); QProfileDto profile3 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey())); QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey()).setIsBuiltIn(true)); UserDto user = db.users().insertUser(); GroupDto group = db.users().insertGroup(organization); db.qualityProfiles().addUserPermission(profile1, user); db.qualityProfiles().addGroupPermission(profile3, group); userSession.logIn(user).setGroups(group); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder( tuple(profile1.getKee(), true, false, false, true, true), tuple(profile2.getKee(), false, false, false, false, false), tuple(profile3.getKee(), true, false, false, true, true), tuple(builtInProfile.getKee(), false, false, false, false, false)); assertThat(result.getActions().getCreate()).isFalse(); }