Repository: openmeetings Updated Branches: refs/heads/master 1fef09d04 -> 51d669a97
[OPENMEETINGS-1714] more issues are fixed Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/51d669a9 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/51d669a9 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/51d669a9 Branch: refs/heads/master Commit: 51d669a977d389bb90817049e12ee38eecb96c36 Parents: 1fef09d Author: Maxim Solodovnik <[email protected]> Authored: Fri Oct 13 23:01:00 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Fri Oct 13 23:01:00 2017 +0700 ---------------------------------------------------------------------- .../openmeetings/core/service/MainService.java | 76 +++++++++++--------- 1 file changed, 42 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/51d669a9/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java index 5976c2c..bfabbd0 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java @@ -46,42 +46,50 @@ public class MainService { // External User Types public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP"; - public boolean isRoomAllowedToUser(Room r, User u) { - boolean allowed = false; - if (r != null) { - if (r.isAppointment()) { - Appointment a = appointmentDao.getByRoom(r.getId()); - if (a != null && !a.isDeleted()) { - allowed = a.getOwner().getId().equals(u.getId()); - log.debug("[loginWicket] appointed room, isOwner ? " + allowed); - if (!allowed) { - for (MeetingMember mm : a.getMeetingMembers()) { - if (mm.getUser().getId().equals(u.getId())) { - allowed = true; - break; - } - } - } - // TODO restrict by time??? - } - } else { - allowed = r.getIspublic() || (r.getOwnerId() != null && r.getOwnerId().equals(u.getId())); - log.debug("[loginWicket] public ? " + r.getIspublic() + ", ownedId ? " + r.getOwnerId() + " " + allowed); - if (!allowed && null != r.getGroups()) { - for (RoomGroup ro : r.getGroups()) { - for (GroupUser ou : u.getGroupUsers()) { - if (ro.getGroup().getId().equals(ou.getGroup().getId())) { - allowed = true; - break; - } - } - if (allowed) { - break; - } - } + private static boolean checkAppointment(Appointment a, User u) { + if (a == null || a.isDeleted()) { + return false; + } + if (a.getOwner().getId().equals(u.getId())) { + log.debug("[isRoomAllowedToUser] appointed room, Owner entered"); + return true; + } + for (MeetingMember mm : a.getMeetingMembers()) { + if (mm.getUser().getId().equals(u.getId())) { + return true; + } + } + // TODO restrict by time??? + return false; + } + + private static boolean checkGroups(Room r, User u) { + if (null == r.getGroups()) { //u.getGroupUsers() can't be null due to user was able to login + return false; + } + for (RoomGroup ro : r.getGroups()) { + for (GroupUser ou : u.getGroupUsers()) { + if (ro.getGroup().getId().equals(ou.getGroup().getId())) { + return true; } } } - return allowed; + return false; + } + + public boolean isRoomAllowedToUser(Room r, User u) { + if (r == null) { + return false; + } + if (r.isAppointment()) { + Appointment a = appointmentDao.getByRoom(r.getId()); + return checkAppointment(a, u); + } else { + if (r.getIspublic() || (r.getOwnerId() != null && r.getOwnerId().equals(u.getId()))) { + log.debug("[isRoomAllowedToUser] public ? {} , ownedId ? {} ALLOWED", r.getIspublic(), r.getOwnerId()); + return true; + } + return checkGroups(r, u); + } } }
