Class AbstractSendNotificationObserver
java.lang.Object
org.ametys.runtime.plugin.component.AbstractLogEnabled
org.ametys.plugins.workspaces.project.notification.AbstractSendNotificationObserver
- All Implemented Interfaces:
Observer
,LogEnabled
,PluginAware
,Contextualizable
,Serviceable
- Direct Known Subclasses:
ResourcesMailNotifierObserver
,TaskMailNotifierObserver
,ThreadsMailNotifierObserver
public abstract class AbstractSendNotificationObserver
extends AbstractLogEnabled
implements Observer, Serviceable, Contextualizable, PluginAware
Observer
for observing events on resources project-
Field Summary
Modifier and TypeFieldDescriptionprotected Context
The avalon contextprotected I18nUtils
The i18n utilsprotected WorkspaceModuleExtensionPoint
The workspace module managers EPprotected String
The name of current pluginprotected ProjectManager
The project managerprotected RenderingContextHandler
The rendering context handlerprotected AmetysObjectResolver
The Ametys Object Resolverprotected RightManager
The rights managerprotected UserManager
The users managerFields inherited from interface org.ametys.core.observation.Observer
MAX_PRIORITY, MIN_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected String
format the path without the root pathvoid
contextualize
(Context context) getMailCommonParams
(Project project, User issuer, String explorerNodeId) Get the common mail parametersprotected Page
getModulePage
(Project project, String moduleId) Get the module's pageprotected String
getModuleUrl
(Project project, String moduleId, String objectId) Get the absolute full url of module'pageint
getPriority
(Event event) Retrieves the priority to observe this event.
This can be used to process a supported event before others observers.protected Project
getProject
(Event event) Get the project from eventprotected String
getProjectUrl
(Project project) Get the absolute url of projectprotected abstract String
Get the right to check allowed users to notify by mailprotected abstract String
Get the URL of project to insert in email bodyprotected List<UserIdentity>
getUsersToNotify
(String eventId, AmetysObject object) Get the users allowed to be notifiedprotected abstract void
Notify email by mailvoid
Observes an event.protected void
sendMail
(String eventId, List<UserIdentity> recipients, String mailBodyi18nKey, String mailSubjecti18nKey, List<String> mailBodyParams, List<String> mailSubjectParams) Sent an emailvoid
service
(ServiceManager manager) void
setPluginInfo
(String pluginName, String featureName, String id) Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
Field Details
-
_resolver
The Ametys Object Resolver -
_context
The avalon context -
_userManager
The users manager -
_rightManager
The rights manager -
_i18nUtils
The i18n utils -
_projectManager
The project manager -
_renderingContextHandler
The rendering context handler -
_pluginName
The name of current plugin -
_moduleManagerEP
The workspace module managers EP
-
-
Constructor Details
-
AbstractSendNotificationObserver
public AbstractSendNotificationObserver()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
contextualize
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
setPluginInfo
Description copied from interface:PluginAware
Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.- Specified by:
setPluginInfo
in interfacePluginAware
- Parameters:
pluginName
- Unique identifier for the plugin hosting the extensionfeatureName
- Unique feature identifier (unique for a given pluginName)id
- Unique identifier of this component
-
getPriority
Description copied from interface:Observer
Retrieves the priority to observe this event.
This can be used to process a supported event before others observers.- Specified by:
getPriority
in interfaceObserver
- Parameters:
event
- the event.- Returns:
- the priority where 0 the max priority and Integer.MAX_VALUE the min priority.
-
observe
Description copied from interface:Observer
Observes an event. -
notifyEvent
protected abstract void notifyEvent(Project project, String eventId, Map<String, Object> eventParams, User issuer) Notify email by mail- Parameters:
project
- The projecteventId
- The id of eventeventParams
- The event's argumentsissuer
- The issuer
-
getProject
Get the project from event- Parameters:
event
- The event- Returns:
- the project or null if not found
-
getMailCommonParams
Get the common mail parameters- Parameters:
project
- The parent projectissuer
- The user responsible of the actionexplorerNodeId
- the id of the explorer node. Can be null.- Returns:
- an array of strings used in every mail
-
getModulePage
Get the module's page- Parameters:
project
- The projectmoduleId
- The module- Returns:
- The page or
null
if not found
-
getModuleUrl
Get the absolute full url of module'page- Parameters:
project
- The projectmoduleId
- The module. Can not be nullobjectId
- The id of concerned object. Can be null.- Returns:
- The
-
getProjectUrl
Get the absolute url of project- Parameters:
project
- The project- Returns:
- the project's url
-
getUrl
Get the URL of project to insert in email body- Parameters:
project
- The projectobjectId
- The id of concerned object- Returns:
- The full URL
-
sendMail
protected void sendMail(String eventId, List<UserIdentity> recipients, String mailBodyi18nKey, String mailSubjecti18nKey, List<String> mailBodyParams, List<String> mailSubjectParams) Sent an email- Parameters:
eventId
- The id of eventrecipients
- The recipients of the mailmailBodyi18nKey
- i18n key for the bodymailSubjecti18nKey
- i18n key for the subjectmailBodyParams
- parameters for the bodymailSubjectParams
- parameters for the subject
-
getUsersToNotify
Get the users allowed to be notified- Parameters:
eventId
- The id of eventobject
- The object on which to test rights- Returns:
- The allowed users
-
getRightIdForNotify
Get the right to check allowed users to notify by mail- Returns:
- the right id to check
-
_getPath
format the path without the root path- Parameters:
rootPath
- The root path to removepath
- The absolute path- Returns:
- the local path
-