Revision be3b26e1
b/src/gr/ebs/gss/server/ejb/GSSDAOBean.java | ||
---|---|---|
31 | 31 |
import gr.ebs.gss.server.domain.User; |
32 | 32 |
import gr.ebs.gss.server.domain.UserClass; |
33 | 33 |
|
34 |
import java.math.BigInteger; |
|
34 | 35 |
import java.util.ArrayList; |
35 | 36 |
import java.util.Calendar; |
36 | 37 |
import java.util.Date; |
... | ... | |
330 | 331 |
setParameter("userId", userId).setParameter("groupId", groupId).getResultList(); |
331 | 332 |
} |
332 | 333 |
|
334 |
private List<Long> getGroupIdsForUserId(Long userId) { |
|
335 |
List<BigInteger> groups = manager.createNativeQuery("select distinct groupsmember_id " + |
|
336 |
"from GSS_Group_GSS_User where members_id=:userId") |
|
337 |
.setParameter("userId", userId) |
|
338 |
.getResultList(); |
|
339 |
List<Long> groupIds = new ArrayList<Long>(); |
|
340 |
for (BigInteger id : groups) |
|
341 |
groupIds.add(id.longValue()); |
|
342 |
return groupIds; |
|
343 |
} |
|
344 |
|
|
333 | 345 |
@Override |
334 | 346 |
public List<User> getUsersSharingFoldersForUser(Long userId) { |
335 | 347 |
return manager.createQuery("select distinct f.owner from Folder f " + |
336 | 348 |
"LEFT JOIN f.permissions p where f.owner.id != :userId and f.deleted=false " + |
337 |
"and (p.user.id=:userId or p.group.id in (select distinct gg.id " +
|
|
338 |
"from Group gg join gg.members memb where memb.id=:userId))) ").
|
|
349 |
"and (p.user.id=:userId or p.group.id in (:groupIds))").
|
|
350 |
setParameter("groupIds", getGroupIdsForUserId(userId)).
|
|
339 | 351 |
setParameter("userId", userId).getResultList(); |
340 | 352 |
} |
341 | 353 |
|
... | ... | |
343 | 355 |
public List<User> getUsersSharingFilesForUser(Long userId) { |
344 | 356 |
List<User> users = manager.createQuery("select distinct f.owner from FileHeader f " + |
345 | 357 |
"LEFT JOIN f.permissions p where f.owner.id != :userId and f.deleted=false " + |
346 |
"and (p.user.id=:userId or p.group.id in (select distinct gg.id from Group gg " + |
|
347 |
"join gg.members memb where memb.id=:userId)))"). |
|
348 |
setParameter("userId", userId).getResultList(); |
|
358 |
"and (p.user.id=:userId or p.group.id in (:groupIds))"). |
|
359 |
setParameter("userId", userId). |
|
360 |
setParameter("groupIds", getGroupIdsForUserId(userId)). |
|
361 |
getResultList(); |
|
349 | 362 |
return users; |
350 |
|
|
351 | 363 |
} |
352 | 364 |
|
353 | 365 |
@Override |
Also available in: Unified diff