Proof of concept - User accounts
This commit is contained in:
parent
bf2ed5c339
commit
8f1f084c5b
45 changed files with 826 additions and 610 deletions
|
@ -2,67 +2,22 @@
|
|||
|
||||
<#-- Confirmation that an account has been created. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} account has been created." />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Congratulations!</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We have created your new account on ${siteName}, associated with ${userAccount.emailAddress}.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you did not request this new account you can safely ignore this email.
|
||||
This request will expire if not acted upon for 30 days.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Click the link below to create your password for your new account using our secure server.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="${passwordLink}" title="password">${passwordLink}</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If the link above doesn't work, you can copy and paste the link directly into your browser's address bar.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks!
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.account_created(siteName) />
|
||||
|
||||
<#assign text>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign html = strings.account_created_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress,
|
||||
passwordLink) />
|
||||
|
||||
Congratulations!
|
||||
|
||||
We have created your new account on ${siteName},
|
||||
associated with ${userAccount.emailAddress}.
|
||||
|
||||
If you did not request this new account you can safely ignore this email.
|
||||
This request will expire if not acted upon for 30 days.
|
||||
|
||||
Paste the link below into your browser's address bar to create your password
|
||||
for your new account using our secure server.
|
||||
|
||||
${passwordLink}
|
||||
|
||||
Thanks!
|
||||
</#assign>
|
||||
<#assign text = strings.account_created_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress,
|
||||
passwordLink) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -2,42 +2,18 @@
|
|||
|
||||
<#-- Confirmation that an account has been created. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} account has been created." />
|
||||
<#assign subject = strings.account_created(siteName) />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Congratulations!</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We have created your new VIVO account associated with ${userAccount.emailAddress}.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks!
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign html = strings.account_created_external_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
<#assign text>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
|
||||
Congratulations!
|
||||
|
||||
We have created your new VIVO account associated with
|
||||
${userAccount.emailAddress}.
|
||||
|
||||
Thanks!
|
||||
</#assign>
|
||||
<#assign text = string.account_created_external_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -2,71 +2,54 @@
|
|||
|
||||
<#-- Template for adding a user account -->
|
||||
|
||||
<h3><a class="account-menu" href="accountsAdmin" title="add new account">User accounts</a> > Add new account</h3>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<h3><a class="account-menu" href="accountsAdmin" title="${strings.user_accounts_title}">${strings.user_accounts_link}</a> > ${strings.add_new_account}</h3>
|
||||
|
||||
<#if errorEmailIsEmpty??>
|
||||
<#assign errorMessage = "You must supply an email address." />
|
||||
<#assign errorMessage = strings.error_no_email />
|
||||
<#elseif errorEmailInUse??>
|
||||
<#assign errorMessage = strings.error_email_already_exists />
|
||||
<#elseif errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = strings.error_invalid_email(emailAddress) />
|
||||
<#elseif errorExternalAuthIdInUse??>
|
||||
<#assign errorMessage = strings.error_external_auth_already_exists />
|
||||
<#elseif errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_first_name />
|
||||
<#elseif errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_last_name />
|
||||
<#elseif errorNoRoleSelected??>
|
||||
<#assign errorMessage = strings.error_no_role />
|
||||
<#elseif errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_password />
|
||||
<#elseif errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = strings.error_password_length(minimumLength, maximumLength) />
|
||||
<#elseif errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = strings.error_password_mismatch />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInUse??>
|
||||
<#assign errorMessage = "An account with that email address already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = "'${emailAddress}' is not a valid email address." />
|
||||
</#if>
|
||||
|
||||
<#if errorExternalAuthIdInUse??>
|
||||
<#assign errorMessage = "An account with that external authorization ID already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a first name." />
|
||||
</#if>
|
||||
|
||||
<#if errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a last name." />
|
||||
</#if>
|
||||
|
||||
<#if errorNoRoleSelected??>
|
||||
<#assign errorMessage = "You must select a role." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = "No password supplied." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = "Password must be between ${minimumLength} and ${maximumLength} characters." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = "Passwords do not match." />
|
||||
</#if>
|
||||
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon" />
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}" />
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<section id="add-account" role="region">
|
||||
<form method="POST" action="${formUrls.add}" class="customForm" role="add new account">
|
||||
<label for="email-address">Email address<span class="requiredHint"> *</span></label>
|
||||
<label for="email-address">${strings.email_address}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="emailAddress" value="${emailAddress}" id="email-address" role="input" />
|
||||
|
||||
<label for="first-name">First name<span class="requiredHint"> *</span></label>
|
||||
<label for="first-name">${strings.first_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="firstName" value="${firstName}" id="first-name" role="input" />
|
||||
|
||||
<label for="last-name">Last name<span class="requiredHint"> *</span></label>
|
||||
<label for="last-name">${strings.last_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="lastName" value="${lastName}" id="last-name" role="input" />
|
||||
|
||||
<#include "userAccounts-associateProfilePanel.ftl">
|
||||
|
||||
<p><input id="externalAuthChkBox" type="checkbox" name="externalAuthOnly" <#if externalAuthOnly?? >checked</#if> />Externally Authenticated Only</p>
|
||||
<p>Roles<span class="requiredHint"> *</span></p>
|
||||
<p><input id="externalAuthChkBox" type="checkbox" name="externalAuthOnly" <#if externalAuthOnly?? >checked</#if> />${strings.external_auth_only}</p>
|
||||
<p>${strings.roles}<span class="requiredHint"> *</span></p>
|
||||
<#list roles as role>
|
||||
<input type="radio" name="role" value="${role.uri}" role="radio" ${selectedRoles?seq_contains(role.uri)?string("checked", "")} />
|
||||
<label class="inline" for="${role.label}"> ${role.label}</label>
|
||||
|
@ -74,25 +57,21 @@
|
|||
</#list>
|
||||
|
||||
<#if emailIsEnabled??>
|
||||
<p class="note">
|
||||
Note: An email will be sent to the address entered above
|
||||
notifying that an account has been created.
|
||||
It will include instructions for activating the account and creating a password.
|
||||
</p>
|
||||
<p class="note">${strings.new_account_note}</p>
|
||||
<#else>
|
||||
<section id="passwordContainer" role="region">
|
||||
<label for="initial-password">Initial password<span class="requiredHint"> *</span></label>
|
||||
<label for="initial-password">${strings.initial_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="initialPassword" value="${initialPassword}" id="initial-password" role="input" />
|
||||
<p class="note">Minimum of ${minimumLength} characters in length.</p>
|
||||
<p class="note">${strings.minimum_password_length}</p>
|
||||
|
||||
<label for="confirm-password">Confirm initial password<span class="requiredHint"> *</span></label>
|
||||
<label for="confirm-password">${strings.confirm_initial_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="confirmPassword" value="${confirmPassword}" id="confirm-password" role="input" />
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<p><input type="submit" name="submitAdd" value="Add new account" class="submit" /> or <a class="cancel" href="${formUrls.list}" title="cancel">Cancel</a></p>
|
||||
<p><input type="submit" name="submitAdd" value="${strings.submit_add_new_account}" class="submit" /> ${strings.or} <a class="cancel" href="${formUrls.list}" title="${strings.cancel_title}">${strings.cancel_link}</a></p>
|
||||
|
||||
<p class="requiredHint">* required fields</p>
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -2,20 +2,22 @@
|
|||
|
||||
<#-- Template for setting the account reference field, which can also associate a profile with the user account -->
|
||||
|
||||
<#assign strings = i18n() />
|
||||
|
||||
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/edit/forms/css/autocomplete.css" />',
|
||||
'<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.8.9.custom.css" />')}
|
||||
<section id="externalAuthMatchId">
|
||||
<div id="associateProfileBackgroundOne">
|
||||
<div id="alignExternalAuthId">
|
||||
<#if showAssociation??>
|
||||
<label for="externalAuthId">External Auth. ID / Matching ID</label>
|
||||
<label for="externalAuthId">${strings.auth_matching_id_label}</label>
|
||||
<input type="text" name="externalAuthId" value="${externalAuthId}" id="externalAuthId" role="input "/>
|
||||
<span id="externalAuthIdInUse" >This Identifier is already in use.</span>
|
||||
<p class="explanatoryText">Can be used to associate the account with the user's profile via the matching property.</p>
|
||||
<span id="externalAuthIdInUse" >${strings.auth_id_in_use}</span>
|
||||
<p class="explanatoryText">${strings.auth_id_explanation}</p>
|
||||
<#else>
|
||||
<label for="externalAuthId">External Authentication ID</label>
|
||||
<label for="externalAuthId">${strings.auth_id_label}</label>
|
||||
<input type="text" name="externalAuthId" value="${externalAuthId}" id="externalAuthId" role="input "/>
|
||||
<span id="externalAuthIdInUse" >This Identifier is already in use.</span>
|
||||
<span id="externalAuthIdInUse" >${strings.auth_id_in_use}</span>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -24,10 +26,10 @@ ${stylesheets.add('<link rel="stylesheet" href="${urls.base}/edit/forms/css/auto
|
|||
<section id="associated">
|
||||
<div id="associateProfileBackgroundTwo">
|
||||
<p>
|
||||
<label for="associatedProfileName">Associated profile:</label>
|
||||
<label for="associatedProfileName">${strings.associated_profile_label}</label>
|
||||
<span class="acSelectionInfo" id="associatedProfileName"></span>
|
||||
<a href="" id="verifyProfileLink" title="verify this match">(verify this match)</a>
|
||||
<a href="" id="changeProfileLink" title="change profile">(change profile)</a>
|
||||
<a href="" id="verifyProfileLink" title="${strings.verify_this_match_title}">(${strings.verify_this_match})</a>
|
||||
<a href="" id="changeProfileLink" title="${strings.change_profile_title}">(${strings.change_profile})</a>
|
||||
</p>
|
||||
<input type="hidden" id="associatedProfileUri" name="associatedProfileUri" value="" />
|
||||
</div>
|
||||
|
@ -37,16 +39,16 @@ ${stylesheets.add('<link rel="stylesheet" href="${urls.base}/edit/forms/css/auto
|
|||
<section id="associationOptions">
|
||||
<div id="associateProfileBackgroundThree">
|
||||
<p>
|
||||
<label for="associateProfileName">Select the associated profile</label>
|
||||
<label for="associateProfileName">${strings.select_associated_profile}</label>
|
||||
<input type="text" id="associateProfileName" name="associateProfileName" class="acSelector" size="35">
|
||||
</p>
|
||||
</div>
|
||||
<div id="associateProfileBackgroundFour">
|
||||
<p> - or - </p>
|
||||
<p> - ${strings.or} - </p>
|
||||
<p>
|
||||
<label for="">Create the associated profile</label>
|
||||
<label for="">${strings.create_associated_profile}</label>
|
||||
<select name="newProfileClassUri" id="newProfileClassUri" >
|
||||
<option value="" selected="selected">Select one</option>
|
||||
<option value="" selected="selected">${strings.select_one}</option>
|
||||
<#list profileTypes?keys as key>
|
||||
<option value="${key}" <#if newProfileClassUri = key> selected </#if> >${profileTypes[key]}</option>
|
||||
</#list>
|
||||
|
|
|
@ -2,37 +2,20 @@
|
|||
|
||||
<#-- Confirmation that the user has changed his email account. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} email account has been changed." />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Hi, ${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You recently changed the email address associated with
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thank you.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.email_changed_subject(siteName) />
|
||||
|
||||
<#assign text>
|
||||
Hi, ${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign html = strings.email_changed_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
You recently changed the email address associated with
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign text = strings.email_changed_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
Thank you.
|
||||
</#assign>
|
||||
|
||||
<@email subject=subject html=html text=text />
|
||||
<@email subject=subject html=html text=text />
|
||||
|
|
|
@ -2,44 +2,43 @@
|
|||
|
||||
<#-- Template for adding a user account -->
|
||||
|
||||
<h3>Create your Password</h3>
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = "No password supplied." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = "Password must be between ${minimumLength} and ${maximumLength} characters." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = "Passwords do not match." />
|
||||
</#if>
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon"/>
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<h3>${strings.create_your_password}</h3>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_password />
|
||||
<#elseif errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = strings.error_password_length(minimumLength, maximumLength) />
|
||||
<#elseif errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = strings.error_password_mismatch />
|
||||
</#if>
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}"/>
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<section id="create-password" role="region">
|
||||
<p>Please enter your new password for ${userAccount.emailAddress}</p>
|
||||
<p>${strings.enter_new_password(userAccount.emailAddress)}</p>
|
||||
|
||||
<form method="POST" action="${formUrls.createPassword}" class="customForm" role="create password">
|
||||
<input type="hidden" name="user" value="${userAccount.emailAddress}" role="input" />
|
||||
<input type="hidden" name="key" value="${userAccount.passwordLinkExpiresHash}" role="input" />
|
||||
|
||||
<label for="new-password">Password<span class="requiredHint"> *</span></label>
|
||||
<label for="new-password">${strings.new_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="newPassword" value="${newPassword}" id="new-password" role="input" />
|
||||
|
||||
<p class="note">Minimum of ${minimumLength} characters in length.</p>
|
||||
<p class="note">${strings.minimum_password_length(minimumLength)}</p>
|
||||
|
||||
<label for="confirm-password">Confirm Password<span class="requiredHint"> *</span></label>
|
||||
<label for="confirm-password">${strings.confirm_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="confirmPassword" value="${confirmPassword}" id="confirm-password" role="input" />
|
||||
|
||||
<p><input type="submit" name="submit" value="Save changes" class="submit"/></p>
|
||||
<p><input type="submit" name="submit" value="${strings.save_changes}" class="submit"/></p>
|
||||
|
||||
<p class="requiredHint">* required fields</p>
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -2,75 +2,58 @@
|
|||
|
||||
<#-- Template for editing a user account -->
|
||||
|
||||
<h3><a class="account-menu" href="accountsAdmin" title="edit account">User accounts</a> > Edit account</h3>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<h3><a class="account-menu" href="accountsAdmin" title="${strings.user_accounts_title}">${strings.user_accounts_link}</a> > ${strings.edit_account}</h3>
|
||||
|
||||
<#if errorEmailIsEmpty??>
|
||||
<#assign errorMessage = "You must supply an email address." />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInUse??>
|
||||
<#assign errorMessage = "An account with that email address already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = "'${emailAddress}' is not a valid email address." />
|
||||
</#if>
|
||||
|
||||
<#if errorExternalAuthIdInUse??>
|
||||
<#assign errorMessage = "An account with that external authorization ID already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a first name." />
|
||||
</#if>
|
||||
|
||||
<#if errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a last name." />
|
||||
</#if>
|
||||
|
||||
<#if errorNoRoleSelected??>
|
||||
<#assign errorMessage = "You must select a role." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = "No password supplied." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = "Password must be between ${minimumLength} and ${maximumLength} characters." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = "Passwords do not match." />
|
||||
<#assign errorMessage = strings.error_no_email />
|
||||
<#elseif errorEmailInUse??>
|
||||
<#assign errorMessage = strings.error_email_already_exists />
|
||||
<#elseif errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = strings.error_invalid_email(emailAddress) />
|
||||
<#elseif errorExternalAuthIdInUse??>
|
||||
<#assign errorMessage = strings.error_external_auth_already_exists />
|
||||
<#elseif errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_first_name />
|
||||
<#elseif errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_last_name />
|
||||
<#elseif errorNoRoleSelected??>
|
||||
<#assign errorMessage = strings.error_no_role />
|
||||
<#elseif errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_password />
|
||||
<#elseif errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = strings.error_password_length(minimumLength, maximumLength) />
|
||||
<#elseif errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = strings.error_password_mismatch />
|
||||
</#if>
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon" />
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}" />
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<section id="edit-account" role="region">
|
||||
<form method="POST" action="${formUrls.edit}" id="userAccountForm" class="customForm" role="edit account">
|
||||
<label for="email-address">Email address<span class="requiredHint"> *</span></label>
|
||||
<label for="email-address">${strings.email_address}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="emailAddress" value="${emailAddress}" id="email-address" role="input" />
|
||||
|
||||
<label for="first-name">First name<span class="requiredHint"> *</span></label>
|
||||
<label for="first-name">${strings.first_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="firstName" value="${firstName}" id="first-name" role="input" />
|
||||
|
||||
<label for="last-name">Last name<span class="requiredHint"> *</span></label>
|
||||
<label for="last-name">${strings.last_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="lastName" value="${lastName}" id="last-name" role="input" />
|
||||
|
||||
<#if externalAuthPermitted??>
|
||||
<#include "userAccounts-associateProfilePanel.ftl">
|
||||
|
||||
<p><input id="externalAuthChkBox" type="checkbox" name="externalAuthOnly" <#if externalAuthOnly?? >checked</#if> />Externally Authenticated Only</p>
|
||||
<p><input id="externalAuthChkBox" type="checkbox" name="externalAuthOnly" <#if externalAuthOnly?? >checked</#if> />${strings.external_auth_only}</p>
|
||||
</#if>
|
||||
|
||||
<#if roles?has_content>
|
||||
<p>Roles<span class="requiredHint"> *</span></p>
|
||||
<p>${strings.roles}<span class="requiredHint"> *</span></p>
|
||||
<#list roles as role>
|
||||
<input type="radio" name="role" value="${role.uri}" role="radio" ${selectedRoles?seq_contains(role.uri)?string("checked", "")} />
|
||||
<label class="inline" for="${role.label}"> ${role.label}</label>
|
||||
|
@ -81,29 +64,25 @@
|
|||
<#if emailIsEnabled??>
|
||||
<section id="pwdResetContainer" <#if externalAuthOnly?? >class="hidden"</#if> role="region">
|
||||
<input type="checkbox" name="resetPassword" value="" id="reset-password" role="checkbox" <#if resetPassword??>checked</#if> />
|
||||
<label class="inline" for="reset-password"> Reset password</label>
|
||||
<label class="inline" for="reset-password">${strings.reset_password}</label>
|
||||
|
||||
<p class="note">
|
||||
Note: Instructions for resetting the password will
|
||||
be emailed to the address entered above. The password will not
|
||||
be reset until the user follows the link provided in this email.
|
||||
</p>
|
||||
<p class="note">${strings.reset_password_note}</p>
|
||||
</section>
|
||||
<#else>
|
||||
<section id="passwordContainer" <#if externalAuthOnly?? >class="hidden"</#if> role="region">
|
||||
<label for="new-password">New password</label>
|
||||
<label for="new-password">${strings.new_password}</label>
|
||||
<input type="password" name="newPassword" value="${newPassword}" id="new-password" role="input" />
|
||||
<p class="note">Minimum of ${minimumLength} characters in length.<br />
|
||||
Leaving this blank means that the password will not be changed.</p>
|
||||
<p class="note">${strings.minimum_password_length(minimumLength)}<br />
|
||||
${strings.leave_password_unchanged}</p>
|
||||
|
||||
<label for="confirm-password">Confirm new password</label>
|
||||
<label for="confirm-password">${strings.confirm_password}</label>
|
||||
<input type="password" name="confirmPassword" value="${confirmPassword}" id="confirm-password" role="input" />
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<p><input type="submit" id="submitMyAccount" name="submitEdit" value="Save changes" class="submit" disabled /> or <a class="cancel" href="${formUrls.list}" title="cancel">Cancel</a></p>
|
||||
<p><input type="submit" id="submitMyAccount" name="submitEdit" value="${strings.save_changes}" class="submit" disabled /> ${strings.or} <a class="cancel" href="${formUrls.list}" title="${strings.cancel_title}">${strings.cancel_link}</a></p>
|
||||
|
||||
<p class="requiredHint">* required fields</p>
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -2,59 +2,55 @@
|
|||
|
||||
<#-- Template for creating an account for the first time an external user logs in. -->
|
||||
|
||||
<h3>First time log in</h3>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<h3>${strings.first_time_login}</h3>
|
||||
|
||||
<#if errorEmailIsEmpty??>
|
||||
<#assign errorMessage = "You must supply an email address." />
|
||||
<#assign errorMessage = strings.error_no_email />
|
||||
<#elseif errorEmailInUse??>
|
||||
<#assign errorMessage = strings.error_email_already_exists />
|
||||
<#elseif errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = strings.error_invalid_email(emailAddress) />
|
||||
<#elseif errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_first_name />
|
||||
<#elseif errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_last_name />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInUse??>
|
||||
<#assign errorMessage = "An account with that email address already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = "'${emailAddress}' is not a valid email address." />
|
||||
</#if>
|
||||
|
||||
<#if errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a first name." />
|
||||
</#if>
|
||||
|
||||
<#if errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a last name." />
|
||||
</#if>
|
||||
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon"/>
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}" />
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<section id="first-time-login" role="region">
|
||||
<p>Please provide your contact information to finish creating your account.</p>
|
||||
<p>${strings.please_provide_contact_information}</p>
|
||||
|
||||
<form method="POST" action="${formUrls.firstTimeExternal}" class="customForm" role="my account">
|
||||
<input type="hidden" name="externalAuthId" value="${externalAuthId}" role="input" />
|
||||
<input type="hidden" name="afterLoginUrl" value="${afterLoginUrl}" role="input" />
|
||||
|
||||
<label for="first-name">First name<span class="requiredHint"> *</span></label>
|
||||
<label for="first-name">${strings.first_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="firstName" value="${firstName}" id="first-name" role="input" />
|
||||
|
||||
<label for="last-name">Last name<span class="requiredHint"> *</span></label>
|
||||
<label for="last-name">${strings.last_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="lastName" value="${lastName}" id="last-name" role="input" />
|
||||
|
||||
<label for="email-address">Email address<span class="requiredHint"> *</span></label>
|
||||
<label for="email-address">${strings.email_address}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="emailAddress" value="${emailAddress}" id="email-address" role="input" />
|
||||
|
||||
<#if emailIsEnabled??>
|
||||
<p class="note">
|
||||
Note: An email will be sent to the address entered above notifying
|
||||
that an account has been created.
|
||||
</p>
|
||||
<p class="note">${strings.first_time_login_note}</p>
|
||||
</#if>
|
||||
|
||||
<p><input type="submit" name="submit" value="Create account" class="submit"/> or <a class="cancel" href="${urls.home}" title="cancel">Cancel</a></p>
|
||||
<p><input type="submit" name="submit" value="${strings.create_account}" class="submit"/>
|
||||
${strings.or}
|
||||
<a class="cancel" href="${urls.home}" title="${string.cancel_title}">${strings.cancel_link}</a>
|
||||
</p>
|
||||
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -2,42 +2,20 @@
|
|||
|
||||
<#-- Confirmation that an account has been created for an externally-authenticated user. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} account has been created." />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Congratulations!</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We have created your new VIVO account associated with ${userAccount.emailAddress}.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks!
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.account_created(siteName) />
|
||||
|
||||
<#assign text>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign html = strings.first_time_external_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
Congratulations!
|
||||
|
||||
We have created your new VIVO account associated with
|
||||
${userAccount.emailAddress}.
|
||||
|
||||
Thanks!
|
||||
</#assign>
|
||||
<#assign text = strings.first_time_external_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -4,20 +4,19 @@
|
|||
|
||||
<#import "userAccounts-accountsNav.ftl" as p>
|
||||
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<form method="POST" action="${formUrls.add}" id="add-account" class="customForm" role="Add account">
|
||||
<h3><span>User accounts | </span><input type="submit" class="submit add-account" value="Add new account" /></h3>
|
||||
<h3><span>${strings.user_accounts_link} | </span><input type="submit" class="submit add-account" value="${strings.add_new_account}" /></h3>
|
||||
</form>
|
||||
|
||||
<#if newUserAccount?? >
|
||||
<section class="account-feedback">
|
||||
<p>
|
||||
A new account for
|
||||
<a href="${newUserAccount.editUrl}" title="new account">${newUserAccount.firstName} ${newUserAccount.lastName}</a>
|
||||
was successfully created.
|
||||
<#if emailWasSent?? >
|
||||
A notification email has been sent to ${newUserAccount.emailAddress}
|
||||
with instructions for activating the account and creating a password.
|
||||
</#if>
|
||||
${strings.new_account_1}
|
||||
<a href="${newUserAccount.editUrl}" title="${strings.new_account_title}">${newUserAccount.firstName} ${newUserAccount.lastName}</a>
|
||||
${strings.new_account_2}
|
||||
<#if emailWasSent?? >${strings.new_account_notification(newUserAccount.emailAddress)}</#if>
|
||||
</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
@ -25,14 +24,10 @@
|
|||
<#if updatedUserAccount?? >
|
||||
<section class="account-feedback">
|
||||
<p>
|
||||
The account for
|
||||
<a href="${updatedUserAccount.editUrl}" title="updated account">${updatedUserAccount.firstName} ${updatedUserAccount.lastName}</a>
|
||||
has been updated.
|
||||
<#if emailWasSent?? >
|
||||
A confirmation email has been sent to ${updatedUserAccount.emailAddress}
|
||||
with instructions for resetting a password.
|
||||
The password will not be reset until the user follows the link provided in this email.
|
||||
</#if>
|
||||
${strings.updated_account_1}
|
||||
<a href="${updatedUserAccount.editUrl}" title="${strings.updated_account_title}}">${updatedUserAccount.firstName} ${updatedUserAccount.lastName}</a>
|
||||
${strings.updated_account_2}
|
||||
<#if emailWasSent?? >${strings.updated_account_notification(updatedUserAccount.emailAddress)}</#if>
|
||||
</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
@ -40,7 +35,7 @@
|
|||
<#if deletedAccountCount?? >
|
||||
<section class="account-feedback">
|
||||
<p>
|
||||
Deleted ${deletedAccountCount} accounts.
|
||||
${strings.deleted_accounts(deletedAccountCount)}
|
||||
</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
@ -48,7 +43,7 @@
|
|||
<section id="filter-roles">
|
||||
<form method="POST" action="${formUrls.list}" class="customForm" role="filter by roles">
|
||||
<select name="roleFilterUri" id="roleFilterUri">
|
||||
<option value="" <#if roleFilterUri = "">selected</#if> >Filter by roles</option>
|
||||
<option value="" <#if roleFilterUri = "">selected</#if> >${strings.filter_by_roles}</option>
|
||||
<#list roles as role>
|
||||
<option value="${formUrls.list}?roleFilterUri=${role.uri?url}" <#if roleFilterUri = role.uri>selected</#if> >${role.label}</option>
|
||||
</#list>
|
||||
|
@ -60,7 +55,7 @@
|
|||
</select>
|
||||
|
||||
<#if roleFilterUri?has_content>
|
||||
<span><a href="${formUrls.list}" title="view all acounts"> View all accounts</a></span>
|
||||
<span><a href="${formUrls.list}" title="${strings.view_all_accounts_title}">${strings.view_all_accounts}</a></span>
|
||||
</#if>
|
||||
</form>
|
||||
</section>
|
||||
|
@ -68,7 +63,7 @@
|
|||
<section id="search-accounts">
|
||||
<form method="POST" action="${formUrls.list}" class="customForm" role="search accounts">
|
||||
<input type="text" name="searchTerm" />
|
||||
<input class="submit" type="submit" value="Search accounts"/>
|
||||
<input class="submit" type="submit" value="${strings.search_accounts_button}"/>
|
||||
<!--
|
||||
When searchTerm changes,
|
||||
set pageIndex to 1
|
||||
|
@ -80,64 +75,64 @@
|
|||
</section>
|
||||
<#if searchTerm?has_content>
|
||||
<section id="search-feedback">
|
||||
<p>Search results for "<strong>${searchTerm}</strong>" | <span><a href="${formUrls.list}" title="view all accounts"> View all accounts</a></span></p>
|
||||
<p>${strings.accounts_search_results} "<strong>${searchTerm}</strong>" | <span><a href="${formUrls.list}" title="${strings.view_all_accounts_title}">${strings.view_all_accounts}</a></span></p>
|
||||
</section>
|
||||
</#if>
|
||||
<form method="POST" action="${formUrls.list}" id="account-display" class="customForm" role="accounts display">
|
||||
<@p.accountsNav />
|
||||
|
||||
<table id="account">
|
||||
<caption>Account Management</caption>
|
||||
<caption>${strings.account_management}</caption>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"> <input class="delete-all hidden" type="checkbox" name="delete-all">
|
||||
Email Address
|
||||
${strings.email_address}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=email&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=email&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=email&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=email&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
|
||||
<th scope="col">
|
||||
First name
|
||||
${strings.first_name}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=firstName&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=firstName&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=firstName&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=firstName&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
|
||||
<th scope="col">
|
||||
Last name
|
||||
${strings.last_name}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=lastName&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=lastName&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=lastName&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=lastName&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
|
||||
<th scope="col">
|
||||
Status
|
||||
${strings.status}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=status&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=status&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=status&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=status&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
|
||||
<th scope="col">Roles</th>
|
||||
<th scope="col">${strings.roles}</th>
|
||||
|
||||
<th scope="col">
|
||||
Login count
|
||||
${strings.login_count}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=count&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=count&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=count&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=count&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
|
||||
<th scope="col">
|
||||
Last Login
|
||||
${strings.last_login}
|
||||
<nav class="account-alpha-browse">
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=lastLogin&orderDirection=ASC" title="ascending order"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=lastLogin&orderDirection=DESC" title="descending order"></a>
|
||||
<a class="sort-asc" href="?accountsPerPage=${accountsPerPage}&orderField=lastLogin&orderDirection=ASC" title="${strings.ascending_order}"></a>
|
||||
<a class="sort-desc" href="?accountsPerPage=${accountsPerPage}&orderField=lastLogin&orderDirection=DESC" title="${strings.descending_order}"></a>
|
||||
</nav>
|
||||
</th>
|
||||
</tr>
|
||||
|
@ -148,7 +143,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<#if account.deletable>
|
||||
<input type="checkbox" name="deleteAccount" value="${account.uri}" title="select this account to delete it"/>
|
||||
<input type="checkbox" name="deleteAccount" value="${account.uri}" title="${strings.select_account_to_delete}"/>
|
||||
<#assign disableDeleteAccount = '' />
|
||||
<!-- ignored unless submit action is formUrls.delete -->
|
||||
<#else>
|
||||
|
@ -156,7 +151,7 @@
|
|||
</#if>
|
||||
|
||||
<#if account.editUrl != "">
|
||||
<a ${disableDeleteAccount} href="${account.editUrl}" title="click to view account details">${account.emailAddress}</a>
|
||||
<a ${disableDeleteAccount} href="${account.editUrl}" title="${strings.click_to_view_account}">${account.emailAddress}</a>
|
||||
<!-- when this link is clicked, editAccount is noticed and all other fields are ignored. -->
|
||||
<#else>
|
||||
${account.emailAddress}
|
||||
|
@ -185,5 +180,10 @@
|
|||
<@p.accountsNav />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
confirm_delete_account_singular = "${strings.confirm_delete_account_singular}"
|
||||
confirm_delete_account_plural = "${strings.confirm_delete_account_plural}"
|
||||
</script>
|
||||
|
||||
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/account/account.css" />')}
|
||||
${scripts.add('<script type="text/javascript" src="${urls.base}/js/account/accountUtils.js"></script>')}
|
|
@ -2,58 +2,48 @@
|
|||
|
||||
<#-- Template for editing a user account -->
|
||||
|
||||
<h3>My account</h3>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<h3>${strings.myAccount_heading}</h3>
|
||||
|
||||
<#if errorEmailIsEmpty??>
|
||||
<#assign errorMessage = "You must supply an email address." />
|
||||
<#assign errorMessage = strings.error_no_email />
|
||||
<#elseif errorEmailInUse??>
|
||||
<#assign errorMessage = strings.error_email_already_exists />
|
||||
<#elseif errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = strings.error_invalid_email(emailAddress) />
|
||||
<#elseif errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_first_name />
|
||||
<#elseif errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_last_name />
|
||||
<#elseif errorNoRoleSelected??>
|
||||
<#assign errorMessage = strings.error_no_role />
|
||||
<#elseif errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_password />
|
||||
<#elseif errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = strings.error_password_length(minimumLength, maximumLength) />
|
||||
<#elseif errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = strings.error_password_mismatch />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInUse??>
|
||||
<#assign errorMessage = "An account with that email address already exists." />
|
||||
</#if>
|
||||
|
||||
<#if errorEmailInvalidFormat??>
|
||||
<#assign errorMessage = "'${emailAddress}' is not a valid email address." />
|
||||
</#if>
|
||||
|
||||
<#if errorFirstNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a first name." />
|
||||
</#if>
|
||||
|
||||
<#if errorLastNameIsEmpty??>
|
||||
<#assign errorMessage = "You must supply a last name." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = "No password supplied." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = "Password must be between ${minimumLength} and ${maximumLength} characters." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = "Passwords do not match." />
|
||||
</#if>
|
||||
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon"/>
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}" />
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<#if confirmChange??>
|
||||
<#assign confirmMessage = "Your changes have been saved." />
|
||||
<#assign confirmMessage = strings.myAccount_confirm_changes />
|
||||
</#if>
|
||||
|
||||
<#if confirmEmailSent??>
|
||||
<#assign confirmMessage = "Your changes have been saved. A confirmation email has been sent to ${emailAddress}." />
|
||||
<#assign confirmMessage = strings.myAccount_confirm_changes_plus_note(emailAddress) />
|
||||
</#if>
|
||||
|
||||
<#if confirmMessage?has_content>
|
||||
<section class="account-feedback" role="alert">
|
||||
<p><img class="middle" src="${urls.images}/iconConfirmation.png" alert="Confirmation icon"/> ${confirmMessage}</p>
|
||||
<p><img class="middle" src="${urls.images}/iconConfirmation.png" alt="${strings.alt_confirmation}"/> ${confirmMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
|
@ -63,30 +53,34 @@
|
|||
<#include "userAccounts-myProxiesPanel.ftl">
|
||||
</#if>
|
||||
|
||||
<label for="email-address">Email address<span class="requiredHint"> *</span></label>
|
||||
<label for="email-address">${strings.email_address}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="emailAddress" value="${emailAddress}" id="email-address" role="input" />
|
||||
|
||||
<p class="note">Note: if email changes, a confirmation email will<br />be sent to the new email address entered above.</p>
|
||||
<p class="note">${strings.email_change_will_be_confirmed}</p>
|
||||
|
||||
<label for="first-name">First name<span class="requiredHint"> *</span></label>
|
||||
<label for="first-name">${strings.first_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="firstName" value="${firstName}" id="first-name" role="input" />
|
||||
|
||||
<label for="last-name">Last name<span class="requiredHint"> *</span></label>
|
||||
<label for="last-name">${strings.last_name}<span class="requiredHint"> *</span></label>
|
||||
<input type="text" name="lastName" value="${lastName}" id="last-name" role="input" />
|
||||
|
||||
<#if !externalAuth??>
|
||||
<label for="new-password">New password</label>
|
||||
<label for="new-password">${strings.new_password}</label>
|
||||
<input type="password" name="newPassword" value="${newPassword}" id="new-password" role="input" />
|
||||
|
||||
<p class="note">Minimum of ${minimumLength} characters in length.<br />If left blank, the password will not be changed.</p>
|
||||
<p class="note">${strings.minimum_password_length(minimumLength)}<br />${strings.leave_password_unchanged}</p>
|
||||
|
||||
<label for="confirm-password">Confirm new password</label>
|
||||
<label for="confirm-password">${strings.confirm_password}</label>
|
||||
<input type="password" name="confirmPassword" value="${confirmPassword}" id="confirm-password" role="input" />
|
||||
</#if>
|
||||
|
||||
<p><input type="submit" id="submitMyAccount" name="submitMyAccount" value="Save changes" class="submit" disabled /> or <a class="cancel" href="${urls.referringPage}" title="cancel">Cancel</a></p>
|
||||
<p>
|
||||
<input type="submit" id="submitMyAccount" name="submitMyAccount" value="${strings.save_changes}" class="submit" disabled />
|
||||
${strings.or}
|
||||
<a class="cancel" href="${urls.referringPage}" title="${strings.cancel_title}">${strings.cancel_link}</a>
|
||||
</p>
|
||||
|
||||
<p class="requiredHint">* required fields</p>
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -2,15 +2,21 @@
|
|||
|
||||
<#-- Template for setting the account reference field, which can also associate a profile with the user account -->
|
||||
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<section id="edit-myProxy" name="proxyProxiesPanel" role="region">
|
||||
<h4>Who can edit my profile</h4>
|
||||
<h4>${strings.who_can_edit_profile}</h4>
|
||||
|
||||
<label for="addProfileEditor">Add profile editor</label>
|
||||
<input id="addProfileEditor" type="text" name="proxySelectorAC" class="acSelector" size="35" value="Select an existing last name" role="input" /><span><img class="loading-profileMyAccoount hidden" src="${urls.images}/indicatorWhite.gif" /></span>
|
||||
<label for="addProfileEditor">${strings.add_profile_editor}</label>
|
||||
<input id="addProfileEditor" type="text" name="proxySelectorAC" class="acSelector" size="35"
|
||||
value="${strings.select_existing_last_name}" role="input" />
|
||||
<span><img class="loading-profileMyAccoount hidden" src="${urls.images}/indicatorWhite.gif" /></span>
|
||||
|
||||
<p class="search-status"><span name='proxySelectorSearchStatus' moreCharsText='type more characters' noMatchText='no match'> </span></p>
|
||||
<p class="search-status">
|
||||
<span name='proxySelectorSearchStatus' moreCharsText='${strings.type_more_characters}' noMatchText='${strings.no_match}'> </span>
|
||||
</p>
|
||||
<p name="excludeUri" style="display: none">${myAccountUri}<p>
|
||||
<p class="selected-editors">Selected editors:</p>
|
||||
<p class="selected-editors">${strings.selected_editors}:</p>
|
||||
|
||||
<#-- Magic ul that holds all of the proxy data and the template that shows how to display it. -->
|
||||
<ul name="proxyData" role="navigation">
|
||||
|
@ -35,7 +41,7 @@
|
|||
|
||||
<p class="proxy-info">%label% | <span class="class-label">%classLabel%</span>
|
||||
<br />
|
||||
<a class='remove-proxy' href="." templatePart="remove" title="remove selection">Remove selection</a>
|
||||
<a class='remove-proxy' href="." templatePart="remove" title="${strings.remove_selection_title}">${strings.remove_selection}</a>
|
||||
|
||||
<input type="hidden" name="proxyUri" value="%uri%" role="input" />
|
||||
</p>
|
||||
|
|
|
@ -2,42 +2,20 @@
|
|||
|
||||
<#-- Confirmation that an password has been created. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} password has successfully been created." />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Password successfully created.</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Your new password associated with ${userAccount.emailAddress} has been created.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thank you.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.password_created_subject(siteName) />
|
||||
|
||||
<#assign text>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign html = strings.password_created_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
Password successfully created.
|
||||
|
||||
Your new password associated with ${userAccount.emailAddress}
|
||||
has been created.
|
||||
|
||||
Thank you.
|
||||
</#assign>
|
||||
<#assign text = strings.password_created_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -2,42 +2,20 @@
|
|||
|
||||
<#-- Confirmation that a password has been reset. -->
|
||||
|
||||
<#assign subject = "Your ${siteName} password changed." />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Password successfully changed.</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Your new password associated with ${userAccount.emailAddress} has been changed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thank you.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.password_reset_complete_subject(siteName) />
|
||||
|
||||
<#assign text>
|
||||
${userAccount.firstName} ${userAccount.lastName}
|
||||
<#assign html = strings.password_reset_complete_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
Password successfully changed.
|
||||
|
||||
Your new password associated with ${userAccount.emailAddress}
|
||||
has been changed.
|
||||
|
||||
Thank you.
|
||||
</#assign>
|
||||
<#assign text = strings.password_reset_complete_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -2,60 +2,22 @@
|
|||
|
||||
<#-- Confirmation email for user account password reset -->
|
||||
|
||||
<#assign subject = "${siteName} reset password request" />
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<#assign html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${subject}</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Dear ${userAccount.firstName} ${userAccount.lastName}:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We have received a request to reset the password for your ${siteName} account (${userAccount.emailAddress}).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Please follow the instructions below to proceed with your password reset.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you did not request this new account you can safely ignore this email.
|
||||
This request will expire if not acted upon within 30 days.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Click on the link below or paste it into your browser's address bar to reset your password
|
||||
using our secure server.
|
||||
</p>
|
||||
|
||||
<p>${passwordLink}</p>
|
||||
|
||||
<p>Thank you!</p>
|
||||
</body>
|
||||
</html>
|
||||
</#assign>
|
||||
<#assign subject = strings.password_reset_pending_subject(siteName) />
|
||||
|
||||
<#assign text>
|
||||
Dear ${userAccount.firstName} ${userAccount.lastName}:
|
||||
|
||||
We have received a request to reset the password for your ${siteName} account
|
||||
(${userAccount.emailAddress}).
|
||||
<#assign html = strings.password_reset_pending_email_html(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress,
|
||||
passwordLink) />
|
||||
|
||||
Please follow the instructions below to proceed with your password reset.
|
||||
|
||||
If you did not request this new account you can safely ignore this email.
|
||||
This request will expire if not acted upon within 30 days.
|
||||
|
||||
Paste the link below into your browser's address bar to reset your password
|
||||
using our secure server.
|
||||
|
||||
${passwordLink}
|
||||
|
||||
Thank you!
|
||||
</#assign>
|
||||
<#assign text = strings.password_reset_pending_email_text(siteName,
|
||||
subject,
|
||||
userAccount.firstName,
|
||||
userAccount.lastName,
|
||||
userAccount.emailAddress,
|
||||
passwordLink) />
|
||||
|
||||
<@email subject=subject html=html text=text />
|
|
@ -2,45 +2,43 @@
|
|||
|
||||
<#-- Template for adding a user account -->
|
||||
|
||||
<h3>Reset your Password</h3>
|
||||
<#assign strings = i18n() />
|
||||
|
||||
<p>Please enter your new password for ${userAccount.emailAddress}</p>
|
||||
<h3>${strings.reset_your_password}</h3>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = "No password supplied." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = "Password must be between ${minimumLength} and ${maximumLength} characters." />
|
||||
</#if>
|
||||
|
||||
<#if errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = "Passwords do not match." />
|
||||
</#if>
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="Error alert icon"/>
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
<p>${strings.enter_new_password(userAccount.emailAddress)}</p>
|
||||
|
||||
<#if errorPasswordIsEmpty??>
|
||||
<#assign errorMessage = strings.error_no_password />
|
||||
<#elseif errorPasswordIsWrongLength??>
|
||||
<#assign errorMessage = strings.error_password_length(minimumLength, maximumLength) />
|
||||
<#elseif errorPasswordsDontMatch??>
|
||||
<#assign errorMessage = strings.error_password_mismatch />
|
||||
</#if>
|
||||
|
||||
<#if errorMessage?has_content>
|
||||
<section id="error-alert" role="alert">
|
||||
<img src="${urls.images}/iconAlert.png" width="24" height="24" alert="${strings.alt_error_alert}"/>
|
||||
<p>${errorMessage}</p>
|
||||
</section>
|
||||
</#if>
|
||||
|
||||
<section id="reset-password" role="region">
|
||||
<form method="POST" action="${formUrls.resetPassword}" class="customForm" role="create password">
|
||||
<input type="hidden" name="user" value="${userAccount.emailAddress}" />
|
||||
<input type="hidden" name="key" value="${userAccount.passwordLinkExpiresHash}" />
|
||||
|
||||
<label for="new-password">Password<span class="requiredHint"> *</span></label>
|
||||
<label for="new-password">${strings.new_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="newPassword" value="${newPassword}" id="new-password" role="input" />
|
||||
|
||||
<p class="note">Minimum of ${minimumLength} characters in length.</p>
|
||||
<p class="note">${strings.minimum_password_length(minimumLength)}</p>
|
||||
|
||||
<label for="confirm-password">Confirm Password<span class="requiredHint"> *</span></label>
|
||||
<label for="confirm-password">${strings.confirm_password}<span class="requiredHint"> *</span></label>
|
||||
<input type="password" name="confirmPassword" value="${confirmPassword}" id="confirm-password" role="input" />
|
||||
|
||||
<p><input type="submit" name="submit" value="Save changes" class="submit" /></p>
|
||||
<p><input type="submit" name="submit" value="${strings.save_changes}" class="submit"/></p>
|
||||
|
||||
<p class="requiredHint">* required fields</p>
|
||||
<p class="requiredHint">* ${strings.required_fields}</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue