public boolean hasReadAccess()

in src/main/java/com/epam/digital/data/platform/kafkaapi/core/service/AccessPermissionService.java [46:73]


  public boolean hasReadAccess(
          List<FieldsAccessCheckDto> accessedFieldsDto, JwtClaimsDto userClaims) {
    List<String> userRoles = JwtClaimsUtils.getRoles(userClaims);
    try (Connection connection = dataSource.getConnection();
         CallableStatement statement = connection.prepareCall(PERMISSION_CHECK_SQL_STRING)) { //NOSONAR
      for (FieldsAccessCheckDto tableFields : accessedFieldsDto) {
        Array userRolesDbArray = connection.createArrayOf("text", userRoles.toArray());
        Array searchFieldsDbArray = connection.createArrayOf("text", tableFields.getFields().toArray());
        statement.setString(1, tableFields.getTableName()); //NOSONAR
        statement.setArray(2, userRolesDbArray);
        statement.setString(3, SEARCH_TYPE_OPERATION);
        statement.setArray(4, searchFieldsDbArray);

        ResultSet rs = statement.executeQuery();
        if (rs.next()) {
          boolean hasTableAccess = rs.getBoolean(1);
          if (!hasTableAccess) {
            return false;
          }
        } else {
          return false;
        }
      }
    } catch (SQLException e) {
      throw SQLExceptionResolverUtil.getDetailedExceptionFromSql(e);
    }
    return true;
  }