Interface AgendaEventAttendeeService
-
Method Summary
Modifier and TypeMethodDescriptionbooleancanRespondToEvent(Event event, long identityId) Checks whether the user may write their own answer on the event, which is the one right that opening an event widens (eXIP 7.3.0.20).org.exoplatform.social.core.identity.model.IdentitydecryptUserIdentity(long eventId, String token, EventAttendeeResponse response) Reads token content and retrieves user Social Identity from email or username contained in token.generateEncryptedToken(long eventId, String email) Generates a token that will be used to authenticate user when requesting REST API in anonymous mode.generateEncryptedToken(long eventId, String emailOrUsername, EventAttendeeResponse response) Generates a token that will be used to authenticate user when requesting REST API in anonymous mode.getEventAttendees(long eventId) Return the list of attendees of an eventgetEventAttendees(long eventId, ZonedDateTime occurrenceId, EventAttendeeResponse... responses) Return the list of attendees of an event having a specific responses.getEventAttendees(long eventId, EventAttendeeResponse... responses) Return the list of attendees of an event having a specific responses.getEventResponse(long eventId, ZonedDateTime occurrenceId, long identityId) Retrieves the event response of a user.booleanisEventAttendee(long eventId, long identityId) Checks whether the user is an attendee of the event or notsaveEventAttendees(Event event, List<EventAttendee> attendees, long creatorIdentityId, boolean sendInvitations, boolean resetResponses, AgendaEventModification eventModifications) voidsendEventResponse(long eventId, long identityId, EventAttendeeResponse response) voidsendEventResponse(long eventId, long identityId, EventAttendeeResponse response, boolean broadcast) voidsendInvitations(Event event, List<EventAttendee> eventAttendees, AgendaEventModification eventModifications) Sends an invitation to event attendees of type: user, space or external user.voidsendUpcomingEventResponse(long eventId, ZonedDateTime occurrenceId, long identityId, EventAttendeeResponse response) Sends an event response for a recurrent event starting from a specific occurrence
-
Method Details
-
getEventAttendees
Return the list of attendees of an event- Parameters:
eventId- agendaEventidentifier- Returns:
EventAttendeeList
-
getEventAttendees
List<EventAttendee> getEventAttendees(long eventId, ZonedDateTime occurrenceId, EventAttendeeResponse... responses) Return the list of attendees of an event having a specific responses.- Parameters:
eventId- agendaEventidentifieroccurrenceId- event occurrence idresponses- Array of answers of attendees to retrieve- Returns:
ListofEventAttendee
-
getEventAttendees
Return the list of attendees of an event having a specific responses.- Parameters:
eventId- agendaEventidentifierresponses- Array of answers of attendees to retrieve- Returns:
EventAttendeeList
-
sendInvitations
void sendInvitations(Event event, List<EventAttendee> eventAttendees, AgendaEventModification eventModifications) Sends an invitation to event attendees of type: user, space or external user.- Parameters:
event-EventeventAttendees-ListofEventAttendeeof the eventeventModifications-AgendaEventModificationcontains aSetofAgendaEventModificationTypeto indicate event modification types: fields modifications, creation or deletion
-
saveEventAttendees
Set<AgendaEventModificationType> saveEventAttendees(Event event, List<EventAttendee> attendees, long creatorIdentityId, boolean sendInvitations, boolean resetResponses, AgendaEventModification eventModifications) - Parameters:
event-Eventto attach attendeesattendees-ListofEventAttendeeto save for eventcreatorIdentityId- technical identifier ifIdentityupdating eventsendInvitations- whether send invitations to other attendees or notresetResponses- whether reset attendees responses or not to defaultEventAttendeeResponse.NEEDS_ACTION. Whatever the value of this parameter, the response of a newly added attendee is forced toEventAttendeeResponse.NEEDS_ACTIONwhen it isn't the attendee designated by creatorIdentityId, since a user can only answer an invitation for himselfeventModifications-AgendaEventModificationcontains aSetofAgendaEventModificationTypeto indicate event modification types: fields modifications, creation or deletion- Returns:
SetofAgendaEventModificationTypecontaining modifications made on event attendees
-
generateEncryptedToken
Generates a token that will be used to authenticate user when requesting REST API in anonymous mode.- Parameters:
eventId-Eventtechnical identifieremail- User email- Returns:
- encrypted token containing "EVENT_ID|EMAIL||EXPIRY", or null when the event carries no date to bound the token by
-
generateEncryptedToken
Generates a token that will be used to authenticate user when requesting REST API in anonymous mode.The token expires with the meeting it answers. The expiry is the last field of the payload, an epoch second derived from the event by
Utils.invitationTokenExpiry; it is a pure function of the event, so the same event and answer always yield the same token, which is what lets the calendar copy carry these links in a DESCRIPTION without being rewritten on every sweep (EXO-89752, EXO-89753).- Parameters:
eventId-Eventtechnical identifieremailOrUsername- User name or emailresponse-EventAttendeeResponsevalue for chosen answer, null for a token that authenticates without carrying an answer- Returns:
- encrypted token containing "EVENT_ID|EMAIL|ATTENDEE_RESPONSE|EXPIRY", the answer field being empty when there is none; null when the event carries no date to bound the token by, in which case no link should be offered
-
decryptUserIdentity
org.exoplatform.social.core.identity.model.Identity decryptUserIdentity(long eventId, String token, EventAttendeeResponse response) throws IllegalAccessException Reads token content and retrieves user Social Identity from email or username contained in token. An internal attendee is retrieved from the organization identity provider, an external attendee - a guest invited by mail address only - is retrieved among the guest attendees of the event. No identity is ever created by this lookup, so a token carrying a mail address which attends nothing resolves to null.A token whose meeting is over is refused, with
EventInvitationExpiredExceptionso that a caller can tell a lapsed link apart from a forged one. A token minted before EXO-89752 carries no expiry of its own and is bounded by asking the event for the same bound at this point, so no invitation already delivered stops working and none of them stays replayable either.- Parameters:
eventId-Eventtechnical identifiertoken- encrypted tokenresponse-EventAttendeeResponsevalue for chosen answer- Returns:
Identityof user, or null when the token designates neither an existing internal user nor a guest attendee of the event- Throws:
IllegalAccessException- when the token has bad format, designates another event or another answer, or - asEventInvitationExpiredException- when the meeting it answers is over
-
getEventResponse
EventAttendeeResponse getEventResponse(long eventId, ZonedDateTime occurrenceId, long identityId) throws org.exoplatform.commons.exception.ObjectNotFoundException, IllegalAccessException Retrieves the event response of a user. If the user didn't responded to the event, the default valueEventAttendeeResponse.NEEDS_ACTIONwill be retrieved.- Parameters:
eventId- Technical identifier ofEventoccurrenceId- event occurrence ididentityId-Identitytechnical identifier of user- Returns:
EventAttendeeResponse, no null value is returned- Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when event with provided identifier doesn't existsIllegalAccessException- when the user may not answer the event: not an attendee, and the event isn't open to them (seecanRespondToEvent(Event, long))
-
sendEventResponse
void sendEventResponse(long eventId, long identityId, EventAttendeeResponse response) throws org.exoplatform.commons.exception.ObjectNotFoundException, IllegalAccessException - Parameters:
eventId- Technical identifier ofEventidentityId-Identitytechnical identifier of userresponse- User response of typeEventAttendeeResponseto the event. The valueEventAttendeeResponse.NEEDS_ACTIONisn't allowed.- Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when event with provided identifier doesn't existsIllegalAccessException- when the user may not answer the event: not an attendee, and the event isn't open to them (seecanRespondToEvent(Event, long))
-
sendUpcomingEventResponse
void sendUpcomingEventResponse(long eventId, ZonedDateTime occurrenceId, long identityId, EventAttendeeResponse response) throws org.exoplatform.commons.exception.ObjectNotFoundException, IllegalAccessException Sends an event response for a recurrent event starting from a specific occurrence- Parameters:
eventId- Technical identifier ofEventoccurrenceId- event occurrence ididentityId-Identitytechnical identifier of userresponse- User response of typeEventAttendeeResponseto the event. The valueEventAttendeeResponse.NEEDS_ACTIONisn't allowed.- Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when event with provided identifier doesn't existsIllegalAccessException- when the user may not answer the event: not an attendee, and the event isn't open to them (seecanRespondToEvent(Event, long))
-
sendEventResponse
void sendEventResponse(long eventId, long identityId, EventAttendeeResponse response, boolean broadcast) throws org.exoplatform.commons.exception.ObjectNotFoundException, IllegalAccessException - Parameters:
eventId- Technical identifier ofEventidentityId-Identitytechnical identifier of userresponse- User response of typeEventAttendeeResponseto the event. The valueEventAttendeeResponse.NEEDS_ACTIONisn't allowed.broadcast- whether broadcast event about this change or not- Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when event with provided identifier doesn't existsIllegalAccessException- when the user may not answer the event: not an attendee, and the event isn't open to them (seecanRespondToEvent(Event, long))
-
isEventAttendee
boolean isEventAttendee(long eventId, long identityId) Checks whether the user is an attendee of the event or not- Parameters:
eventId- Technical identifier ofEventidentityId- user name- Returns:
- true if user is an attendee of the event, else return false
-
canRespondToEvent
Checks whether the user may write their own answer on the event, which is the one right that opening an event widens (eXIP 7.3.0.20). Two halves:- the attendee half is exactly
isEventAttendee(long, long)on the event itself, so an exceptional occurrence is checked against its own attendee list, as today; - the open half: the event is open and the user can access its calendar (a member of the owning space). The flag is the event's own: a date individually modified answers with its own value.
- Parameters:
event-Eventto answer, as storedidentityId-Identitytechnical identifier of user- Returns:
- true when the user may send or read an answer on the event, else false
- the attendee half is exactly
-