public void associateQualityGateToOrganization(QualityGateDto qualityGate, OrganizationDto organization) { dbClient.qualityGateDao().associate(dbSession, Uuids.createFast(), organization, qualityGate); db.commit(); }
public QualityGateDto create(DbSession dbSession, OrganizationDto organizationDto, String name) { validateQualityGate(dbSession, organizationDto, name); QualityGateDto newQualityGate = new QualityGateDto() .setName(name) .setBuiltIn(false) .setUuid(uuidFactory.create()); dbClient.qualityGateDao().insert(dbSession, newQualityGate); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organizationDto, newQualityGate); return newQualityGate; }
@SafeVarargs public final QGateWithOrgDto insertQualityGate(OrganizationDto organization, Consumer<QualityGateDto>... dtoPopulators) { QualityGateDto qualityGate = new QualityGateDto() .setName(randomAlphanumeric(30)) .setUuid(Uuids.createFast()) .setBuiltIn(false); Arrays.stream(dtoPopulators).forEach(dtoPopulator -> dtoPopulator.accept(qualityGate)); dbClient.qualityGateDao().insert(dbSession, qualityGate); dbClient.qualityGateDao().associate(dbSession, Uuids.createFast(), organization, qualityGate); db.commit(); return dbClient.qualityGateDao().selectByOrganizationAndUuid(dbSession, organization, qualityGate.getUuid()); }
@Test public void associate() { QualityGateDto qgate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); OrganizationDto org = db.organizations().insert(); underTest.associate(dbSession, Uuids.createFast(), org, qgate); assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid())).isNotNull(); assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid())) .extracting(QGateWithOrgDto::getId, QGateWithOrgDto::getUuid, QGateWithOrgDto::getOrganizationUuid, QGateWithOrgDto::getName) .containsExactly(qgate.getId(), qgate.getUuid(), org.getUuid(), qgate.getName()); }
@Override public OrganizationDto create(DbSession dbSession, UserDto userCreator, NewOrganization newOrganization, Consumer<OrganizationDto> beforeCommit) throws KeyConflictException { validate(newOrganization); String key = newOrganization.getKey(); if (organizationKeyIsUsed(dbSession, key)) { throw new KeyConflictException(format("Organization key '%s' is already used", key)); } QualityGateDto builtInQualityGate = dbClient.qualityGateDao().selectBuiltIn(dbSession); OrganizationDto organization = insertOrganization(dbSession, newOrganization, builtInQualityGate); beforeCommit.accept(organization); insertOrganizationMember(dbSession, organization, userCreator.getId()); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organization, builtInQualityGate); GroupDto ownerGroup = insertOwnersGroup(dbSession, organization); GroupDto defaultGroup = defaultGroupCreator.create(dbSession, organization.getUuid()); insertDefaultTemplateOnGroups(dbSession, organization, ownerGroup, defaultGroup); addCurrentUserToGroup(dbSession, ownerGroup, userCreator.getId()); addCurrentUserToGroup(dbSession, defaultGroup, userCreator.getId()); try (DbSession batchDbSession = dbClient.openSession(true)) { insertQualityProfiles(dbSession, batchDbSession, organization); batchDbSession.commit(); // Elasticsearch is updated when DB session is committed userIndexer.commitAndIndex(dbSession, userCreator); return organization; } }
insertOrganizationMember(dbSession, organization, newUser.getId()); GroupDto defaultGroup = defaultGroupCreator.create(dbSession, organization.getUuid()); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organization, builtInQualityGate); permissionService.getAllOrganizationPermissions() .forEach(p -> insertUserPermissions(dbSession, newUser, organization, p));
@Test public void does_not_delete_built_in_quality_gate() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate(); db.getDbClient().qualityGateDao().associate(db.getSession(), Uuids.createFast(), organization, builtInQualityGate); db.commit(); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage(format("Operation forbidden for built-in Quality Gate '%s'", builtInQualityGate.getName())); ws.newRequest() .setParam(PARAM_ID, valueOf(builtInQualityGate.getId())) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); }
public QualityGateDto create(DbSession dbSession, OrganizationDto organizationDto, String name) { validateQualityGate(dbSession, organizationDto, name); QualityGateDto newQualityGate = new QualityGateDto() .setName(name) .setBuiltIn(false) .setUuid(uuidFactory.create()); dbClient.qualityGateDao().insert(dbSession, newQualityGate); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organizationDto, newQualityGate); return newQualityGate; }
insertOrganizationMember(dbSession, organization, newUser.getId()); GroupDto defaultGroup = defaultGroupCreator.create(dbSession, organization.getUuid()); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organization, builtInQualityGate); OrganizationPermission.all() .forEach(p -> insertUserPermissions(dbSession, newUser, organization, p));
@Override public OrganizationDto create(DbSession dbSession, UserDto userCreator, NewOrganization newOrganization) throws KeyConflictException { validate(newOrganization); String key = newOrganization.getKey(); if (organizationKeyIsUsed(dbSession, key)) { throw new KeyConflictException(format("Organization key '%s' is already used", key)); } QualityGateDto builtInQualityGate = dbClient.qualityGateDao().selectBuiltIn(dbSession); OrganizationDto organization = insertOrganization(dbSession, newOrganization, builtInQualityGate); insertOrganizationMember(dbSession, organization, userCreator.getId()); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organization, builtInQualityGate); GroupDto ownerGroup = insertOwnersGroup(dbSession, organization); GroupDto defaultGroup = defaultGroupCreator.create(dbSession, organization.getUuid()); insertDefaultTemplateOnGroups(dbSession, organization, ownerGroup, defaultGroup); try (DbSession batchDbSession = dbClient.openSession(true)) { insertQualityProfiles(dbSession, batchDbSession, organization); addCurrentUserToGroup(dbSession, ownerGroup, userCreator.getId()); addCurrentUserToGroup(dbSession, defaultGroup, userCreator.getId()); batchDbSession.commit(); // Elasticsearch is updated when DB session is committed userIndexer.commitAndIndex(dbSession, userCreator); return organization; } }