Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
styledecimal

Note
titleVersion warning

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 notification
  • syncopeConf
    Map<String, String> containing all defined configurations as <key, value> - see how to manage these items
  • recipients
    list of UserTO instances for all the actual recipients of the current notification e-mail
  • events
    list of String 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 notified
  • category
    category (String) of event being notified
  • subcategory
    subcategory (String) of event being notified
  • event
    event (String) that actually triggered the current notification 
  • condition
    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 place 
  • input
    RESTful method arguments (Object[])
  • output 
    entity value (Object) returned by RESTful method

Sample expressions

Code Block
languagejava
titleUsername
$user.getUsername()
Code Block
languagejava
titleAttribute value
$user.getAttributeMap().get("email").getValues().get(0)
Code Block
titleMemberships
#foreach($membership in $user.getMemberships())
  $membership.roleId
  $membership.roleName
  $membership.getAttributeMap().get("membershipAttr").getValues().get(0)
#end

...