
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=examplesite&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
Notera att du nu kan lägga till en länk till roten på Alfresco Share-servern. Jag har märkt att det ofta uppstår förvirring om vart användaren ska navigera efter att ha accepterat inbjudan. Användare kommer att hitta inbjudningsmejlet igen, och den enda klickbara länken där är inbjudan, vilket resulterar i ett fel eftersom de redan har accepterat. Tyvärr stöder Alfresco ännu inte HTML-formaterade mejl, så det utgående mejlet kommer att vara i vanlig textformat. Ett annat tips kan vara att lägga till en länk till en hjälpsida i wikin (om din hjälpsida heter Komma igång) $\{serverName\}/share/page/site/publicsitename/wiki-page?title=Getting_Started
. Detta måste vara en länk till en offentlig webbplats så att alla inbjudna användare har läsbehörighet. Jag har konfigurerat Alfresco så att externa användar-ID:n baseras på deras e-postadress. Du kan göra detta genom att skapa en fil i tomcat/shared/classes/alfresco/extension
med namnet invite-context.xml
med följande innehåll:
<?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>
Du kan också lägga till fast text, till exempel om du vill ha prefixet “ext” kan du använda ext_%firstName%_%lastName%
.
Jag hoppas att detta har gett dig några idéer. Det finns naturligtvis mycket mer du kan göra, till exempel lägga till länkar till support, länkar till sökningar, lägga till ett andra språk och mycket mer. Lägg lite arbete på denna mall, eftersom det ofta är det första som användare kommer i kontakt med när de börjar använda Alfresco Share. Lycka till!