Fixa epostmallen för inbjudan i Alfresco Share
apr 05 2011
Kategorier : Tips och Tricks, Handledning
I Alfresco Share så kan du väldigt enkelt bjuda in interna men även externa användare till en webbplats. Alfresco skapar användarkontot för externa användara med tillhörande lösenord om inte redan finns. Inbjudan skickas ut som ett epostmeddelande till de inbjudna som innehåller en länk för att bekräfta eller avslå inbjudan, och därefter kan användare deltaga och hantera information i webbplatsen.
Mallen som används finns sparad i Arkiv> Data Dictionary> Email Templates> invite och heter invite-email.ftl. Du når den alltså genom att i Alfresco Share klicka på knappen Arkiv (Repository) i verktygsraden, och sedan bläddra dig fram till invite-email.ftl. Du kan redigera den direkt i webbläsaren om du vill. Enkla saker vi kan göra här är naturligtvis att översätta allt till svenska, och ändra avsändare.
Den bekräftelselänk som skapas sätter servernamnet till den server som den som bjuder in använder. Det är i det allra flesta fall alldeles tillräckligt, men av olika skäl så kanske du vill dirigera interna och externa användare till olika servers. Du kanske har satt upp olika autentiseringsmetoder för interna och externa användare, eller att du anpassat den externa Share instansen för just externa användare.
http://alfresco.example.com/share/page/accept-invite?inviteId=jbpm$156&inviteeUserName=peter%40example.com&siteShortName=mysite&inviteTicket=610b4819-0153-4406-9d85-0357e5ee65d3
Exemplet ovan visar hur länken för inbjudan kan se ut, i exemplet så kommer alfresco.example.com från den server som personen som bjudit in använt. Vi vill dock att alla externa användare skall slussas till alfresco-external.example.com. Det kan vi enkelt göra med lite freemarker kod. Har du aldrig använt detta tidigare skall du inte se det som ett stor hinder, kan du lite html och/eller javascript går det lätt att förstå, och freemarker är väl dokumenterat.
Så här kan mallen se ut, jag har skrivit kommentarer inline för att förklara.
<#assign inviterPersonRef=args["inviterPersonRef"]/> <#assign inviterPerson=companyhome.nodeByReference[inviterPersonRef]/> <#assign inviteePersonRef=args["inviteePersonRef"]/> <#assign inviteePerson=companyhome.nodeByReference[inviteePersonRef]/> <#-- Remove server name from the link--> <#assign yesLink=args["acceptLink"]?substring(args["acceptLink"]?index_of("/share")) /> <#assign noLink=args["rejectLink"]?substring(args["rejectLink"]?index_of("/share")) /> <#assign userName=args["inviteeUserName"]?string /> <#-- Set server name depending on if user is internal or external --> <#if userName?index_of("@") > 0 > <#-- All external user has their email address as username, check for this --> <#assign serverName="http://alfresco-external.example.com" /> <#else> <#assign serverName="https://alfresco.example.com" /> </#if> Hello ${inviteePerson.properties["cm:firstName"]}, You have been invited by ${inviterPerson.properties["cm:firstName"]} ${inviterPerson.properties["cm:lastName"]} to join the '${args["siteName"]}' site. Your role in the site will be ${args["inviteeSiteRole"]}. To accept this invitation click the link below. <#-- Append yes link to server name (that is different if internal or external user) --> ${serverName}${yesLink} <#if args["inviteeGenPassword"]?exists> and enter the following information: Username: ${args["inviteeUserName"]} Password: ${args["inviteeGenPassword"]} We strongly advise you to change your password when you log in for the first time. </#if> If you do not want to join the site then click here: <#-- Append no link to server name --> ${serverName}${noLink} Create a bookmark after accepting for this server for use when you log in next time ${serverName} <#-- This is important, manu users miss where to navigate once they have accepted --> You can create bookmarks for any place in Alfresco Share if you would like to reach you information quickly. Regards, ${inviterPerson.properties["cm:firstName"]} ${inviterPerson.properties["cm:lastName"]} Company
Note that you now can put a link to root in the Alfesco Share server. I’ve noticed that many times there are some confusion on where to navigate once the user has accepted. Users will find the invite email again, and the only clickable link in there is the invite, this results in an error since they already have accepted. Unfortunately html formatted emails are not supported by Alfresco yet, so the outgoing email will be plain text formatted. Another tip can be to to put a link it a help page in the wiki (of you help page is named Getting Started) `${serverName}/share/page/site/publicsitename/wiki-page?title=Getting_Started` This must be a link to a public site so that all invited users have read access. I have configured Alfesco so that external user id:s is base on their email adress. You can do this by creating a file in tomcat/shared/classes/alfresco/extension named invite-context.xml with the content
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <bean id="nameBasedUserNameGenerator" class="org.alfresco.repo.security.authentication.NameBasedUserNameGenerator"> <!-- name patterns available: %lastName%, lower case last name %firstName%, lower case first name %emailAddress% email address %i% lower case first name inital --> <property name="namePattern"> <value>%emailAddress%</value> </property> <property name="userNameLength"> <value>10</value> </property> </bean> </beans>
Det går även bra att lägga till fast text, till exempel om du vill att alla skall ha ett prefix ext så använder duext_%firstName%_%lastName%
.
Hoppas detta gett lite idéer om vad du kan göra. Det går naturligtvis göra mycket mer, exempel kan vara att lägga in länkar till support, länkar till sökningar, lägga in texten på flera språk med mera. Eftersom detta meddelande är det första många användare möter så är det värt att arbeta lite med mallen. Lyckat till.