You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/09/12 03:21:28 UTC
svn commit: r1522099 [3/4] - in /openmeetings/trunk/singlewebapp: ./ docs/
src/main/java/org/apache/openmeetings/axis/services/
src/main/java/org/apache/openmeetings/backup/
src/main/java/org/apache/openmeetings/data/calendar/beans/
src/main/java/org/a...
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java Thu Sep 12 01:21:26 2013
@@ -18,27 +18,25 @@
*/
package org.apache.openmeetings.data.conference;
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
+
+import java.security.NoSuchAlgorithmException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.TimeZone;
import java.util.Vector;
-import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.data.basic.AuthLevelUtil;
import org.apache.openmeetings.data.basic.FieldManager;
-import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
-import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
-import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
import org.apache.openmeetings.data.conference.dao.InvitationDao;
-import org.apache.openmeetings.data.conference.dao.RoomDao;
-import org.apache.openmeetings.data.user.UserManager;
-import org.apache.openmeetings.data.user.dao.UserDao;
import org.apache.openmeetings.persistence.beans.basic.MailMessage;
import org.apache.openmeetings.persistence.beans.calendar.Appointment;
import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation.Valid;
import org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
+import org.apache.openmeetings.persistence.beans.room.Room;
import org.apache.openmeetings.persistence.beans.user.User;
import org.apache.openmeetings.persistence.beans.user.User.Type;
import org.apache.openmeetings.utils.TimezoneUtil;
@@ -61,36 +59,25 @@ import org.springframework.transaction.a
*/
@Transactional
public class InvitationManager {
-
- private static final Logger log = Red5LoggerFactory.getLogger(
- InvitationManager.class, OpenmeetingsVariables.webAppRootKey);
+ private static final Logger log = Red5LoggerFactory.getLogger(InvitationManager.class, webAppRootKey);
+ public enum MessageType {
+ Create
+ , Update
+ , Cancel
+ }
@Autowired
private InvitationDao invitationDao;
@Autowired
- private AppointmentLogic appointmentLogic;
- @Autowired
- private ConfigurationDao configurationDao;
- @Autowired
- private UserManager userManager;
- @Autowired
private FieldManager fieldManager;
@Autowired
private ManageCryptStyle manageCryptStyle;
@Autowired
- private RoomDao roomDao;
- @Autowired
- private UserDao usersDao;
- @Autowired
private MailHandler mailHandler;
@Autowired
private SMSHandler smsHandler;
@Autowired
- private AuthLevelUtil authLevelUtil;
- @Autowired
private TimezoneUtil timezoneUtil;
- @Autowired
- private AppointmentDao appointmentDaoImpl;
/**
* Sending invitation within plain mail
@@ -112,285 +99,176 @@ public class InvitationManager {
* @return
*/
// ---------------------------------------------------------------------------------------------------------
- public Invitations addInvitationLink(Long user_level, String username,
- String message, String baseurl, String email, String subject,
- Long rooms_id, String conferencedomain,
- Boolean isPasswordProtected, String invitationpass, Integer valid,
- Date validFrom, Date validTo, Long createdBy, String baseUrl,
- Long language_id, Boolean sendMail, Date gmtTimeStart,
- Date gmtTimeEnd, Long appointmentId, String fromUserField, TimeZone timeZone) {
- try {
- if (authLevelUtil.checkUserLevel(user_level)) {
-
- Invitations invitation = new Invitations();
- invitation.setIsPasswordProtected(isPasswordProtected);
- if (isPasswordProtected) {
- invitation.setInvitationpass(manageCryptStyle
- .getInstanceOfCrypt().createPassPhrase(
- invitationpass));
- }
-
- invitation.setInvitationWasUsed(false);
- log.debug(baseUrl);
- invitation.setBaseUrl(baseUrl);
- invitation.setTimeZoneId(timeZone.getID());
-
- // valid period of Invitation
- if (valid == 1) {
- // endless
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(false);
- } else if (valid == 2) {
- // period
- invitation.setIsValidByTime(true);
- invitation.setCanBeUsedOnlyOneTime(false);
-
- Date gmtTimeStartShifted = new Date(gmtTimeStart.getTime()
- - (5 * 60 * 1000));
-
- invitation.setValidFrom(gmtTimeStartShifted);
- invitation.setValidTo(gmtTimeEnd);
-
- // invitation.setValidFrom(validFrom);
- // invitation.setValidTo(validTo);
- } else {
- // one-time
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(true);
- invitation.setInvitationWasUsed(false);
- }
-
- invitation.setDeleted(false);
-
- User us = usersDao.get(createdBy);
- String hashRaw = "HASH" + (System.currentTimeMillis());
+ public Invitation getInvitation(User inveetee, Room room
+ , boolean isPasswordProtected, String invitationpass, Valid valid,
+ User createdBy, String baseUrl, Long language_id, Date gmtTimeStart, Date gmtTimeEnd
+ , Appointment appointment)
+ {
+ Invitation i = getInvitation(null, inveetee, room, isPasswordProtected, invitationpass, valid, createdBy
+ , baseUrl, language_id, gmtTimeStart, gmtTimeEnd, appointment);
+ i = invitationDao.update(i);
+ return i;
+ }
+
+ public Invitation getInvitation(Invitation _invitation, User inveetee, Room room
+ , boolean isPasswordProtected, String invitationpass, Valid valid,
+ User createdBy, String baseUrl, Long language_id, Date gmtTimeStart, Date gmtTimeEnd
+ , Appointment appointment) {
+
+ Invitation invitation = _invitation;
+ if (null == _invitation) {
+ invitation = new Invitation();
+ String hashRaw = "HASH" + (System.currentTimeMillis());
+ try {
invitation.setHash(MD5.do_checksum(hashRaw));
-
- invitation.setInvitedBy(us);
- invitation.setInvitedname(username);
- invitation.setInvitedEMail(email);
- invitation.setRoom(roomDao.get(rooms_id));
- invitation.setConferencedomain(conferencedomain);
- invitation.setStarttime(new Date());
- invitation.setAppointmentId(appointmentId);
-
- invitation = invitationDao.updateInvitation(invitation);
- long invitationId = invitation.getInvitations_id();
-
- invitation.setInvitations_id(invitationId);
-
- if (invitationId > 0) {
-
- if (sendMail) {
- this.sendInvitionLink(us.getAdresses().getEmail(),
- username, message, baseurl,
- email, subject, invitation.getHash(),
- validFrom, validTo, language_id, fromUserField);
- }
-
- return invitation;
- }
-
+ } catch (NoSuchAlgorithmException e) {
+ log.error("Unexpected error while creating invitation", e);
+ throw new RuntimeException(e);
}
- } catch (Exception err) {
- log.error("addInvitationLink", err);
}
- return null;
- }
+ invitation.setPasswordProtected(isPasswordProtected);
+ if (isPasswordProtected) {
+ invitation.setPassword(manageCryptStyle
+ .getInstanceOfCrypt().createPassPhrase(
+ invitationpass));
+ }
- /**
- * @author vasya
- *
- * @param meetingMember
- * @param appointment
- * @param message
- * @param baseurl
- * @param subject
- * @param conferencedomain
- * @param valid
- * @param createdBy
- * @return
- */
- // ---------------------------------------------------------------------------------------------------------
- public Invitations addInvitationLink(MeetingMember meetingMember,
- Appointment appointment,
- String message, String baseUrl, String subject,
- String conferencedomain,
- Integer valid,
- User createdBy) {
- try {
- Invitations invitation = new Invitations();
- invitation.setIsPasswordProtected(appointment.isPasswordProtected());
- if (appointment.isPasswordProtected()) {
- invitation.setInvitationpass(manageCryptStyle
- .getInstanceOfCrypt().createPassPhrase(
- appointment.getPassword()));
- }
-
- invitation.setInvitationWasUsed(false);
- log.debug(baseUrl);
+ invitation.setUsed(false);
+ log.debug(baseUrl);
+ if (baseUrl != null) {
invitation.setBaseUrl(baseUrl);
- invitation.setTimeZoneId(timezoneUtil.getTimezoneByUser(createdBy).getID());
-
- // valid period of Invitation
- if (valid == 1) {
- // endless
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(false);
- } else if (valid == 2) {
- // period
- invitation.setIsValidByTime(true);
- invitation.setCanBeUsedOnlyOneTime(false);
-
- Date gmtTimeStartShifted = new Date(appointment.getStart().getTime()
- - (5 * 60 * 1000));
-
- invitation.setValidFrom(gmtTimeStartShifted);
- invitation.setValidTo(appointment.end());
-
- } else {
- // one-time
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(true);
- invitation.setInvitationWasUsed(false);
- }
-
- invitation.setDeleted(false);
-
- String hashRaw = "HASH" + (System.currentTimeMillis());
- invitation.setHash(MD5.do_checksum(hashRaw));
-
- invitation.setInvitedBy(createdBy);
- String userName = meetingMember.getUser().getFirstname() + " " + meetingMember.getUser().getLastname();
- invitation.setInvitedname(userName);
- invitation.setInvitedEMail(meetingMember.getUser().getAdresses().getEmail());
- invitation.setRoom(appointment.getRoom());
- invitation.setConferencedomain(conferencedomain);
- invitation.setStarttime(new Date());
- invitation.setAppointmentId(appointment.getId());
-
- invitation = invitationDao.updateInvitation(invitation);
- long invitationId = invitation.getInvitations_id();
-
- invitation.setInvitations_id(invitationId);
-
- if (invitationId > 0) {
-
- this.sendInvitionLink(createdBy,
- meetingMember,
- appointment,
- message,
- baseUrl,
- subject,
- invitation.getHash());
-
- return invitation;
- }
- } catch (Exception err) {
- log.error("addInvitationLink", err);
}
- return null;
+ invitation.setValid(valid);
+
+ // valid period of Invitation
+ switch (valid) {
+ case Period:
+ invitation.setValidFrom(new Date(gmtTimeStart.getTime() - (5 * 60 * 1000)));
+ invitation.setValidTo(gmtTimeEnd);
+ break;
+ case Endless:
+ case OneTime:
+ default:
+ break;
+ }
+
+ invitation.setDeleted(false);
+
+ invitation.setInvitedBy(createdBy);
+ invitation.setInvitee(inveetee);
+ if (language_id != null && Type.contact == invitation.getInvitee().getType()) {
+ invitation.getInvitee().setLanguage_id(language_id);
+ }
+ invitation.setRoom(room);
+ invitation.setInserted(new Date());
+ invitation.setAppointment(appointment);
+
+ return invitation;
}
- // ----------------------------------------------------------------------------------------------------------------
-
/**
- * @author becherer
- * @param ment
+ * @author vasya
+ *
* @param member
+ * @param a
*/
- // -----------------------------------------------------------------------------------------------
- public void cancelInvitation(Appointment appointment, MeetingMember member,
- Long canceling_user_id, Long language_id) throws Exception {
-
- log.debug("cancelInvitation");
-
- User user;
-
- try {
- user = userManager.getUserById(canceling_user_id);
- } catch (Exception e) {
- log.error("cancelInvitation Cancelling user cant be retrieved");
+ public void processInvitation(Appointment a, MeetingMember member, MessageType type, String baseUrl) {
+ processInvitation(a, member, type, baseUrl, true);
+ }
+
+ public void processInvitation(Appointment a, MeetingMember mm, MessageType type, String baseUrl, boolean sendMail) {
+ if (a.getRemind() == null) {
+ log.error("Appointment doesn't have reminder set!");
return;
}
-
- if (appointment.getRemind() == null) {
- log.error("Appointment " + appointment.getTitle()
- + " has no ReminderType!");
+ long remindType = a.getRemind().getTypId();
+ if (remindType < 2) {
+ log.error("MeetingMember should not have invitation!");
return;
}
- User us = member.getUser();
- TimeZone timezone = null;
- // external users have no user object stored so we will need to get the
- // timezone from the stored string
- if (us != null) {
- timezone = timezoneUtil.getTimezoneByUser(us);
- } else {
- timezone = timezoneUtil.getTimeZone(member.getTimeZoneId());
- }
+ log.debug(":::: processInvitation ..... " + remindType);
+
+ // appointment.getRemind().getTypId() == 1 will not receive emails
+ if (remindType > 1) {
+ log.debug("Invitation for Appointment : simple email");
- String subject = formatCancelSubject(language_id, appointment, user,
- timezone);
- String message = formatCancelMessage(language_id, appointment, user,
- timezone);
-
- // checking reminderType
- if (appointment.getRemind().getTypId() == 1) {
- log.debug("no remindertype defined -> no cancel of invitation");
- } else if (appointment.getRemind().getTypId() == 2) {
- log.debug("ReminderType simple mail -> sending simple mail...");
- sendInvitationCancelMail(member.getUser().getAdresses().getEmail(),
- member.getAppointment(), user.getAdresses().getEmail(),
- subject, message);
- } else if (appointment.getRemind().getTypId() == 3) {
try {
- sendInvitationIcalCancelMail(member.getUser().getAdresses().getEmail(),
- member.getUser().getFirstname() + " " + member.getUser().getLastname(),
- appointment, canceling_user_id, (appointment.getOwner().getUser_id() == member.getUser().getUser_id()),
- appointment.getStart(),
- appointment.end(), timezone, subject,
- message);
+ User createdBy = a.getOwner();
+ Invitation invitation = null;
+ /* TODO check delete cascade
+ if (MessageType.Cancel == type) {
+ if (member.getInvitation() != null) {
+ member.getInvitation().setDeleted(true);
+ invitationDao.updateInvitation(member.getInvitation());
+ }
+ } else */
+ if (MessageType.Cancel != type) {
+ invitation = getInvitation(mm.getInvitation()
+ , mm.getUser(), a.getRoom(), a.isPasswordProtected(), a.getPassword()
+ , Valid.Period, createdBy, baseUrl, null, a.getStart(), a.getEnd(), a);
+ }
+ mm.setInvitation(invitation);
+ if (sendMail) {
+ sendInvitionLink(a, mm, type, remindType > 2);
+ }
} catch (Exception e) {
- log.error("Error sending IcalCancelMail for User "
- + member.getUser().getAdresses().getEmail() + " : " + e.getMessage());
+ log.error("Unexpected error while setting invitation", e);
}
}
+ }
+
+ private String formatSubject(Long language_id, Appointment point, TimeZone timezone) {
+ String message = fieldManager.getString(1151L, language_id) + " " + point.getTitle();
- // Deleting invitation, if exists
- Invitations inv = member.getInvitation();
+ message += " "
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(point.getStart(), timezone);
- if (inv != null) {
- inv.setDeleted(true);
- //updateInvitation(inv);
- invitationDao.updateInvitation(inv);
+ message += " - "
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(point.getEnd(), timezone);
+
+ return message;
+ }
+
+ private String formatMessage(Long language_id, Appointment point, TimeZone timezone, String invitorName) {
+ String message = fieldManager.getString(1151L, language_id) + " " + point.getTitle();
+
+ if (point.getDescription() != null && point.getDescription().length() != 0) {
+ message += fieldManager.getString(1152L, language_id) + point.getDescription();
}
+ message += "<br/>"
+ + fieldManager.getString(1153L, language_id)
+ + ' '
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(point.getStart(), timezone)
+ + "<br/>";
+
+ message += fieldManager.getString(1154L, language_id)
+ + ' '
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(point.getEnd(), timezone) + "<br/>";
+
+ message += fieldManager.getString(1156L, language_id) + invitorName + "<br/>";
+
+ return message;
}
- private String formatCancelSubject(Long language_id,
- Appointment appointment, User user, TimeZone timezone) {
- try {
- String message = fieldManager.getString(1157L, language_id)
- + appointment.getTitle();
+ private String formatCancelSubject(Long language_id, Appointment appointment, TimeZone timezone) {
+ String message = fieldManager.getString(1157L, language_id)
+ + appointment.getTitle();
- message += " "
- + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
- appointment.getStart(), timezone)
- + " - "
- + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
- appointment.end(), timezone);
+ message += " "
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
+ appointment.getStart(), timezone)
+ + " - "
+ + CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
+ appointment.getEnd(), timezone);
- return message;
- } catch (Exception err) {
- log.error("Could not format cancel message");
- return "Error formatCancelMessage";
- }
+ return message;
}
private String formatCancelMessage(Long language_id,
- Appointment appointment, User user, TimeZone timezone) {
+ Appointment appointment, TimeZone timezone, String invitorName) {
try {
String message = fieldManager.getString(1157L, language_id)
+ appointment.getTitle();
@@ -420,12 +298,9 @@ public class InvitationManager {
message += labelid1154.getValue()
+ ' '
+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
- appointment.end(), timezone)
+ appointment.getEnd(), timezone)
+ "<br/>";
- String invitorName = user.getFirstname() + " " + user.getLastname()
- + " [" + user.getAdresses().getEmail() + "]";
-
Fieldlanguagesvalues labelid1156 = fieldManager
.getFieldByIdAndLanguage(new Long(1156), language_id);
message += labelid1156.getValue() + invitorName + "<br/>";
@@ -437,75 +312,7 @@ public class InvitationManager {
}
}
- // -----------------------------------------------------------------------------------------------
-
- /**
- * @author becherer, seba.wagner
- * @param ment
- * @param member
- */
- // -----------------------------------------------------------------------------------------------
- public void updateInvitation(Appointment appointment, MeetingMember member,
- Long canceling_user_id, Long language_id, String invitorName, boolean sendMail) {
-
- log.debug("updateInvitation");
-
- User user = userManager.getUserById(canceling_user_id);
- if (user == null) {
- log.error("Cancelling user cant be retrieved");
- return;
- }
-
- if (appointment.getRemind() == null) {
- log.error("Appointment " + appointment.getTitle()
- + " has no ReminderType!");
- return;
- }
-
- log.debug("Remindertype : " + appointment.getRemind().getTypId());
-
- User us = member.getUser();
- TimeZone timezone = null;
- // external users have no user object stored so we will need to get the
- // timezone from the stored string
- if (us != null) {
- timezone = timezoneUtil.getTimezoneByUser(us);
- } else {
- timezone = timezoneUtil.getTimeZone(member.getTimeZoneId());
- }
-
- // Get text messages
- String subject = formatUpdateSubject(language_id, appointment, user,
- timezone);
-
- String message = formatUpdateMessage(language_id, appointment, user,
- timezone, invitorName);
-
- // checking reminderType and send emails, reminder type 1 receives
- // nothing
- if (sendMail) {
- if (appointment.getRemind().getTypId() == 2) {
- sendInvitationUpdateMail(member.getUser().getAdresses().getEmail(), appointment, user
- .getAdresses().getEmail(), subject, message);
- } else if (appointment.getRemind().getTypId() == 3) {
- try {
- sendInvitationIcalUpdateMail(member.getUser().getAdresses().getEmail(),
- member.getUser().getFirstname() + " " + member.getUser().getLastname(),
- appointment, canceling_user_id, (appointment.getOwner().getUser_id() == member.getUser().getUser_id()),
- language_id, appointment.getStart(),
- appointment.end(), timezone, subject,
- message);
- } catch (Exception e) {
- log.error("Error sending IcalUpdateMail for User "
- + member.getUser().getAdresses().getEmail() + " : " + e.getMessage());
- }
- }
- }
-
- }
-
- private String formatUpdateSubject(Long language_id,
- Appointment appointment, User user, TimeZone timezone) {
+ private String formatUpdateSubject(Long language_id, Appointment appointment, TimeZone timezone) {
try {
String message = fieldManager.getString(1155L, language_id) + " "
@@ -525,7 +332,7 @@ public class InvitationManager {
appointment.getStart(), timezone)
+ " - "
+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
- appointment.end(), timezone);
+ appointment.getEnd(), timezone);
return message;
@@ -536,7 +343,7 @@ public class InvitationManager {
}
private String formatUpdateMessage(Long language_id,
- Appointment appointment, User user, TimeZone timezone,
+ Appointment appointment, TimeZone timezone,
String invitorName) {
try {
@@ -567,7 +374,7 @@ public class InvitationManager {
message += labelid1154.getValue()
+ ' '
+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(
- appointment.end(), timezone)
+ appointment.getEnd(), timezone)
+ "<br/>";
Fieldlanguagesvalues labelid1156 = fieldManager
@@ -582,268 +389,93 @@ public class InvitationManager {
}
}
- // -----------------------------------------------------------------------------------------------
-
- /**
- * @author o.becherer
- * @param user_level
- * @param username
- * @param message
- * @param baseurl
- * @param email
- * @param subject
- * @param rooms_id
- * @param conferencedomain
- * @param isPasswordProtected
- * @param invitationpass
- * @param valid
- * @param validFrom
- * @param validTo
- * @param createdBy
- * @return
- */
- // ---------------------------------------------------------------------------------------------------------
- public Long addInvitationIcalLink(Long user_level, String username,
- String message, String baseurl, String email, String subject,
- Long rooms_id, String conferencedomain,
- Boolean isPasswordProtected, String invitationpass, Integer valid,
- Date validFrom, Date validTo, Long createdBy, Long appointMentId,
- Boolean invitor, Long language_id, TimeZone timezone,
- Long appointmentId, String fromUserField) {
- log.debug("addInvitationIcalLink");
-
- try {
- if (authLevelUtil.checkUserLevel(user_level)) {
-
- Invitations invitation = new Invitations();
- invitation.setIsPasswordProtected(isPasswordProtected);
- if (isPasswordProtected) {
- invitation.setInvitationpass(manageCryptStyle
- .getInstanceOfCrypt().createPassPhrase(
- invitationpass));
- }
-
- invitation.setInvitationWasUsed(false);
-
- // valid period of Invitation
- if (valid == 1) {
- // endless
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(false);
- } else if (valid == 2) {
- // period
- invitation.setIsValidByTime(true);
- invitation.setCanBeUsedOnlyOneTime(false);
- invitation.setValidFrom(validFrom);
- invitation.setValidTo(validTo);
- } else {
- // one-time
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(true);
- invitation.setInvitationWasUsed(false);
- }
-
- invitation.setDeleted(false);
-
- User us = usersDao.get(createdBy);
- String hashRaw = "InvitationHash"
- + (System.currentTimeMillis());
- log.debug("addInvitationIcalLink : rawHash = " + hashRaw);
- invitation.setHash(MD5.do_checksum(hashRaw));
-
- invitation.setInvitedBy(us);
- invitation.setBaseUrl(baseurl);
- invitation.setInvitedname(username);
- invitation.setInvitedEMail(email);
- invitation.setRoom(roomDao.get(rooms_id));
- invitation.setConferencedomain(conferencedomain);
- invitation.setStarttime(new Date());
- invitation.setAppointmentId(appointmentId);
-
- invitation = invitationDao.updateInvitation(invitation);
- long invitationId = invitation.getInvitations_id();
-
- if (invitationId > 0) {
- this.sendInvitionIcalLink(username, message, baseurl,
- email, subject, invitation.getHash(),
- appointMentId, us, invitor, language_id,
- validFrom, validTo, timezone, fromUserField);
- return invitationId;
- }
- }
- } catch (Exception err) {
- log.error("addInvitationIcalLink", err);
- }
- return null;
- }
-
- // -----------------------------------------------------------------------------------------------
-
/**
* @author vasya
- * @param meetingMember
- * @param appointment
- * @param message
- * @param baseurl
- * @param subject
- * @param conferencedomain
- * @param valid
- * @param createdBy
- * @return
- */
- // ---------------------------------------------------------------------------------------------------------
- public Long addInvitationIcalLink(MeetingMember meetingMember, Appointment appointment,
- String message, String baseurl, String subject,
- String conferencedomain, Integer valid, User createdBy) {
- log.debug("addInvitationIcalLink");
-
- try {
- Invitations invitation = new Invitations();
- invitation.setIsPasswordProtected(appointment.isPasswordProtected());
- if (appointment.isPasswordProtected()) {
- invitation.setInvitationpass(manageCryptStyle
- .getInstanceOfCrypt().createPassPhrase(
- appointment.getPassword()));
- }
-
- String username = meetingMember.getUser().getFirstname() + " " + meetingMember.getUser().getLastname();
- invitation.setInvitationWasUsed(false);
-
- // valid period of Invitation
- if (valid == 1) {
- // endless
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(false);
- } else if (valid == 2) {
- // period
- invitation.setIsValidByTime(true);
- invitation.setCanBeUsedOnlyOneTime(false);
- invitation.setValidFrom(appointment.getStart());
- invitation.setValidTo(appointment.end());
- } else {
- // one-time
- invitation.setIsValidByTime(false);
- invitation.setCanBeUsedOnlyOneTime(true);
- invitation.setInvitationWasUsed(false);
- }
-
- invitation.setDeleted(false);
-
- if (meetingMember.getUser().getType() == Type.contact) {
- String hashRaw = "InvitationHash"
- + (System.currentTimeMillis());
- log.debug("addInvitationIcalLink : rawHash = " + hashRaw);
- invitation.setHash(MD5.do_checksum(hashRaw));
- } else {
- invitation.setHash("");
- }
-
- invitation.setInvitedBy(createdBy);
- invitation.setBaseUrl(baseurl);
- invitation.setInvitedname(username);
- invitation.setInvitedEMail(meetingMember.getUser().getAdresses().getEmail());
- invitation.setRoom(appointment.getRoom());
- invitation.setConferencedomain(conferencedomain);
- invitation.setStarttime(new Date());
- invitation.setAppointmentId(appointment.getId());
-
- invitation = invitationDao.updateInvitation(invitation);
- long invitationId = invitation.getInvitations_id();
-
- if (invitationId > 0) {
- this.sendInvitionIcalLink(username, message, baseurl,
- meetingMember.getUser().getAdresses().getEmail(), subject, invitation.getHash(),
- appointment.getId(), createdBy, (appointment.getOwner().getUser_id() == meetingMember.getUser().getUser_id())
- , meetingMember.getUser().getLanguage_id(),
- appointment.getStart(), appointment.end(),
- timezoneUtil.getTimezoneByUser(createdBy), createdBy.getFirstname() + " " + createdBy.getLastname());
- return invitationId;
- }
- } catch (Exception err) {
- log.error("addInvitationIcalLink", err);
- }
- return null;
- }
-
- // ---------------------------------------------------------------------------------------------------------
- public String sendInvitionLink(User us, Invitations inv, String message, String baseurl, String subject, Long language_id) {
- return sendInvitionLink(us != null ? us.getAdresses().getEmail() : inv.getInvitedEMail()
- , inv.getInvitedname()
- , message, baseurl, inv.getInvitedEMail(), subject, inv.getHash()
- , inv.getValidFrom(), inv.getValidTo(), language_id, us.getFirstname() + " " + us.getLastname());
- }
-
- /**
- * @param username
+ *
+ * @param mm
+ * @param a
* @param message
* @param baseurl
- * @param email
- * @param replyTo
* @param subject
- * @param invitationsHash
- * @param dStart
- * @param dEnd
- * @param language_id If it is >0 then "&language=" is added to the link
+ * @throws Exception
*/
- private String sendInvitionLink(String replyTo, String username, String message,
- String baseurl, String email, String subject,
- String invitationsHash, Date dStart, Date dEnd, Long language_id, String fromUserField) {
- try {
-
- String invitation_link = baseurl + "?invitationHash="
- + invitationsHash;
+ private void sendInvitionLink(Appointment a, MeetingMember mm, MessageType type, boolean ical) throws Exception {
+
+ User owner = a.getOwner();
+ String invitorName = owner.getFirstname() + " " + owner.getLastname();
+ Long langId = mm.getUser().getLanguage_id();
+ TimeZone tz = timezoneUtil.getTimeZone(mm.getUser());
+ String subject = null;
+ String message = null;
+ switch (type) {
+ case Cancel:
+ subject = formatCancelSubject(langId, a, tz);
+ message = formatCancelMessage(langId, a, tz, invitorName);
+ break;
+ case Create:
+ subject = formatSubject(langId, a, tz);
+ message = formatMessage(langId, a, tz, invitorName);
+ break;
+ case Update:
+ default:
+ subject = formatUpdateSubject(langId, a, tz);
+ message = formatUpdateMessage(langId, a, tz, invitorName);
+ break;
+
+ }
+ sendInvitionLink(mm.getInvitation(), type, subject, message, ical);
+ }
+
+ public void sendInvitionLink(Invitation i, MessageType type, String subject, String message, boolean ical) throws Exception {
+ String invitation_link = i.getBaseUrl();
+ if (i.getInvitee().getType() == Type.contact) {
+ invitation_link += "?invitationHash=" + i.getHash();
- if (language_id > 0) {
- invitation_link += "&language=" + language_id.toString();
+ if (i.getInvitee().getLanguage_id() > 0) {
+ invitation_link += "&language=" + i.getInvitee().getLanguage_id().toString();
}
+ } else {
+ invitation_link = getRoomUrlFragment(i.getRoom().getRooms_id()).getLink(i.getBaseUrl());
+ }
+ User owner = i.getInvitedBy();
+
+ String invitorName = owner.getFirstname() + " " + owner.getLastname();
+ String template = InvitationTemplate.getEmail(invitorName, message, invitation_link);
+ String email = i.getInvitee().getAdresses().getEmail();
+ String replyToEmail = owner.getAdresses().getEmail();
+
+ if (ical) {
+ String username = i.getInvitee().getLogin();
+ boolean isOwner = owner.getUser_id() == i.getInvitee().getUser_id();
+ IcalHandler handler = new IcalHandler(MessageType.Cancel == type ? IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST);
- String template = InvitationTemplate.getEmail(fromUserField, message, invitation_link);
+ HashMap<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
- mailHandler.send(email, replyTo, subject, template);
- return "success";
- } catch (Exception err) {
- log.error("sendInvitationLink", err);
- }
- return null;
- }
+ Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+ atts.add(attendeeList);
+ // Defining Organizer
- /**
- * @author vasya
- *
- * @param invitor
- * @param meetingMember
- * @param appointment
- * @param message
- * @param baseurl
- * @param subject
- * @param invitationsHash
- */
- private String sendInvitionLink(User invitor, MeetingMember meetingMember,
- Appointment appointment,
- String message,
- String baseurl, String subject,
- String invitationsHash) {
- try {
+ HashMap<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
+ organizerAttendee = handler.getAttendeeData(replyToEmail, owner.getLogin(), isOwner);
- String invitation_link = baseurl;
- if (meetingMember.getUser().getType() == Type.contact) {
- invitation_link += "?invitationHash="
- + invitationsHash;
-
- if (invitor.getLanguage_id() > 0) {
- invitation_link += "&language=" + invitor.getLanguage_id().toString();
- }
- }
+ Appointment a = i.getAppointment();
+ // Create ICal Message
+ //FIXME should be checked to generate valid time
+ String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(),
+ a.getTitle(), atts, invitation_link,
+ organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner));
- String template = InvitationTemplate.getEmail(invitor.getFirstname() + " " + invitor.getLastname(), message, invitation_link);
+ // Writing back meetingUid
+ if (a.getIcalId() == null || a.getIcalId().length() < 1) {
+ a.setIcalId(meetingId);
+ }
- mailHandler.send(meetingMember.getUser().getAdresses().getEmail(), invitor.getAdresses().getEmail(), subject, template);
- return "success";
- } catch (Exception err) {
- log.error("sendInvitationLink", err);
+ log.debug(handler.getICalDataAsString());
+ mailHandler.send(new MailMessage(email, replyToEmail, subject, template, handler.getIcalAsByteArray()));
+ } else {
+ mailHandler.send(email, replyToEmail, subject, template);
}
- return null;
}
/**
@@ -898,266 +530,6 @@ public class InvitationManager {
return false;
}
- // ----------------------------------------------------------------------------------------------------
-
- /**
- *
- * @param email
- * @param point
- * @param cancelling_person
- * @return
- */
- // --------------------------------------------------------------------------------------------------------------
- private String sendInvitationCancelMail(String email, Appointment point,
- String cancelling_person, String subject, String message) {
- log.debug("sendInvitationCancelmail");
- try {
- mailHandler.send(email, subject, message);
- return "success";
- } catch (Exception e) {
- log.error("sendInvitationCancelmail : " + e.getMessage());
- }
-
- return null;
- }
-
- // --------------------------------------------------------------------------------------------------------------
-
- /**
- *
- * @param email
- * @param point
- * @param replyTo
- * @param subject
- * @param mesage
- * @return
- */
- // --------------------------------------------------------------------------------------------------------------
- private String sendInvitationUpdateMail(String email, Appointment point,
- String replyTo, String subject, String message) {
- log.debug("sendInvitationUpdateMail");
- try {
- mailHandler.send(email, replyTo, subject, message);
- return "success";
- } catch (Exception e) {
- log.error("sendInvitationUpdateMail : " + e.getMessage());
- }
-
- return null;
- }
-
- // --------------------------------------------------------------------------------------------------------------
-
- /**
- *
- * @param email
- * @param point
- * @param cancelling_person
- * @return
- */
- // --------------------------------------------------------------------------------------------------------------
- private String sendInvitationIcalCancelMail(String email, String userName,
- Appointment point, Long organizer_userId, Boolean invitor,
- Date startdate, Date enddate, TimeZone timezone, String subject,
- String message) throws Exception {
- log.debug("sendInvitationIcalCancelMail");
-
- // Defining Organizer
- User user = userManager.getUserById(organizer_userId);
-
- // TODO: Check time zone handling in iCal Mail
- IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_CANCEL);
-
- // refresh appointment
- point = appointmentLogic.getAppointMentById(point.getId());
-
- // Transforming Meeting Members
-
- HashMap<String, String> attendeeInDerHashMap = handler.getAttendeeData(
- email, userName, invitor);
-
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
- atts.add(attendeeInDerHashMap);
-
- HashMap<String, String> organizer = handler.getAttendeeData(user
- .getAdresses().getEmail(), user.getLogin(), invitor);
-
- handler.addNewMeeting(startdate, enddate,
- point.getTitle(), atts,
- subject, organizer, point.getIcalId(), timezone);
-
- log.debug(handler.getICalDataAsString());
-
- mailHandler.send(new MailMessage(email, user.getAdresses().getEmail(), subject, message, handler.getIcalAsByteArray()));
-
- return null;
- }
-
- // --------------------------------------------------------------------------------------------------------------
-
- /**
- *
- * @param email
- * @param point
- * @param cancelling_person
- * @return
- */
- // --------------------------------------------------------------------------------------------------------------
- private String sendInvitationIcalUpdateMail(String email, String userName,
- Appointment point, Long organizer_userId, Boolean invitor,
- Long language_id, Date starttime, Date endtime, TimeZone timeZone,
- String subject, String message) throws Exception {
- log.debug("sendInvitationIcalUpdateMail");
-
- // Defining Organizer
- User user = userManager.getUserById(organizer_userId);
-
- IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_REQUEST);
-
- // refresh appointment
- point = appointmentLogic.getAppointMentById(point.getId());
-
- // Transforming Meeting Members
-
- HashMap<String, String> attendeeInDerHashMap = handler.getAttendeeData(
- email, userName, invitor);
-
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
- atts.add(attendeeInDerHashMap);
-
- HashMap<String, String> organizer = handler.getAttendeeData(user
- .getAdresses().getEmail(), user.getLogin(), invitor);
-
- handler.addNewMeeting(starttime, endtime, point.getTitle(), atts,
- subject, organizer, point.getIcalId(), timeZone);
-
- log.debug(handler.getICalDataAsString());
-
- mailHandler.send(new MailMessage(email, user.getAdresses().getEmail(), subject, message, handler.getIcalAsByteArray()));
-
- return null;
- }
-
- // --------------------------------------------------------------------------------------------------------------
-
- /**
- *
- * @param username
- * @param message
- * @param baseurl
- * @param email
- * @param subject
- * @param invitationsHash
- * @param appointMentId
- * @param organizer_userId
- * @param invitor
- * @param language_id If it is >0 then "&language=" is added to the link
- * @param starttime
- * @param endtime
- * @param timezone
- * @return
- */
- public String sendInvitionIcalLink(String username, String message,
- String baseurl, String email, String subject,
- String invitationsHash, Long appointMentId, User organizer,
- Boolean invitor, Long language_id, Date starttime, Date endtime,
- TimeZone timezone, String fromUserField) {
- try {
-
- String invitation_link = baseurl;
- if (invitationsHash.length() > 0) {
- invitation_link += "?invitationHash="
- + invitationsHash;
-
- if (language_id > 0) {
- invitation_link += "&language=" + language_id.toString();
- }
- }
-
- String template = InvitationTemplate.getEmail(fromUserField, message, invitation_link);
-
- IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_REQUEST);
-
- Appointment point = appointmentLogic.getAppointMentById(appointMentId);
-
- // Transforming Meeting Members
-
- HashMap<String, String> attendeeList = handler.getAttendeeData(email, username, invitor);
-
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
- atts.add(attendeeList);
-
- // Defining Organizer
-
- HashMap<String, String> organizerAttendee = handler
- .getAttendeeData(email, username, invitor);
- String replyToEmail = null;
- if (organizer != null) {
- replyToEmail = organizer.getAdresses().getEmail();
- organizerAttendee = handler.getAttendeeData(replyToEmail, organizer.getLogin(), invitor);
- }
-
- // Create ICal Message
- String meetingId = handler.addNewMeeting(starttime, endtime,
- point.getTitle(), atts, invitation_link,
- organizerAttendee, point.getIcalId(), timezone);
-
- // Writing back meetingUid
- if (point.getIcalId() == null || point.getIcalId().length() < 1) {
- point.setIcalId(meetingId);
-
- appointmentDaoImpl.updateAppointment(point);
- }
-
- log.debug(handler.getICalDataAsString());
-
- mailHandler.send(new MailMessage(email, replyToEmail, subject, template, handler.getIcalAsByteArray()));
-
- return "success";
- } catch (Exception err) {
- log.error("sendInvitionIcalLink", err);
- }
- return null;
- }
-
- /**
- *
- * @param user_level
- * @param username
- * @param message
- * @param domain
- * @param room
- * @param roomtype
- * @param baseurl
- * @param email
- * @param subject
- * @param room_id
- * @return
- */
- public String sendInvitionLink(Long user_level, String username,
- String message, String domain, String room, String roomtype,
- String baseurl, String email, String replyTo, String subject, Long room_id,
- Date starttime, Date endtime) {
- try {
- if (authLevelUtil.checkUserLevel(user_level)) {
-
- String invitation_link = baseurl
- + "?lzproxied=solo&lzr=swf8&lzt=swf&domain=" + domain
- + "&room=" + room + "&roomtype=" + roomtype + "&email="
- + email + "&roomid=" + room_id;
-
- String template = InvitationTemplate.getEmail(username, message, invitation_link);
-
- mailHandler.send(email, replyTo, subject, template);
- return "success";
- }
- } catch (Exception err) {
- log.error("sendInvitationLink", err);
- }
- return null;
- }
-
-
/**
*
* @param hashCode
@@ -1166,68 +538,65 @@ public class InvitationManager {
*/
public Object getInvitationByHashCode(String hashCode, boolean hidePass) {
try {
- Invitations invitation = invitationDao.getInvitationByHashCode(hashCode, hidePass);
+ Invitation invitation = invitationDao.getInvitationByHashCode(hashCode, hidePass);
if (invitation == null) {
// already deleted or does not exist
return new Long(-31);
} else {
- if (invitation.getCanBeUsedOnlyOneTime()) {
-
- // do this only if the user tries to get the Invitation, not
- // while checking the PWD
- if (hidePass) {
- // one-time invitation
- if (invitation.getInvitationWasUsed()) {
- // Invitation is of type *only-one-time* and was
- // already used
- return new Long(-32);
+ switch (invitation.getValid()) {
+ case OneTime:
+ // do this only if the user tries to get the Invitation, not
+ // while checking the PWD
+ if (hidePass) {
+ // one-time invitation
+ if (invitation.isUsed()) {
+ // Invitation is of type *only-one-time* and was
+ // already used
+ return new Long(-32);
+ } else {
+ // set to true if this is the first time / a normal
+ // getInvitation-Query
+ invitation.setUsed(true);
+ invitationDao.update(invitation);
+ // invitation.setInvitationpass(null);
+ invitation.setAllowEntry(true);
+ }
} else {
- // set to true if this is the first time / a normal
- // getInvitation-Query
- invitation.setInvitationWasUsed(true);
- invitationDao.updateInvitation(invitation);
+ invitation.setAllowEntry(true);
+ }
+ break;
+ case Period:
+ TimeZone tz = timezoneUtil.getTimeZone(invitation.getInvitee());
+ Calendar now = Calendar.getInstance(tz);
+ Calendar start = Calendar.getInstance(tz);
+ start.setTime(invitation.getValidFrom());
+
+ Calendar end = Calendar.getInstance(tz);
+ end.setTime(invitation.getValidTo());
+ if (now.after(start) && now.before(end)) {
+ invitationDao.update(invitation);
// invitation.setInvitationpass(null);
invitation.setAllowEntry(true);
- return invitation;
+ } else {
+
+ // Invitation is of type *period* and is not valid
+ // anymore, this is an extra hook to display the time
+ // correctly
+ // in the method where it shows that the hash code does
+ // not work anymore
+ invitation.setAllowEntry(false);
}
- } else {
- invitation.setAllowEntry(true);
- return invitation;
- }
+ break;
+ case Endless:
+ default:
+ invitationDao.update(invitation);
- } else if (invitation.getIsValidByTime()) {
-
- Calendar now = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
- Calendar start = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
- start.setTime(invitation.getValidFrom());
-
- Calendar end = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
- end.setTime(invitation.getValidTo());
- if (now.after(start) && now.before(end)) {
- invitationDao.updateInvitation(invitation);
- // invitation.setInvitationpass(null);
invitation.setAllowEntry(true);
- return invitation;
- } else {
-
- // Invitation is of type *period* and is not valid
- // anymore, this is an extra hook to display the time
- // correctly
- // in the method where it shows that the hash code does
- // not work anymore
- invitation.setAllowEntry(false);
-
- return invitation;
- }
- } else {
- // Invitation is not limited, neither time nor single-usage
- invitationDao.updateInvitation(invitation);
-
- invitation.setAllowEntry(true);
- // invitation.setInvitationpass(null);
- return invitation;
+ // invitation.setInvitationpass(null);
+ break;
}
+ return invitation;
}
} catch (Exception err) {
@@ -1246,15 +615,15 @@ public class InvitationManager {
try {
Object obj = this.getInvitationByHashCode(hashCode, false);
log.debug("checkInvitationPass - obj: " + obj);
- if (obj instanceof Invitations) {
- Invitations invitation = (Invitations) obj;
+ if (obj instanceof Invitation) {
+ Invitation invitation = (Invitation) obj;
// log.debug("invitationId "+invitation.getInvitations_id());
// log.debug("pass "+pass);
// log.debug("getInvitationpass "+invitation.getInvitationpass());
if (manageCryptStyle.getInstanceOfCrypt().verifyPassword(pass,
- invitation.getInvitationpass())) {
+ invitation.getPassword())) {
return new Long(1);
} else {
return new Long(-34);
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/InvitationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/InvitationDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/InvitationDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/InvitationDao.java Thu Sep 12 01:21:26 2013
@@ -19,7 +19,6 @@
package org.apache.openmeetings.data.conference.dao;
import java.util.Date;
-import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
@@ -27,7 +26,7 @@ import javax.persistence.PersistenceCont
import javax.persistence.TypedQuery;
import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.transaction.annotation.Transactional;
@@ -41,9 +40,9 @@ public class InvitationDao {
@PersistenceContext
private EntityManager em;
- public Invitations updateInvitation(Invitations invitation) throws Exception {
- invitation.setUpdatetime(new Date());
- if (invitation.getInvitations_id() == null) {
+ public Invitation update(Invitation invitation) {
+ invitation.setUpdated(new Date());
+ if (invitation.getId() == null) {
em.persist(invitation);
return invitation;
} else {
@@ -54,10 +53,10 @@ public class InvitationDao {
return null;
}
- public Invitations getInvitationbyId(Long invId) {
+ public Invitation get(Long invId) {
try {
- TypedQuery<Invitations> query = em.createNamedQuery("getInvitationbyId", Invitations.class);
+ TypedQuery<Invitation> query = em.createNamedQuery("getInvitationbyId", Invitation.class);
query.setParameter("deleted", true);
query.setParameter("invid", invId);
@@ -72,10 +71,10 @@ public class InvitationDao {
return null;
}
- public Invitations getInvitationByHashCode(String hashCode, boolean hidePass) {
+ public Invitation getInvitationByHashCode(String hashCode, boolean hidePass) {
try {
- TypedQuery<Invitations> query = em.createNamedQuery("getInvitationByHashCode", Invitations.class);
+ TypedQuery<Invitation> query = em.createNamedQuery("getInvitationByHashCode", Invitation.class);
query.setParameter("hashCode", hashCode);
query.setParameter("deleted", false);
@@ -89,33 +88,4 @@ public class InvitationDao {
}
return null;
}
-
- public void updateInvitationByAppointment(Long appointmentId,
- Date appointmentstart, Date appointmentend) {
- try {
-
- Date gmtTimeStartShifted = new Date(appointmentstart.getTime()
- - (5 * 60 * 1000));
-
- TypedQuery<Invitations> query = em.createNamedQuery("getInvitationByAppointment", Invitations.class);
- query.setParameter("appointmentId", appointmentId);
-
- List<Invitations> listInvitations = query.getResultList();
-
- for (Invitations inv : listInvitations) {
- inv.setValidFrom(gmtTimeStartShifted);
- inv.setValidTo(appointmentend);
- if (inv.getInvitations_id() == null) {
- em.persist(inv);
- } else {
- if (!em.contains(inv)) {
- em.merge(inv);
- }
- }
- }
-
- } catch (Exception err) {
- log.error("updateInvitationByAppointment : ", err);
- }
- }
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/RoomDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/RoomDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/RoomDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/RoomDao.java Thu Sep 12 01:21:26 2013
@@ -107,7 +107,7 @@ public class RoomDao implements IDataPro
//TODO generalize with AppointmentDao
log.debug("getAppointedRoomsByUser : UserID - " + userId);
- TimeZone timeZone = timezoneUtil.getTimezoneByUser(usersDao.get(userId));
+ TimeZone timeZone = timezoneUtil.getTimeZone(usersDao.get(userId));
Calendar startCal = Calendar.getInstance(timeZone);
startCal.set(Calendar.MINUTE, 0);
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java Thu Sep 12 01:21:26 2013
@@ -1175,30 +1175,6 @@ public class UserManager {
}
- public User getUserByEmail(String userOrEmail) throws Exception {
- log.debug("Usermanagement.getUserByEmail : " + userOrEmail);
-
- String hql = "SELECT c from User AS c " + "WHERE "
- + "c.adresses.email LIKE :userOrEmail";
-
- TypedQuery<User> query = em.createQuery(hql, User.class);
- query.setParameter("userOrEmail", userOrEmail);
-
- List<User> ll = query.getResultList();
-
- if (ll.size() > 1) {
- log.error("ALERT :: There are two users in the database that have same Email ");
- return ll.get(0);
- // throw new
- // Exception("ALERT :: There are two users in the database that have either same login or Email ");
- } else if (ll.size() == 1) {
- return ll.get(0);
- } else {
- return null;
- }
-
- }
-
// -----------------------------------------------------------------------------------------------------
/**
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AbstractUserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AbstractUserDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AbstractUserDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AbstractUserDao.java Thu Sep 12 01:21:26 2013
@@ -86,7 +86,7 @@ public class AbstractUserDao {
// configurable
user.setLevel_id(1L);
user.setLanguage_id(configurationDao.getConfValue(DEFAUT_LANG_KEY, Long.class, "1"));
- user.setTimeZoneId(timezoneUtil.getTimezoneByUser(currentUser).getID());
+ user.setTimeZoneId(timezoneUtil.getTimeZone(currentUser).getID());
user.setForceTimeZoneCheck(false);
user.setSendSMS(false);
user.setAge(new Date());
@@ -107,7 +107,7 @@ public class AbstractUserDao {
return q.getResultList();
}
- private String getAdditionalWhire(boolean isAdmin){
+ private String getAdditionalWhere(boolean isAdmin){
return isAdmin ? null : "u.type <> :contact OR (u.type = :contact AND u.owner_id = :ownerId)";
}
@@ -119,7 +119,7 @@ public class AbstractUserDao {
}
public List<User> get(String search, int start, int count, String sort, boolean isAdmin) {
- TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhire(isAdmin), sort, searchFields), User.class);
+ TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhere(isAdmin), sort, searchFields), User.class);
q.setFirstResult(start);
q.setMaxResults(count);
setAdditionalParams(q, isAdmin);
@@ -133,13 +133,13 @@ public class AbstractUserDao {
}
public long count(String search, boolean isAdmin) {
- TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, true, getAdditionalWhire(isAdmin), null, searchFields), Long.class);
+ TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, true, getAdditionalWhere(isAdmin), null, searchFields), Long.class);
setAdditionalParams(q, isAdmin);
return q.getSingleResult();
}
public List<User> get(String search, boolean isAdmin) {
- TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhire(isAdmin), null, searchFields), User.class);
+ TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhere(isAdmin), null, searchFields), User.class);
if (!isAdmin) {
q.setParameter("ownerId", WebSession.getUserId());
q.setParameter("contact", Type.contact);
@@ -315,20 +315,15 @@ public class AbstractUserDao {
}
public User getUserByEmail(String email) {
+ TypedQuery<User> query = em.createNamedQuery("getUserByEmail", User.class);
+ query.setParameter("email", email);
+ query.setParameter("deleted", true);
+ User us = null;
try {
- TypedQuery<User> query = em.createNamedQuery("getUserByEmail", User.class);
- query.setParameter("email", email);
- query.setParameter("deleted", true);
- User us = null;
- try {
- us = query.getSingleResult();
- } catch (NoResultException ex) {
- }
- return us;
- } catch (Exception e) {
- log.error("[getUserByEmail] " + email, e);
+ us = query.getSingleResult();
+ } catch (NoResultException ex) {
}
- return null;
+ return us;
}
public Object getUserByHash(String hash) {
@@ -389,4 +384,32 @@ public class AbstractUserDao {
}
+ public User getContact(String email, long ownerId) {
+ return getContact(email, "", "", ownerId);
+ }
+
+ public User getContact(String email, User owner) {
+ return getContact(email, "", "", null, null, owner);
+ }
+
+ public User getContact(String email, String firstName, String lastName, long ownerId) {
+ return getContact(email, firstName, lastName, null, null, get(ownerId));
+ }
+
+ public User getContact(String email, String firstName, String lastName, Long langId, String tzId, User owner) {
+ User to = getUserByEmail(email);
+ if (to == null) {
+ to = new User();
+ to.setType(Type.contact);
+ to.setLogin(owner.getUser_id() + "_" + email); //UserId prefix is used to ensure unique login
+ to.setFirstname(firstName);
+ to.setLastname(lastName);
+ to.setLanguage_id(null == langId ? owner.getLanguage_id() : langId);
+ to.setOwnerId(owner.getUser_id());
+ to.setAdresses(new Address());
+ to.getAdresses().setEmail(email);
+ to.setTimeZoneId(null == tzId ? owner.getTimeZoneId() : tzId);
+ }
+ return to;
+ }
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AdminUserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AdminUserDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AdminUserDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AdminUserDao.java Thu Sep 12 01:21:26 2013
@@ -108,5 +108,20 @@ public class AdminUserDao implements IDa
public Object getUserByHash(String hash) {
return dao.getUserByHash(hash);
}
-
+
+ public User getContact(String email, User owner) {
+ return dao.getContact(email, owner);
+ }
+
+ public User getContact(String email, long ownerId) {
+ return dao.getContact(email, ownerId);
+ }
+
+ public User getContact(String email, String firstName, String lastName, long ownerId) {
+ return dao.getContact(email, firstName, lastName, ownerId);
+ }
+
+ public User getContact(String email, String firstName, String lastName, Long langId, String tzId, long ownerId) {
+ return dao.getContact(email, firstName, lastName, langId, tzId, dao.get(ownerId));
+ }
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/UserDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/UserDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/UserDao.java Thu Sep 12 01:21:26 2013
@@ -26,7 +26,6 @@ import org.apache.openmeetings.persisten
import org.springframework.beans.factory.annotation.Autowired;
public class UserDao implements IDataProviderDao<User> {
-
@Autowired
private AbstractUserDao dao;
@@ -65,5 +64,12 @@ public class UserDao implements IDataPro
public void delete(User entity, Long userId) {
dao.delete(entity, userId);
}
-
+
+ public User getContact(String email, long ownerId) {
+ return dao.getContact(email, ownerId);
+ }
+
+ public User getContact(String email, String firstName, String lastName, long ownerId) {
+ return dao.getContact(email, firstName, lastName, ownerId);
+ }
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/Appointment.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/Appointment.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/Appointment.java Thu Sep 12 01:21:26 2013
@@ -51,46 +51,59 @@ import org.simpleframework.xml.Root;
@NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ " WHERE a.deleted = false AND a.id = :id")
, @NamedQuery(name="appointmentsInRange",
- query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers "
- + "WHERE a.deleted = false "
- + " AND ( "
- + " (a.start BETWEEN :starttime AND :endtime) "
- + " OR (a.end BETWEEN :starttime AND :endtime) "
- + " OR (a.start < :starttime AND a.end > :endtime) "
- + " )"
- + " AND a.owner.user_id = :userId"
+ query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers "
+ + "WHERE a.deleted = false "
+ + " AND ( "
+ + " (a.start BETWEEN :starttime AND :endtime) "
+ + " OR (a.end BETWEEN :starttime AND :endtime) "
+ + " OR (a.start < :starttime AND a.end > :endtime) "
+ + " )"
+ + " AND a.owner.user_id = :userId"
)
, @NamedQuery(name="joinedAppointmentsInRange",
- query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
- + "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
- + " AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.user_id = :userId)"
- + " AND mm.connectedEvent = false " //TODO review: isConnectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
- + " AND ( "
- + " (a.start BETWEEN :starttime AND :endtime) "
- + " OR (a.end BETWEEN :starttime AND :endtime) "
- + " OR (a.start < :starttime AND a.end > :endtime) "
- + " )"
-)
+ query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
+ + "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+ + " AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.user_id = :userId)"
+ + " AND mm.connectedEvent = false " //TODO review: isConnectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
+ + " AND ( "
+ + " (a.start BETWEEN :starttime AND :endtime) "
+ + " OR (a.end BETWEEN :starttime AND :endtime) "
+ + " OR (a.start < :starttime AND a.end > :endtime) "
+ + " )"
+ )
+ , @NamedQuery(name="appointmentsInRangeRemind",
+ query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
+ //only ReminderType simple mail is concerned!
+ + "WHERE mm.deleted = false AND a.deleted = false AND a.reminderEmailSend = false"
+ + " AND (a.remind.typId = 2 OR a.remind.typId = 3) "
+ + " AND ( "
+ + " (a.start BETWEEN :starttime AND :endtime) "
+ + " OR (a.end BETWEEN :starttime AND :endtime) "
+ + " OR (a.start < :starttime AND a.end > :endtime) "
+ + " )"
+ )
+ , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ + " WHERE a.deleted = false AND a.room.rooms_id = :room_id")
//TODO this query returns duplicates if the user books an appointment with
//his own user as second meeting-member, swagner 19.02.2012
, @NamedQuery(name="appointmentsInRangeByUser",
- query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
- + "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
- + " AND ( "
- + " (a.start BETWEEN :starttime AND :endtime) "
- + " OR (a.end BETWEEN :starttime AND :endtime) "
- + " OR (a.start < :starttime AND a.end > :endtime) "
- + " )"
- )
+ query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
+ + "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+ + " AND ( "
+ + " (a.start BETWEEN :starttime AND :endtime) "
+ + " OR (a.end BETWEEN :starttime AND :endtime) "
+ + " OR (a.start < :starttime AND a.end > :endtime) "
+ + " )"
+ )
, @NamedQuery(name="appointedRoomsInRangeByUser",
- query="SELECT a.room FROM MeetingMember mm, IN(mm.appointment) a "
- + "WHERE mm.deleted <> true AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
- + " AND ( "
- + " (a.start BETWEEN :starttime AND :endtime) "
- + " OR (a.end BETWEEN :starttime AND :endtime) "
- + " OR (a.start < :starttime AND a.end > :endtime) "
- + " )"
- )
+ query="SELECT a.room FROM MeetingMember mm, IN(mm.appointment) a "
+ + "WHERE mm.deleted <> true AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+ + " AND ( "
+ + " (a.start BETWEEN :starttime AND :endtime) "
+ + " OR (a.end BETWEEN :starttime AND :endtime) "
+ + " OR (a.start < :starttime AND a.end > :endtime) "
+ + " )"
+ )
})
@Root(name="appointment")
public class Appointment implements Serializable {
@@ -246,7 +259,7 @@ public class Appointment implements Seri
this.start = start;
}
- public Date end() {
+ public Date getEnd() {
return end;
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/MeetingMember.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/MeetingMember.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/MeetingMember.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/MeetingMember.java Thu Sep 12 01:21:26 2013
@@ -30,16 +30,25 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
import org.apache.openmeetings.persistence.beans.user.User;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Entity
@Table(name = "meeting_members")
+@NamedQueries({
+ @NamedQuery(name="getMeetingMemberById"
+ , query="SELECT mm FROM MeetingMember mm WHERE mm.deleted = false AND mm.id = :id")
+ , @NamedQuery(name="getMeetingMembers", query="SELECT mm FROM MeetingMember mm")
+ , @NamedQuery(name="getMeetingMemberIdsByAppointment"
+ , query="SELECT mm.id FROM MeetingMember mm WHERE mm.deleted = false AND app.appointment.id = :id")
+})
@Root(name = "meetingmember")
public class MeetingMember implements Serializable {
private static final long serialVersionUID = -3864571325368787524L;
@@ -75,10 +84,10 @@ public class MeetingMember implements Se
@Element(data = true)
private boolean deleted;
- @ManyToOne(fetch = FetchType.EAGER)
+ @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "invitation", nullable = true, insertable = false)
@ForeignKey(enabled = true)
- private Invitations invitation;
+ private Invitation invitation;
/**
* java.util.TimeZone Id
@@ -122,11 +131,11 @@ public class MeetingMember implements Se
this.appointment = appointment;
}
- public Invitations getInvitation() {
+ public Invitation getInvitation() {
return invitation;
}
- public void setInvitation(Invitations invitation) {
+ public void setInvitation(Invitation invitation) {
this.invitation = invitation;
}
Copied: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitation.java (from r1520866, openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitations.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitation.java?p2=openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitation.java&p1=openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitations.java&r1=1520866&r2=1522099&rev=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitations.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitation.java Thu Sep 12 01:21:26 2013
@@ -21,8 +21,11 @@ package org.apache.openmeetings.persiste
import java.io.Serializable;
import java.util.Date;
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
@@ -34,6 +37,7 @@ import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.persistence.beans.calendar.Appointment;
import org.apache.openmeetings.persistence.beans.room.Room;
import org.apache.openmeetings.persistence.beans.user.User;
@@ -49,30 +53,40 @@ import org.apache.openmeetings.persisten
+ "WHERE a.appointmentId = :appointmentId ")
})
@Table(name = "invitations")
-public class Invitations implements Serializable {
+public class Invitation implements Serializable {
private static final long serialVersionUID = 1153321347974705506L;
+ public enum Valid {
+ OneTime
+ , Period
+ , Endless;
+
+ public static Valid fromInt(int valid) {
+ return valid == 1 ? Endless : (valid == 2 ? Period : OneTime);
+ }
+ }
+
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
- private Long invitations_id;
+ private Long id;
@ManyToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "invitedBy", nullable = true)
+ @JoinColumn(name = "invited_by", nullable = true)
@ForeignKey(enabled = true)
private User invitedBy;
- @Column(name = "starttime")
- private Date starttime;
+ @Column(name = "inserted")
+ private Date inserted;
- @Column(name = "updatetime")
- private Date updatetime;
+ @Column(name = "updated")
+ private Date updated;
@Column(name = "deleted")
private boolean deleted;
@ManyToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "roomid", nullable = true)
+ @JoinColumn(name = "room_id", nullable = true)
@ForeignKey(enabled = true)
private Room room;
@@ -80,68 +94,51 @@ public class Invitations implements Seri
@Column(name = "hash")
private String hash;
- @Column(name = "invitedname")
- private String invitedname;
-
- @Column(name = "invitedEMail")
- private String invitedEMail;
-
- @Column(name = "ispasswordprotected")
- private Boolean isPasswordProtected;
+ @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+ @JoinColumn(name = "invitee_id", nullable = true)
+ @ForeignKey(enabled = true)
+ private User invitee;
+
+ @Column(name = "password_protected")
+ private boolean passwordProtected;
- @Column(name = "invitationpass")
- private String invitationpass;
-
- // this is necessary as a room can be shared between multiple domains
- // is either *public* or an organisation_ID
- @Column(name = "conferencedomain")
- private String conferencedomain;
+ @Column(name = "password")
+ private String password;
// Invitations by Time are only valid between the validFrom validTo
// TimeStamp
- @Column(name = "isValidByTime")
- private Boolean isValidByTime = false;
+ @Column(name = "valid")
+ @Enumerated(EnumType.STRING)
+ private Valid valid = Valid.Period;
- @Column(name = "validFrom")
+ @Column(name = "valid_from")
private Date validFrom;
- @Column(name = "validTo")
+ @Column(name = "valid_to")
private Date validTo;
- // An invitation which is canBeUsedOnlyOneTime = true can be only used
- // one-time
- @Column(name = "canBeUsedOnlyOneTime")
- private Boolean canBeUsedOnlyOneTime = false;
- @Column(name = "invitationWasUsed")
- private Boolean invitationWasUsed = false;
+ @Column(name = "was_used")
+ private boolean used;
-
- @Column(name = "appointment_id")
- private Long appointmentId;
+ @ManyToOne(fetch = FetchType.EAGER)
+ @JoinColumn(name = "appointment_id", nullable = true)
+ @ForeignKey(enabled = true)
+ private Appointment appointment;
// BaseuRL defined at creation of InvitationLink - used for chronological
// reminders on serverside (updates)
- @Column(name = "baseUrl")
+ @Column(name = "base_url")
private String baseUrl;
- /**
- * java.util.TimeZone Id
- */
- @Column(name = "time_zone_id")
- private String timeZoneId; //
-
+ //variable used in Flash
private boolean allowEntry = true;
-
- public Invitations() {
- super();
- }
-
- public Long getInvitations_id() {
- return invitations_id;
+
+ public Long getId() {
+ return id;
}
- public void setInvitations_id(Long invitations_id) {
- this.invitations_id = invitations_id;
+ public void setId(Long id) {
+ this.id = id;
}
public Room getRoom() {
@@ -160,20 +157,20 @@ public class Invitations implements Seri
this.invitedBy = invitedBy;
}
- public Date getStarttime() {
- return starttime;
+ public Date getInserted() {
+ return inserted;
}
- public void setStarttime(Date starttime) {
- this.starttime = starttime;
+ public void setInserted(Date inserted) {
+ this.inserted = inserted;
}
- public Date getUpdatetime() {
- return updatetime;
+ public Date getUpdated() {
+ return updated;
}
- public void setUpdatetime(Date updatetime) {
- this.updatetime = updatetime;
+ public void setUpdated(Date updated) {
+ this.updated = updated;
}
public boolean getDeleted() {
@@ -192,44 +189,28 @@ public class Invitations implements Seri
this.hash = hash;
}
- public String getInvitedname() {
- return invitedname;
- }
-
- public void setInvitedname(String invitedname) {
- this.invitedname = invitedname;
- }
-
- public String getInvitedEMail() {
- return invitedEMail;
- }
-
- public void setInvitedEMail(String invitedEMail) {
- this.invitedEMail = invitedEMail;
+ public User getInvitee() {
+ return invitee;
}
- public Boolean getIsPasswordProtected() {
- return isPasswordProtected;
+ public void setInvitee(User invitee) {
+ this.invitee = invitee;
}
- public void setIsPasswordProtected(Boolean isPasswordProtected) {
- this.isPasswordProtected = isPasswordProtected;
+ public boolean isPasswordProtected() {
+ return passwordProtected;
}
- public String getInvitationpass() {
- return invitationpass;
+ public void setPasswordProtected(boolean passwordProtected) {
+ this.passwordProtected = passwordProtected;
}
- public void setInvitationpass(String invitationpass) {
- this.invitationpass = invitationpass;
+ public String getPassword() {
+ return password;
}
- public String getConferencedomain() {
- return conferencedomain;
- }
-
- public void setConferencedomain(String conferencedomain) {
- this.conferencedomain = conferencedomain;
+ public void setPassword(String password) {
+ this.password = password;
}
public Date getValidFrom() {
@@ -248,28 +229,12 @@ public class Invitations implements Seri
this.validTo = validTo;
}
- public Boolean getCanBeUsedOnlyOneTime() {
- return canBeUsedOnlyOneTime;
- }
-
- public void setCanBeUsedOnlyOneTime(Boolean canBeUsedOnlyOneTime) {
- this.canBeUsedOnlyOneTime = canBeUsedOnlyOneTime;
- }
-
- public Boolean getInvitationWasUsed() {
- return invitationWasUsed;
- }
-
- public void setInvitationWasUsed(Boolean invitationWasUsed) {
- this.invitationWasUsed = invitationWasUsed;
- }
-
- public Boolean getIsValidByTime() {
- return isValidByTime;
+ public boolean isUsed() {
+ return used;
}
- public void setIsValidByTime(Boolean isValidByTime) {
- this.isValidByTime = isValidByTime;
+ public void setUsed(boolean used) {
+ this.used = used;
}
public String getBaseUrl() {
@@ -280,14 +245,22 @@ public class Invitations implements Seri
this.baseUrl = baseUrl;
}
- public Long getAppointmentId() {
- return appointmentId;
+ public Appointment getAppointment() {
+ return appointment;
}
- public void setAppointmentId(Long appointmentId) {
- this.appointmentId = appointmentId;
+ public void setAppointment(Appointment appointment) {
+ this.appointment = appointment;
}
+ public Valid getValid() {
+ return valid;
+ }
+
+ public void setValid(Valid valid) {
+ this.valid = valid;
+ }
+
public boolean isAllowEntry() {
return allowEntry;
}
@@ -295,13 +268,4 @@ public class Invitations implements Seri
public void setAllowEntry(boolean allowEntry) {
this.allowEntry = allowEntry;
}
-
- public String getTimeZoneId() {
- return timeZoneId;
- }
-
- public void setTimeZoneId(String timeZoneId) {
- this.timeZoneId = timeZoneId;
- }
-
}
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/user/User.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/user/User.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/user/User.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/user/User.java Thu Sep 12 01:21:26 2013
@@ -262,9 +262,9 @@ public class User implements Serializabl
@Enumerated(EnumType.STRING)
private Type type = Type.user;
- @Column(name = "ownerId")
+ @Column(name = "owner_id")
@Element(data = true, required = false)
- private Long owner_id;
+ private Long ownerId;
public Long getUser_id() {
return user_id;
@@ -600,12 +600,12 @@ public class User implements Serializabl
this.type = type;
}
- public Long getOwner_id(){
- return owner_id;
+ public Long getOwnerId(){
+ return ownerId;
}
- public void setOwner_id(Long owner_id){
- this.owner_id = owner_id;
+ public void setOwnerId(Long ownerId){
+ this.ownerId = ownerId;
}
@Override
Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceService.java Thu Sep 12 01:21:26 2013
@@ -308,7 +308,7 @@ public class ConferenceService {
returnMap.put("appointment", appointment);
User us = userManager.getUserById(currentClient.getUser_id());
- TimeZone timezone = timezoneUtil.getTimezoneByUser(us);
+ TimeZone timezone = timezoneUtil.getTimeZone(us);
returnMap.put("appointment", appointment);
@@ -319,7 +319,7 @@ public class ConferenceService {
returnMap.put(
"end",
CalendarPatterns.getDateWithTimeByMiliSeconds(
- appointment.end(), timezone));
+ appointment.getEnd(), timezone));
returnMap.put("timeZone", timezone.getDisplayName());
return returnMap;