Table of Contents | ||
---|---|---|
|
Note | ||
---|---|---|
| ||
The content below is for Apache Syncope <= 1.2 - for later versions the Reference Guide is available. |
Introduction
You can create new (and modify existing) template messages to customize
Customize notification e-mail templates
In Syncope you can customize and create your own template messages to personalize the body of notification messages. This can be achived 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 modifing the email template files. Each e-mail template it's made of a couple of files:one for HTML version and one for the text version of the email message body.
Default template direcotry is located at "/WEB-INF/classes/mailTemplates" of Syncope core web application.
- 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 byIt contains the "optin" default notification template files:
optin.html.vm
optin.txt.vm
These files are Velocity template files. Syncope use Velocity (http://velocity.apache.org) as template engine to reference and process objects injected by Syncope.
If you want to create your own email template, e.g. "custom-notification", you just need to create a couple of files named "custom-notification.html.vm" and "custom-notification.txt.vm"
Within these files you can use Velocity expressions and reference the following Syncope
injected variables:
- user
- syncopeConf
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 |
...