Table of Contents | ||
---|---|---|
|
Introduction
You can create new (and modify existing) template messages to customize the body of notification messages. This can be achieved by creating and / or modifying the notification e-mail template files.
Template files
Templates are defined by their name.
Each template is made up of a couple of files:
- the rich-text HTML variant (with extension
.html.vm
) - the plain text variant (with extension
.txt.vm
)
For example, the default optin template is defined by:
optin.html.vm
optin.txt.vm
Template location
Assuming you have generated and built your own project, existing templates (including the default optin template) are located under
Code Block |
---|
core/target/syncope/WEB-INF/classes/mailTemplates/ |
You need to create your own template files (or copy existing to modify) under
Code Block |
---|
core/src/main/resources/mailTemplates/ |
Template format
Template files are interpreted using the Velocity engine; check the language reference.
Besides standard expressions, you can use the following Syncope-specific variables:
user
UserTO instance representing the subject of the current notificationsyncopeConf
Map<String, String>
containing all defined configurations as<key, value>
- see how to manage these itemsrecipients
list of UserTO instances for all the actual recipients of the current notification e-mailevents
list ofString
containing all the events that could have triggered the current notification
Apache Syncope >= 1.1.5
New Syncope-specific variable were added:
type
type of event being notifiedcategory
category (String
) of event being notifiedsubcategory
subcategory (String
) of event being notifiedevent
event (String
) that actually triggered the current notificationcondition
condition (success or failure) under which this notification was sent
Notifications can be related to RESTful method invocation that actually changed an entity (user, role, resource, ...). In this case, additional variables are available:
before
entity value (Object
) before actual modification took placeinput
RESTful method arguments (Object[]
)- output
entity value (Object
) returned by RESTful method
Sample expressions
Code Block | ||||
---|---|---|---|---|
| ||||
$user.getUsername() |
Code Block | ||||
---|---|---|---|---|
| ||||
$user.getAttributeMap().get("email").getValues().get(0) |
Code Block | ||
---|---|---|
| ||
#foreach($membership in $user.getMemberships()) $membership.roleId $membership.roleName $membership.getAttributeMap().get("membershipAttr").getValues().get(0) #end |