Author: solomax
Date: Wed Jan 25 14:55:08 2017
New Revision: 1780198

URL: http://svn.apache.org/viewvc?rev=1780198&view=rev
Log:
[OPENMEETINGS-1541] invitations for users with no TZ works

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
    
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
    
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 Wed Jan 25 14:55:08 2017
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
@@ -31,6 +32,7 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.util.CalendarHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,9 +86,18 @@ public class InvitationDao {
                                        }
                                        break;
                                case Period:
-                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(i.getInvitee().getTimeZoneId())).toLocalDateTime();
-                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), i.getInvitee().getTimeZoneId());
-                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), i.getInvitee().getTimeZoneId());
+                                       String tzId = 
i.getInvitee().getTimeZoneId();
+                                       if (Strings.isEmpty(tzId) && 
i.getAppointment() != null) {
+                                               log.warn("User with NO timezone 
found: {}", i.getInvitee().getId());
+                                               tzId = 
i.getAppointment().getOwner().getTimeZoneId();
+                                       }
+                                       if (Strings.isEmpty(tzId)) {
+                                               log.warn("Unable to obtain 
valid timezone, setting SYSTEM TZ");
+                                               tzId = 
TimeZone.getDefault().getID();
+                                       }
+                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(tzId)).toLocalDateTime();
+                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), tzId);
+                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), tzId);
                                        i.setAllowEntry(now.isAfter(from) && 
now.isBefore(to));
                                        break;
                                case Endless:

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 Wed Jan 25 14:55:08 2017
@@ -31,6 +31,7 @@ import org.apache.openmeetings.db.dto.us
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.util.string.Strings;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -72,6 +73,9 @@ public class MeetingMemberDTO implements
                                u.setExternalId(null);
                                u.setExternalType(null);
                        }
+                       if (Strings.isEmpty(u.getTimeZoneId())) {
+                               u.setTimeZoneId(owner.getTimeZoneId());
+                       }
                        mm.setUser(u);
                }
                return mm;

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 Wed Jan 25 14:55:08 2017
@@ -301,6 +301,7 @@ public class CalendarWebService {
                                log.error("USER/Room modification as SOAP");
                                throw new ServiceException("Insufficient 
permissions"); //TODO code -26
                        }
+                       //TODO check if objects passed with IDs are correct
                        if (AuthLevelUtil.hasUserLevel(u.getRights())) {
                                Appointment a = appointment.get(userDao, 
appointmentDao, u);
                                if (a.getRoom().getId() != null) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 Wed Jan 25 14:55:08 2017
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
@@ -31,6 +32,7 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.util.CalendarHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,9 +86,18 @@ public class InvitationDao {
                                        }
                                        break;
                                case Period:
-                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(i.getInvitee().getTimeZoneId())).toLocalDateTime();
-                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), i.getInvitee().getTimeZoneId());
-                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), i.getInvitee().getTimeZoneId());
+                                       String tzId = 
i.getInvitee().getTimeZoneId();
+                                       if (Strings.isEmpty(tzId) && 
i.getAppointment() != null) {
+                                               log.warn("User with NO timezone 
found: {}", i.getInvitee().getId());
+                                               tzId = 
i.getAppointment().getOwner().getTimeZoneId();
+                                       }
+                                       if (Strings.isEmpty(tzId)) {
+                                               log.warn("Unable to obtain 
valid timezone, setting SYSTEM TZ");
+                                               tzId = 
TimeZone.getDefault().getID();
+                                       }
+                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(tzId)).toLocalDateTime();
+                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), tzId);
+                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), tzId);
                                        i.setAllowEntry(now.isAfter(from) && 
now.isBefore(to));
                                        break;
                                case Endless:

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 Wed Jan 25 14:55:08 2017
@@ -31,6 +31,7 @@ import org.apache.openmeetings.db.dto.us
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.util.string.Strings;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -72,6 +73,9 @@ public class MeetingMemberDTO implements
                                u.setExternalId(null);
                                u.setExternalType(null);
                        }
+                       if (Strings.isEmpty(u.getTimeZoneId())) {
+                               u.setTimeZoneId(owner.getTimeZoneId());
+                       }
                        mm.setUser(u);
                }
                return mm;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 Wed Jan 25 14:55:08 2017
@@ -302,6 +302,7 @@ public class CalendarWebService {
                                log.error("USER/Room modification as SOAP");
                                throw new ServiceException("Insufficient 
permissions"); //TODO code -26
                        }
+                       //TODO check if objects passed with IDs are correct
                        if (AuthLevelUtil.hasUserLevel(u.getRights())) {
                                Appointment a = appointment.get(userDao, 
appointmentDao, u);
                                if (a.getRoom().getId() != null) {

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
 Wed Jan 25 14:55:08 2017
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.List;
+import java.util.TimeZone;
 
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
@@ -31,6 +32,7 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.util.CalendarHelper;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,9 +86,18 @@ public class InvitationDao {
                                        }
                                        break;
                                case Period:
-                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(i.getInvitee().getTimeZoneId())).toLocalDateTime();
-                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), i.getInvitee().getTimeZoneId());
-                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), i.getInvitee().getTimeZoneId());
+                                       String tzId = 
i.getInvitee().getTimeZoneId();
+                                       if (Strings.isEmpty(tzId) && 
i.getAppointment() != null) {
+                                               log.warn("User with NO timezone 
found: {}", i.getInvitee().getId());
+                                               tzId = 
i.getAppointment().getOwner().getTimeZoneId();
+                                       }
+                                       if (Strings.isEmpty(tzId)) {
+                                               log.warn("Unable to obtain 
valid timezone, setting SYSTEM TZ");
+                                               tzId = 
TimeZone.getDefault().getID();
+                                       }
+                                       LocalDateTime now = 
ZonedDateTime.now(getZoneId(tzId)).toLocalDateTime();
+                                       LocalDateTime from = 
CalendarHelper.getDateTime(i.getValidFrom(), tzId);
+                                       LocalDateTime to = 
CalendarHelper.getDateTime(i.getValidTo(), tzId);
                                        i.setAllowEntry(now.isAfter(from) && 
now.isBefore(to));
                                        break;
                                case Endless:

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
 Wed Jan 25 14:55:08 2017
@@ -31,6 +31,7 @@ import org.apache.openmeetings.db.dto.us
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.util.string.Strings;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -72,6 +73,9 @@ public class MeetingMemberDTO implements
                                u.setExternalId(null);
                                u.setExternalType(null);
                        }
+                       if (Strings.isEmpty(u.getTimeZoneId())) {
+                               u.setTimeZoneId(owner.getTimeZoneId());
+                       }
                        mm.setUser(u);
                }
                return mm;

Modified: 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1780198&r1=1780197&r2=1780198&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 Wed Jan 25 14:55:08 2017
@@ -302,6 +302,7 @@ public class CalendarWebService {
                                log.error("USER/Room modification as SOAP");
                                throw new ServiceException("Insufficient 
permissions"); //TODO code -26
                        }
+                       //TODO check if objects passed with IDs are correct
                        if (AuthLevelUtil.hasUserLevel(u.getRights())) {
                                Appointment a = appointment.get(userDao, 
appointmentDao, u);
                                if (a.getRoom().getId() != null) {


Reply via email to