use of com.walmartlabs.concord.server.jooq.enums.OutVariablesMode in project concord by walmartlabs.
the class AssertOutVariablesProcessor method isOutVariablesAllowed.
private boolean isOutVariablesAllowed(Payload payload) {
UUID projectId = payload.getHeader(Payload.PROJECT_ID);
if (projectId == null) {
return true;
}
ProjectEntry p = projectDao.get(projectId);
if (p == null) {
throw new ProcessException(payload.getProcessKey(), "Project not found: " + projectId);
}
OutVariablesMode m = p.getOutVariablesMode();
switch(m) {
case DISABLED:
{
return false;
}
case OWNERS:
{
return projectAccessManager.hasAccess(p, ResourceAccessLevel.OWNER, false);
}
case TEAM_MEMBERS:
{
return projectAccessManager.isTeamMember(p.getId());
}
case ORG_MEMBERS:
{
return userManager.isInOrganization(p.getOrgId());
}
case EVERYONE:
{
return true;
}
default:
throw new IllegalArgumentException("Unsupported out variables mode: " + m);
}
}
use of com.walmartlabs.concord.server.jooq.enums.OutVariablesMode in project concord by walmartlabs.
the class ProjectDao method get.
public ProjectEntry get(DSLContext tx, UUID projectId) {
Projects p = PROJECTS.as("p");
Users u = USERS.as("u");
Field<String> orgNameField = select(ORGANIZATIONS.ORG_NAME).from(ORGANIZATIONS).where(ORGANIZATIONS.ORG_ID.eq(p.ORG_ID)).asField();
Record15<UUID, String, String, UUID, String, JSONB, String, UUID, String, String, String, String, RawPayloadMode, JSONB, OutVariablesMode> r = tx.select(p.PROJECT_ID, p.PROJECT_NAME, p.DESCRIPTION, p.ORG_ID, orgNameField, p.PROJECT_CFG, p.VISIBILITY, p.OWNER_ID, u.USERNAME, u.DOMAIN, u.USER_TYPE, u.DISPLAY_NAME, p.RAW_PAYLOAD_MODE, p.META, p.OUT_VARIABLES_MODE).from(p).leftJoin(u).on(u.USER_ID.eq(p.OWNER_ID)).where(p.PROJECT_ID.eq(projectId)).fetchOne();
if (r == null) {
return null;
}
Result<Record13<UUID, UUID, String, String, String, String, String, Boolean, JSONB, UUID, String, String, Boolean>> repos = tx.select(REPOSITORIES.REPO_ID, REPOSITORIES.PROJECT_ID, REPOSITORIES.REPO_NAME, REPOSITORIES.REPO_URL, REPOSITORIES.REPO_BRANCH, REPOSITORIES.REPO_COMMIT_ID, REPOSITORIES.REPO_PATH, REPOSITORIES.IS_DISABLED, REPOSITORIES.META, SECRETS.SECRET_ID, SECRETS.SECRET_NAME, SECRETS.STORE_TYPE, REPOSITORIES.IS_TRIGGERS_DISABLED).from(REPOSITORIES).leftOuterJoin(SECRETS).on(SECRETS.SECRET_ID.eq(REPOSITORIES.SECRET_ID)).where(REPOSITORIES.PROJECT_ID.eq(projectId)).fetch();
Map<String, RepositoryEntry> m = new HashMap<>();
for (Record13<UUID, UUID, String, String, String, String, String, Boolean, JSONB, UUID, String, String, Boolean> repo : repos) {
m.put(repo.get(REPOSITORIES.REPO_NAME), new RepositoryEntry(repo.get(REPOSITORIES.REPO_ID), repo.get(REPOSITORIES.PROJECT_ID), repo.get(REPOSITORIES.REPO_NAME), repo.get(REPOSITORIES.REPO_URL), repo.get(REPOSITORIES.REPO_BRANCH), repo.get(REPOSITORIES.REPO_COMMIT_ID), repo.get(REPOSITORIES.REPO_PATH), repo.get(REPOSITORIES.IS_DISABLED), repo.get(SECRETS.SECRET_ID), repo.get(SECRETS.SECRET_NAME), repo.get(SECRETS.STORE_TYPE), objectMapper.fromJSONB(repo.get(REPOSITORIES.META)), repo.get(REPOSITORIES.IS_TRIGGERS_DISABLED)));
}
Map<String, Object> cfg = objectMapper.fromJSONB(r.get(p.PROJECT_CFG));
return new ProjectEntry(projectId, r.get(p.PROJECT_NAME), r.get(p.DESCRIPTION), r.get(p.ORG_ID), r.get(orgNameField), m, cfg, ProjectVisibility.valueOf(r.get(p.VISIBILITY)), toOwner(r.get(p.OWNER_ID), r.get(u.USERNAME), r.get(u.DOMAIN), r.get(u.DISPLAY_NAME), r.get(u.USER_TYPE)), r.get(p.RAW_PAYLOAD_MODE) != RawPayloadMode.DISABLED, r.get(p.RAW_PAYLOAD_MODE), objectMapper.fromJSONB(r.get(p.META)), r.get(p.OUT_VARIABLES_MODE));
}
Aggregations