This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push: new 5e8a6f8 [OPENMEETINGS-2481] another attempt to fix cancel 5e8a6f8 is described below commit 5e8a6f8340cef65e6f39327d24c886c7e8e78c30 Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Fri Oct 16 23:37:43 2020 +0700 [OPENMEETINGS-2481] another attempt to fix cancel --- .../service/room/InvitationManager.java | 9 ++++---- .../apache/openmeetings/util/mail/IcalHandler.java | 2 +- .../openmeetings/invitiation/TestInvitation.java | 25 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java index 53a69db..5a36f1f 100644 --- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java +++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java @@ -97,10 +97,12 @@ public class InvitationManager implements IInvitationManager { @Override public void sendInvitationLink(Invitation i, MessageType type, String subject, String message, boolean ical, String baseUrl) throws Exception { - String invitationLink = null; + final String invitationLink; if (type != MessageType.CANCEL) { IApplication app = ensureApplication(1L); invitationLink = app.getOmInvitationLink(i, baseUrl); + } else { + invitationLink = null; } User owner = i.getInvitedBy(); @@ -110,7 +112,6 @@ public class InvitationManager implements IInvitationManager { String replyToEmail = owner.getAddress().getEmail(); if (ical) { - String username = i.getInvitee().getLogin(); boolean isOwner = owner.getId().equals(i.getInvitee().getId()); Appointment a = i.getAppointment(); String desc = a.getDescription() == null ? "" : a.getDescription(); @@ -123,8 +124,8 @@ public class InvitationManager implements IInvitationManager { .setDescription(desc) .setUid(a.getIcalId()) .setSequence(0) - .addOrganizer(replyToEmail, owner.getLogin()) - .addAttendee(email, username, isOwner) + .addOrganizer(replyToEmail, owner.getDisplayName()) + .addAttendee(email, i.getInvitee().getLogin(), isOwner) .build(); log.debug(handler.toString()); diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java index 42b18a8..bf09304 100644 --- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java +++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java @@ -105,7 +105,7 @@ public class IcalHandler { end.setTimeZone(timeZone); meeting = new VEvent(start, end, name); - meeting.getProperties().add(Transp.OPAQUE); + meeting.getProperties().add(Method.CANCEL == method ? Transp.TRANSPARENT : Transp.OPAQUE); return this; } diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java index 37194be..ec508a2 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java @@ -19,14 +19,18 @@ package org.apache.openmeetings.invitiation; import static org.apache.openmeetings.util.CalendarHelper.getDate; +import static org.junit.Assert.assertNotNull; import java.time.LocalDateTime; +import java.util.Date; import org.apache.openmeetings.AbstractWicketTester; import org.apache.openmeetings.db.dao.room.RoomDao; +import org.apache.openmeetings.db.entity.calendar.Appointment; import org.apache.openmeetings.db.entity.room.Invitation; import org.apache.openmeetings.db.entity.room.Invitation.MessageType; import org.apache.openmeetings.db.entity.room.Invitation.Valid; +import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.service.room.InvitationManager; import org.junit.jupiter.api.Test; @@ -50,5 +54,26 @@ class TestInvitation extends AbstractWicketTester { getDate(from, "GMT"), getDate(from.plusHours(2), "GMT"), null); invitationManager.sendInvitationLink(i, MessageType.CREATE, "subject", "message", false, null); + assertNotNull(i); + } + + @Test + void testSendCancel() throws Exception { + User us = userDao.getByLogin(adminUsername, User.Type.USER, null); + + LocalDateTime from = LocalDateTime.now().plusDays(1).withHour(12).withMinute(0).withSecond(0); + Date start = getDate(from, "GMT"); + Date end = getDate(from.plusHours(2), "GMT"); + Room r = roomDao.get(1L); + User invitee = userDao.getContact("sebawag...@apache.org", "Testname", "Testlastname", us.getId()); + Appointment app = getAppointment(us, r, start, end); + appointmentDao.update(app, null, false); + Invitation i = invitationManager.getInvitation(invitee, r, + false, "", Valid.ONE_TIME + , us, us.getLanguageId(), + start, end, app); + + invitationManager.sendInvitationLink(i, MessageType.CANCEL, "subject", "message", true, "https://localhost:5443/openmeetings"); + assertNotNull(i); } }