public List<FileHeader> getSharedFilesNotInSharedFolders(Long userId) {
List<FileHeader> files = manager.createQuery("select distinct f from FileHeader f " +
"LEFT JOIN f.permissions p where f.owner.id=:userId and f.deleted=false " +
- "and (p.group.id != null or p.user.id != f.owner.id) and f.folder.id " +
- "not in(select distinct fo.id from Folder fo LEFT JOIN fo.permissions po " +
- "where fo.owner.id=:userId and fo.deleted=false and (po.group.id != null " +
- "or po.user.id != fo.owner.id))").
+ "and (f.readForAll=true or p.group.id != null or p.user.id != f.owner.id)" +
+ " and f.folder.id not in (select distinct fo.id from Folder fo LEFT JOIN " +
+ "fo.permissions po where fo.owner.id=:userId and fo.deleted=false and " +
+ "(po.group.id != null or po.user.id != fo.owner.id))").
setParameter("userId", userId).getResultList();
return files;
}