@Override public final Condition or(Condition other) { return DSL.or(this, other); }
public Condition userHasEditPermission(User user) { Set<String> userPermissions = user.getPermissionsSet(); List<Condition> conditions = new ArrayList<>(userPermissions.size()); for (String userPermission : userPermissions) { conditions.add(fieldMatchesUserPermission(DataSourceDao.EDIT_PERMISSION, userPermission)); } return DSL.or(conditions); }
public Condition userHasSetPermission(User user) { Set<String> userPermissions = user.getPermissionsSet(); List<Condition> conditions = new ArrayList<>(userPermissions.size() * 2); for (String userPermission : userPermissions) { conditions.add(fieldMatchesUserPermission(SET_PERMISSION, userPermission)); conditions.add(fieldMatchesUserPermission(DataSourceDao.EDIT_PERMISSION, userPermission)); } return DSL.or(conditions); }
public Condition userHasPermission(User user) { Set<String> userPermissions = user.getPermissionsSet(); List<Condition> conditions = new ArrayList<>(userPermissions.size() * 3); for (String userPermission : userPermissions) { conditions.add(fieldMatchesUserPermission(READ_PERMISSION, userPermission)); conditions.add(fieldMatchesUserPermission(SET_PERMISSION, userPermission)); conditions.add(fieldMatchesUserPermission(DataSourceDao.EDIT_PERMISSION, userPermission)); } return DSL.or(conditions); }
private final QueryPartInternal delegate(Configuration configuration) { if (EMULATE_IN.contains(configuration.family())) { List<Condition> conditions = new ArrayList<Condition>(right.size()); for (Row row : right) conditions.add(new RowCondition(left, row, EQUALS)); Condition result = DSL.or(conditions); if (comparator == NOT_IN) result = result.not(); return (QueryPartInternal) result; } else { return new Native(); } }
/** * Match any permission * @param field * @param userPermission * @return */ protected Condition fieldMatchesAnyPermission(Field<Object> field, List<?> permissions) { if(permissions.size() == 0) { return DSL.trueCondition(); }else { Condition or = null; for(Object permission : permissions) { if(or == null) or = fieldMatchesPermission(field, permission); else or = DSL.or(or, fieldMatchesPermission(field, permission)); } return or; } }
Condition fieldMatchesUserPermission(Field<String> field, String userPermission) { return DSL.or( field.eq(userPermission), DSL.and( field.isNotNull(), field.notEqual(""), field.likeRegex(PERMISSION_START_REGEX + userPermission + PERMISSION_END_REGEX) ) ); }
private Condition fieldMatchesPermission(Field<Object> field, Object permission) { //For now only support strings if(!(permission instanceof String)) return DSL.falseCondition(); return DSL.or( field.eq(permission), DSL.and( field.isNotNull(), field.notEqual(""), field.likeRegex(PERMISSION_START_REGEX + permission + PERMISSION_END_REGEX) ) ); }
protected Condition visitNode(ASTNode node) { switch (node.getName()) { case "": case "and": { List<Condition> conditions = visitAndOr(node); return conditions.isEmpty() ? null : DSL.and(conditions); } case "or": { List<Condition> conditions = visitAndOr(node); return conditions.isEmpty() ? null : DSL.or(conditions); } case "sort": sortFields = getSortFields(node); return null; case "limit": limit = (Integer) node.getArgument(0); if (node.getArgumentsSize() > 1) { offset = (Integer) node.getArgument(1); } return null; default: return visitConditionNode(node); } }
outer.add(new RowCondition(left, right, Comparator.EQUALS)); Condition result = DSL.or(outer);
public int deleteNameAndDeviceTagsForDataPointId(int dataPointId) { return this.create.deleteFrom(DATA_POINT_TAGS) .where(DATA_POINT_ID.eq(dataPointId)) .and(DSL.or(TAG_KEY.eq(NAME_TAG_KEY), TAG_KEY.eq(DEVICE_TAG_KEY))) .execute(); }
: DSL.or(comparisonConditions);
.where(V_PROCESS_QUEUE.INITIATOR_ID.eq(initiatorId) .and(V_PROCESS_QUEUE.LAST_UPDATED_AT.greaterOrEqual(fromUpdatedAt)) .and(or(V_PROCESS_QUEUE.PROJECT_ID.in(projectIds), V_PROCESS_QUEUE.PROJECT_ID.isNull())));
.and(or(q.START_AT.isNull(), q.START_AT.le(currentTimestamp()))));
public List<SecretEntry> list(UUID orgId, UUID currentUserId, Field<?> sortField, boolean asc) { SelectConditionStep<Record1<UUID>> teamIds = select(TEAMS.TEAM_ID) .from(TEAMS) .where(TEAMS.ORG_ID.eq(orgId)); Condition filterByTeamMember = exists(selectOne().from(USER_TEAMS) .where(USER_TEAMS.USER_ID.eq(currentUserId) .and(USER_TEAMS.TEAM_ID.in(teamIds)))); try (DSLContext tx = DSL.using(cfg)) { SelectJoinStep<Record12<UUID, String, UUID, String, UUID, String, UUID, String, String, String, String, String>> query = selectEntry(tx); if (currentUserId != null) { query.where(or(SECRETS.VISIBILITY.eq(SecretVisibility.PUBLIC.toString()), filterByTeamMember)); } if (orgId != null) { query.where(SECRETS.ORG_ID.eq(orgId)); } if (sortField != null) { query.orderBy(asc ? sortField.asc() : sortField.desc()); } return query.fetch(SecretDao::toEntry); } }
private List<LandingEntry> list(DSLContext tx, UUID orgId, UUID currentUserId) { LandingPage lp = LANDING_PAGE.as("lp"); Projects p = PROJECTS.as("p"); Repositories r = REPOSITORIES.as("r"); Field<String> orgNameField = select(ORGANIZATIONS.ORG_NAME).from(ORGANIZATIONS).where(ORGANIZATIONS.ORG_ID.eq(p.ORG_ID)).asField(); SelectConditionStep<Record1<UUID>> teamIds = select(TEAMS.TEAM_ID) .from(TEAMS) .where(TEAMS.ORG_ID.eq(orgId)); Condition filterByTeamMember = exists(selectOne().from(USER_TEAMS) .where(USER_TEAMS.USER_ID.eq(currentUserId) .and(USER_TEAMS.TEAM_ID.in(teamIds)))); SelectJoinStep<Record9<UUID, UUID, String, UUID, String, String, String, String, byte[]>> q = tx.select(lp.LANDING_PAGE_ID, p.ORG_ID, orgNameField, lp.PROJECT_ID, p.PROJECT_NAME, r.REPO_NAME, lp.NAME, lp.DESCRIPTION, lp.ICON) .from(lp) .innerJoin(p).on(p.PROJECT_ID.eq(lp.PROJECT_ID)) .innerJoin(r).on(r.REPO_ID.eq(lp.REPO_ID)); if (currentUserId != null) { q.where(or(p.VISIBILITY.eq(ProjectVisibility.PUBLIC.toString()), filterByTeamMember)); } return q.orderBy(lp.NAME) .fetch(LandingDao::toEntity); }
q.where(or(p.VISIBILITY.eq(ProjectVisibility.PUBLIC.toString()), filterByTeamMember));