ChangePasswordForm (#694)
erweitert um die Ausgabe des Usernamens und einen Einleitungstext. Anpassung am Theme sind nicht notwendig, da es sich um Bebop-Felder handelt. git-svn-id: https://svn.libreccm.org/ccm/trunk@1530 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
cfff083567
commit
5e60eed0aa
|
|
@ -44,43 +44,44 @@ import com.arsdigita.web.Web;
|
||||||
import com.arsdigita.web.URL;
|
import com.arsdigita.web.URL;
|
||||||
import com.arsdigita.web.ReturnSignal;
|
import com.arsdigita.web.ReturnSignal;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
import com.arsdigita.kernel.Party;
|
||||||
import com.arsdigita.kernel.User;
|
import com.arsdigita.kernel.User;
|
||||||
import com.arsdigita.kernel.UserAuthentication;
|
import com.arsdigita.kernel.UserAuthentication;
|
||||||
import com.arsdigita.kernel.security.RecoveryLoginModule;
|
import com.arsdigita.kernel.security.RecoveryLoginModule;
|
||||||
import com.arsdigita.mail.Mail;
|
import com.arsdigita.mail.Mail;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
import java.lang.reflect.Array;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Form that allows a user to change their password by entering their old
|
* A Form that allows a user to change their password by entering their old
|
||||||
* password, a new password, and a confirmation of their new password.
|
* password, a new password, and a confirmation of their new password. Requires
|
||||||
* Requires that the user is logged in. Requires that new password differ
|
* that the user is logged in. Requires that new password differ from old and
|
||||||
* from old and meet strong password requirements. If the user is
|
* meet strong password requirements. If the user is recovering from a lost
|
||||||
* recovering from a lost password (UserContext.isRecovering() is true),
|
* password (UserContext.isRecovering() is true), does not require or display
|
||||||
* does not require or display the old password parameter and does not
|
* the old password parameter and does not require that new password differ from
|
||||||
* require that new password differ from old. Mails the user to notify of
|
* old. Mails the user to notify of password change. Redirects user to workspace
|
||||||
* password change. Redirects user to workspace or return_url if set.
|
* or return_url if set.
|
||||||
*
|
*
|
||||||
* @author Sameer Ajmani
|
* @author Sameer Ajmani
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
public class ChangePasswordForm extends Form
|
public class ChangePasswordForm extends Form
|
||||||
implements FormProcessListener,
|
implements FormProcessListener,
|
||||||
FormValidationListener {
|
FormValidationListener {
|
||||||
|
|
||||||
public static final String versionId = "$Id: ChangePasswordForm.java 699 2005-08-12 12:35:18Z sskracic $ by $Author: sskracic $, $DateTime: 2004/08/16 18:10:38 $";
|
public static final String versionId = "$Id: ChangePasswordForm.java 699 2005-08-12 12:35:18Z sskracic $ by $Author: sskracic $, $DateTime: 2004/08/16 18:10:38 $";
|
||||||
private static final Logger s_log =
|
private static final Logger s_log =
|
||||||
Logger.getLogger(ChangePasswordForm.class.getName());
|
Logger.getLogger(ChangePasswordForm.class.getName());
|
||||||
|
|
||||||
final static String CHANGE_PASSWORD_FORM_NAME = "change-password";
|
final static String CHANGE_PASSWORD_FORM_NAME = "change-password";
|
||||||
final static String OLD_PASSWORD_PARAM_NAME = "old-password";
|
final static String OLD_PASSWORD_PARAM_NAME = "old-password";
|
||||||
final static String NEW_PASSWORD_PARAM_NAME = "new-password";
|
final static String NEW_PASSWORD_PARAM_NAME = "new-password";
|
||||||
final static String CONFIRM_PASSWORD_PARAM_NAME = "confirm-password";
|
final static String CONFIRM_PASSWORD_PARAM_NAME = "confirm-password";
|
||||||
final static String RETURN_URL_PARAM_NAME =
|
final static String RETURN_URL_PARAM_NAME =
|
||||||
LoginHelper.RETURN_URL_PARAM_NAME;
|
LoginHelper.RETURN_URL_PARAM_NAME;
|
||||||
|
|
||||||
private UserAuthenticationListener m_listener =
|
private UserAuthenticationListener m_listener =
|
||||||
new UserAuthenticationListener();
|
new UserAuthenticationListener();
|
||||||
private Hidden m_returnURL;
|
private Hidden m_returnURL;
|
||||||
private Hidden m_recovery;
|
private Hidden m_recovery;
|
||||||
private Label m_oldPasswordLabel;
|
private Label m_oldPasswordLabel;
|
||||||
|
|
@ -96,13 +97,14 @@ public class ChangePasswordForm extends Form
|
||||||
super.register(p);
|
super.register(p);
|
||||||
p.addRequestListener(m_listener);
|
p.addRequestListener(m_listener);
|
||||||
p.addActionListener(new ActionListener() {
|
p.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
PageState state = e.getPageState();
|
public void actionPerformed(ActionEvent e) {
|
||||||
boolean visible = !isRecovering();
|
PageState state = e.getPageState();
|
||||||
m_oldPasswordLabel.setVisible(state, visible);
|
boolean visible = !isRecovering();
|
||||||
m_oldPassword.setVisible(state, visible);
|
m_oldPasswordLabel.setVisible(state, visible);
|
||||||
}
|
m_oldPassword.setVisible(state, visible);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChangePasswordForm(Container panel) {
|
public ChangePasswordForm(Container panel) {
|
||||||
|
|
@ -113,8 +115,7 @@ public class ChangePasswordForm extends Form
|
||||||
addProcessListener(this);
|
addProcessListener(this);
|
||||||
|
|
||||||
// save the recovery credential as a hidden parameter
|
// save the recovery credential as a hidden parameter
|
||||||
m_recovery = new Hidden(new StringParameter
|
m_recovery = new Hidden(new StringParameter(RecoveryLoginModule.getParamName()));
|
||||||
(RecoveryLoginModule.getParamName()));
|
|
||||||
m_recovery.setPassIn(true);
|
m_recovery.setPassIn(true);
|
||||||
add(m_recovery);
|
add(m_recovery);
|
||||||
|
|
||||||
|
|
@ -123,10 +124,28 @@ public class ChangePasswordForm extends Form
|
||||||
m_returnURL.setPassIn(true);
|
m_returnURL.setPassIn(true);
|
||||||
add(m_returnURL);
|
add(m_returnURL);
|
||||||
|
|
||||||
|
|
||||||
|
Party party = Kernel.getContext().getParty();
|
||||||
|
|
||||||
|
if (party != null && party instanceof User) {
|
||||||
|
User user = (User) party;
|
||||||
|
user.getPersonName().toString();
|
||||||
|
|
||||||
|
// Add a describtive text and the user name to the form for user comfort
|
||||||
|
Label greeting = new Label(
|
||||||
|
LoginHelper.getMessage("login.changePasswortForm.greeting",
|
||||||
|
new Object[] { user.getPersonName().toString() } )
|
||||||
|
);
|
||||||
|
|
||||||
|
greeting.setFontWeight(Label.BOLD);
|
||||||
|
greeting.setClassAttr("greeting");
|
||||||
|
add(greeting);
|
||||||
|
}
|
||||||
|
|
||||||
|
add(new Label(LoginHelper.getMessage("login.changePasswortForm.introText")));
|
||||||
|
|
||||||
// old password
|
// old password
|
||||||
m_oldPasswordLabel = new Label
|
m_oldPasswordLabel = new Label(LoginHelper.getMessage("login.changePasswordForm.oldPasswordLabel"));
|
||||||
(LoginHelper.getMessage
|
|
||||||
("login.changePasswordForm.oldPasswordLabel"));
|
|
||||||
add(m_oldPasswordLabel);
|
add(m_oldPasswordLabel);
|
||||||
m_oldPassword = new Password(OLD_PASSWORD_PARAM_NAME);
|
m_oldPassword = new Password(OLD_PASSWORD_PARAM_NAME);
|
||||||
// don't use NotNullValidationListener because
|
// don't use NotNullValidationListener because
|
||||||
|
|
@ -134,93 +153,79 @@ public class ChangePasswordForm extends Form
|
||||||
add(m_oldPassword);
|
add(m_oldPassword);
|
||||||
|
|
||||||
// new password
|
// new password
|
||||||
Object[] params = new Object[] {
|
Object[] params = new Object[]{
|
||||||
new Integer(PasswordValidationListener.MIN_LENGTH) };
|
new Integer(PasswordValidationListener.MIN_LENGTH)};
|
||||||
add(new Label(LoginHelper.getMessage
|
add(new Label(LoginHelper.getMessage("login.changePasswordForm.newPasswordLabel", params)));
|
||||||
("login.changePasswordForm.newPasswordLabel", params)));
|
|
||||||
m_newPassword = new Password(NEW_PASSWORD_PARAM_NAME);
|
m_newPassword = new Password(NEW_PASSWORD_PARAM_NAME);
|
||||||
m_newPassword.addValidationListener
|
m_newPassword.addValidationListener(new PasswordValidationListener());
|
||||||
(new PasswordValidationListener());
|
|
||||||
add(m_newPassword);
|
add(m_newPassword);
|
||||||
|
|
||||||
// confirm new password
|
// confirm new password
|
||||||
add(new Label(LoginHelper.getMessage
|
add(new Label(LoginHelper.getMessage("login.changePasswordForm.confirmPasswordLabel")));
|
||||||
("login.changePasswordForm.confirmPasswordLabel")));
|
|
||||||
m_confirmPassword = new Password(CONFIRM_PASSWORD_PARAM_NAME);
|
m_confirmPassword = new Password(CONFIRM_PASSWORD_PARAM_NAME);
|
||||||
// don't use PasswordValidationListener to avoid duplicate errors
|
// don't use PasswordValidationListener to avoid duplicate errors
|
||||||
m_confirmPassword.addValidationListener
|
m_confirmPassword.addValidationListener(new NotNullValidationListener());
|
||||||
(new NotNullValidationListener());
|
|
||||||
add(m_confirmPassword);
|
add(m_confirmPassword);
|
||||||
|
|
||||||
// submit
|
// submit
|
||||||
add(new Submit(LoginHelper.getMessage
|
add(new Submit(LoginHelper.getMessage("login.changePasswordForm.submit")),
|
||||||
("login.changePasswordForm.submit")),
|
ColumnPanel.CENTER | ColumnPanel.FULL_WIDTH);
|
||||||
ColumnPanel.CENTER | ColumnPanel.FULL_WIDTH);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validate(FormSectionEvent event)
|
public void validate(FormSectionEvent event)
|
||||||
throws FormProcessException {
|
throws FormProcessException {
|
||||||
PageState state = event.getPageState();
|
PageState state = event.getPageState();
|
||||||
FormData data = event.getFormData();
|
FormData data = event.getFormData();
|
||||||
try {
|
try {
|
||||||
// get user object
|
// get user object
|
||||||
if (!m_listener.isLoggedIn(state)) {
|
if (!m_listener.isLoggedIn(state)) {
|
||||||
// this error should never appear
|
// this error should never appear
|
||||||
data.addError(LoginHelper.localize
|
data.addError(LoginHelper.localize("login.changePasswordForm.noUserError",
|
||||||
("login.changePasswordForm.noUserError",
|
state.getRequest()));
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
User user = m_listener.getUser(state);
|
User user = m_listener.getUser(state);
|
||||||
|
|
||||||
// get parameter values
|
// get parameter values
|
||||||
String oldPassword = (String)m_oldPassword.getValue(state);
|
String oldPassword = (String) m_oldPassword.getValue(state);
|
||||||
String newPassword = (String)m_newPassword.getValue(state);
|
String newPassword = (String) m_newPassword.getValue(state);
|
||||||
String confirmPassword = (String)
|
String confirmPassword = (String) m_confirmPassword.getValue(state);
|
||||||
m_confirmPassword.getValue(state);
|
|
||||||
|
|
||||||
// check old password unless recovering
|
// check old password unless recovering
|
||||||
if (!isRecovering()) {
|
if (!isRecovering()) {
|
||||||
try {
|
try {
|
||||||
// The old password can never be null or contain leading or
|
// The old password can never be null or contain leading or
|
||||||
// trailing slashes.
|
// trailing slashes.
|
||||||
if (oldPassword == null ||
|
if (oldPassword == null
|
||||||
!oldPassword.trim().equals(oldPassword)) {
|
|| !oldPassword.trim().equals(oldPassword)) {
|
||||||
data.addError
|
data.addError(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.badPasswordError",
|
||||||
(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize
|
state.getRequest()));
|
||||||
("login.changePasswordForm.badPasswordError",
|
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: avoid loading UserAuthentication in both
|
// TODO: avoid loading UserAuthentication in both
|
||||||
// validate() and process() stages
|
// validate() and process() stages
|
||||||
UserAuthentication auth =
|
UserAuthentication auth =
|
||||||
UserAuthentication.retrieveForUser(user);
|
UserAuthentication.retrieveForUser(user);
|
||||||
if (!auth.isValidPassword(oldPassword)) {
|
if (!auth.isValidPassword(oldPassword)) {
|
||||||
data.addError
|
data.addError(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.badPasswordError",
|
||||||
(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize
|
state.getRequest()));
|
||||||
("login.changePasswordForm.badPasswordError",
|
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (DataObjectNotFoundException e) {
|
} catch (DataObjectNotFoundException e) {
|
||||||
throw new UncheckedWrapperException
|
throw new UncheckedWrapperException("Could not get UserAuthentication", e);
|
||||||
("Could not get UserAuthentication", e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check new password
|
// check new password
|
||||||
if (newPassword.equals(oldPassword)) {
|
if (newPassword.equals(oldPassword)) {
|
||||||
data.addError(NEW_PASSWORD_PARAM_NAME, LoginHelper.localize
|
data.addError(NEW_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.mustDifferError",
|
||||||
("login.changePasswordForm.mustDifferError",
|
state.getRequest()));
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!newPassword.equals(confirmPassword)) {
|
if (!newPassword.equals(confirmPassword)) {
|
||||||
data.addError(CONFIRM_PASSWORD_PARAM_NAME, LoginHelper.localize
|
data.addError(CONFIRM_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.mustMatchError",
|
||||||
("login.changePasswordForm.mustMatchError",
|
state.getRequest()));
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -234,16 +239,15 @@ public class ChangePasswordForm extends Form
|
||||||
}
|
}
|
||||||
|
|
||||||
public void process(FormSectionEvent event)
|
public void process(FormSectionEvent event)
|
||||||
throws FormProcessException {
|
throws FormProcessException {
|
||||||
PageState state = event.getPageState();
|
PageState state = event.getPageState();
|
||||||
FormData data = event.getFormData();
|
FormData data = event.getFormData();
|
||||||
|
|
||||||
// get user object
|
// get user object
|
||||||
if (!m_listener.isLoggedIn(state)) {
|
if (!m_listener.isLoggedIn(state)) {
|
||||||
// this error should never appear (checked in validate)
|
// this error should never appear (checked in validate)
|
||||||
data.addError(LoginHelper.localize
|
data.addError(LoginHelper.localize("login.changePasswordForm.noUserError",
|
||||||
("login.changePasswordForm.noUserError",
|
state.getRequest()));
|
||||||
state.getRequest()));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
User user = m_listener.getUser(state);
|
User user = m_listener.getUser(state);
|
||||||
|
|
@ -251,14 +255,13 @@ public class ChangePasswordForm extends Form
|
||||||
// set new password
|
// set new password
|
||||||
try {
|
try {
|
||||||
UserAuthentication auth =
|
UserAuthentication auth =
|
||||||
UserAuthentication.retrieveForUser(user);
|
UserAuthentication.retrieveForUser(user);
|
||||||
String newPassword = (String)m_newPassword.getValue(state);
|
String newPassword = (String) m_newPassword.getValue(state);
|
||||||
auth.setPassword(newPassword);
|
auth.setPassword(newPassword);
|
||||||
s_log.debug("committing password change");
|
s_log.debug("committing password change");
|
||||||
auth.save();
|
auth.save();
|
||||||
} catch (DataObjectNotFoundException e) {
|
} catch (DataObjectNotFoundException e) {
|
||||||
throw new UncheckedWrapperException
|
throw new UncheckedWrapperException("Could not get UserAuthentication", e);
|
||||||
("Could not get UserAuthentication", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// mail report to user
|
// mail report to user
|
||||||
|
|
@ -268,17 +271,17 @@ public class ChangePasswordForm extends Form
|
||||||
HttpServletRequest req = state.getRequest();
|
HttpServletRequest req = state.getRequest();
|
||||||
|
|
||||||
String to =
|
String to =
|
||||||
user.getPrimaryEmail().toString();
|
user.getPrimaryEmail().toString();
|
||||||
String from =
|
String from =
|
||||||
Kernel.getSecurityConfig().getAdminContactEmail();
|
Kernel.getSecurityConfig().getAdminContactEmail();
|
||||||
String name =
|
String name =
|
||||||
user.getPersonName().getGivenName();
|
user.getPersonName().getGivenName();
|
||||||
String subject =
|
String subject =
|
||||||
LoginHelper.localize("login.changePasswordForm.mailSubject", req);
|
LoginHelper.localize("login.changePasswordForm.mailSubject", req);
|
||||||
String body =
|
String body =
|
||||||
LoginHelper.localize("login.changePasswordForm.mailBody",
|
LoginHelper.localize("login.changePasswordForm.mailBody",
|
||||||
new Object[] { name },
|
new Object[]{name},
|
||||||
req);
|
req);
|
||||||
|
|
||||||
// try to send the message, but don't throw the exception
|
// try to send the message, but don't throw the exception
|
||||||
// if it fails so that the password change is comitted
|
// if it fails so that the password change is comitted
|
||||||
|
|
@ -290,9 +293,9 @@ public class ChangePasswordForm extends Form
|
||||||
s_log.error("Could not notify user of password change", e);
|
s_log.error("Could not notify user of password change", e);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s_log.debug("Could not notify user of password change: " +
|
s_log.debug("Could not notify user of password change: "
|
||||||
"null email, user ID: " +
|
+ "null email, user ID: "
|
||||||
user.getID());
|
+ user.getID());
|
||||||
}
|
}
|
||||||
|
|
||||||
final HttpServletRequest req = state.getRequest();
|
final HttpServletRequest req = state.getRequest();
|
||||||
|
|
|
||||||
|
|
@ -60,3 +60,5 @@ login.error.badAnswer=Incorrect answer
|
||||||
login.error.badEmail=Unrecognized email address
|
login.error.badEmail=Unrecognized email address
|
||||||
login.error.bannedEmail=User cannot currently access system
|
login.error.bannedEmail=User cannot currently access system
|
||||||
login.error.loginFail=Login failed
|
login.error.loginFail=Login failed
|
||||||
|
login.changePasswortForm.greeting=Welcome {0}
|
||||||
|
login.changePasswortForm.introText=To change your passwort please fill out this form.
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
login.userEditPage.title=Profil bearbeiten
|
login.userEditPage.title=Profil bearbeiten
|
||||||
login.userEditPage.changePasswordLink=Passwort \u00E4ndern
|
login.userEditPage.changePasswordLink=Passwort \u00e4ndern
|
||||||
login.workspacePage.title=Ihr pers\u00F6nlicher Bereich
|
login.workspacePage.title=Ihr pers\u00f6nlicher Bereich
|
||||||
login.explainCookiesPage.title=E-Mail Adresse und Passwort werden gesichert
|
login.explainCookiesPage.title=E-Mail Adresse und Passwort werden gesichert
|
||||||
login.userInfo.logoutLink=Abmelden
|
login.userInfo.logoutLink=Abmelden
|
||||||
login.userInfo.editProfileLink=Profil bearbeiten
|
login.userInfo.editProfileLink=Profil bearbeiten
|
||||||
login.userInfo.changePasswordLink=Passwort \u00E4ndern
|
login.userInfo.changePasswordLink=Passwort \u00e4ndern
|
||||||
login.userRegistrationForm.title=Anmelden
|
login.userRegistrationForm.title=Anmelden
|
||||||
login.userRegistrationForm.email=Ihre E-Mail Adresse\:
|
login.userRegistrationForm.email=Ihre E-Mail Adresse\:
|
||||||
login.userRegistrationForm.screenName=Ihr Benutzername\:
|
login.userRegistrationForm.screenName=Ihr Benutzername\:
|
||||||
|
|
@ -14,49 +14,51 @@ login.userRegistrationForm.explainCookieLink=(Hilfe)
|
||||||
login.userRegistrationForm.forgotPasswordLink=Passwort vergessen?
|
login.userRegistrationForm.forgotPasswordLink=Passwort vergessen?
|
||||||
login.userRegistrationForm.newUserRegister=Neue Benutzer registrieren sich hier
|
login.userRegistrationForm.newUserRegister=Neue Benutzer registrieren sich hier
|
||||||
login.userNewForm.title=Registrieren
|
login.userNewForm.title=Registrieren
|
||||||
login.userNewForm.aboutYouSectionHeader=<h3>\u00DCber mich</h3>
|
login.userNewForm.aboutYouSectionHeader=<h3>\u00dcber mich</h3>
|
||||||
login.userNewForm.securitySectionHeader=<h3>Sicherheit</h3>
|
login.userNewForm.securitySectionHeader=<h3>Sicherheit</h3>
|
||||||
login.userNewForm.securityBlurb=Wie ben\u00F6tigen ein Passwort, um Ihre Identit\u00E4t und Beitr\u00E4ge zu Foren und anderen Aktivit\u00E4ten zu sch\u00FCtzen.
|
login.userNewForm.securityBlurb=Wie ben\u00f6tigen ein Passwort, um Ihre Identit\u00e4t und Beitr\u00e4ge zu Foren und anderen Aktivit\u00e4ten zu sch\u00fctzen.
|
||||||
login.userNewForm.passwordBlurb=W\u00E4hlen Sie ein Passwort aus Gru\u00DFbuchstaben, Kleinbuchstaben, Zahlen und anderen Zeichen. Wenn sie es vergessen, unterst\u00FCtzt Sie der Server bei der Festlegung eines neuen.
|
login.userNewForm.passwordBlurb=W\u00e4hlen Sie ein Passwort aus Gru\u00dfbuchstaben, Kleinbuchstaben, Zahlen und anderen Zeichen. Wenn sie es vergessen, unterst\u00fctzt Sie der Server bei der Festlegung eines neuen.
|
||||||
login.userNewForm.questionBlurb=Wir ben\u00F6tigen eine individuelle Frage und Antwort um sicher zu gehen, dass nur Sie das Passwort \u00E4ndern k\u00F6nnen.
|
login.userNewForm.questionBlurb=Wir ben\u00f6tigen eine individuelle Frage und Antwort um sicher zu gehen, dass nur Sie das Passwort \u00e4ndern k\u00f6nnen.
|
||||||
login.changePasswordForm.oldPasswordLabel=Altes Passwort\:
|
login.changePasswordForm.oldPasswordLabel=Altes Passwort\:
|
||||||
login.changePasswordForm.newPasswordLabel=Neues Passwort (mindestens {0} Zeichen, keine Leertaste)\:
|
login.changePasswordForm.newPasswordLabel=Neues Passwort (mindestens {0} Zeichen, keine Leertaste)\:
|
||||||
login.changePasswordForm.confirmPasswordLabel=Passwort best\u00E4tigen\:
|
login.changePasswordForm.confirmPasswordLabel=Passwort best\u00e4tigen\:
|
||||||
login.changePasswordForm.submit=Ausf\u00FChren
|
login.changePasswordForm.submit=Ausf\u00fchren
|
||||||
login.changePasswordForm.noUserError=Benutzer ist nicht angemeldet
|
login.changePasswordForm.noUserError=Benutzer ist nicht angemeldet
|
||||||
login.changePasswordForm.badPasswordError=Falsches Passwort
|
login.changePasswordForm.badPasswordError=Falsches Passwort
|
||||||
login.changePasswordForm.mustDifferError=Das neue Passwort muss sich vom bisherigen unterscheiden
|
login.changePasswordForm.mustDifferError=Das neue Passwort muss sich vom bisherigen unterscheiden
|
||||||
login.changePasswordForm.mustMatchError=Die neuen Passw\u00F6rter m\u00FCssen gleich sein
|
login.changePasswordForm.mustMatchError=Die neuen Passw\u00f6rter m\u00fcssen gleich sein
|
||||||
login.changePasswordForm.mailSubject=Ihr Passwort wurde ge\u00E4ndert.
|
login.changePasswordForm.mailSubject=Ihr Passwort wurde ge\u00e4ndert.
|
||||||
login.changePasswordForm.mailBody=Hallo {0},\n\nIhr Passwort wurde erfolgreich ge\u00E4ndert.\nWenn Sie Ihr Passwort nicht \u00E4ndern wollten,\nmelden Sie bitte diese Mail an uns.
|
login.changePasswordForm.mailBody=Hallo {0},\n\nIhr Passwort wurde erfolgreich ge\u00e4ndert.\nWenn Sie Ihr Passwort nicht \u00e4ndern wollten,\nmelden Sie bitte diese Mail an uns.
|
||||||
login.changePasswordPage.title=Passwort \u00C4nderung
|
login.changePasswordPage.title=Passwort \u00c4nderung
|
||||||
login.recoverPassword.mailSubject=\u00C4ndern Sie das Passwort
|
login.recoverPassword.mailSubject=\u00c4ndern Sie das Passwort
|
||||||
login.recoverPassword.mailBody=Hallo {0},\n\nKlicken Sie auf diese URL oder kopieren Sie sie in Ihren Browser, um Ihr Passwort zu \u00E4ndern\:\n{1}
|
login.recoverPassword.mailBody=Hallo {0},\n\nKlicken Sie auf diese URL oder kopieren Sie sie in Ihren Browser, um Ihr Passwort zu \u00e4ndern\:\n{1}
|
||||||
login.recoverPasswordPage.title=Passwort holen
|
login.recoverPasswordPage.title=Passwort holen
|
||||||
login.loginExpiredPage.title=Anmeldung abgelaufen
|
login.loginExpiredPage.title=Anmeldung abgelaufen
|
||||||
login.loginExpiredPage.before=Der Anmeldebildschirm ist nicht mehr g\u00FCltig
|
login.loginExpiredPage.before=Der Anmeldebildschirm ist nicht mehr g\u00fcltig
|
||||||
login.loginExpiredPage.link=Anmeldung
|
login.loginExpiredPage.link=Anmeldung
|
||||||
login.loginExpiredPage.after= erneut.
|
login.loginExpiredPage.after= erneut.
|
||||||
login.passwordValidation.minLengthError=Passwort muss aus mindestens {0} Zeichen bestehen
|
login.passwordValidation.minLengthError=Passwort muss aus mindestens {0} Zeichen bestehen
|
||||||
login.passwordValidation.whitespaceError=Das Passwort darf kein Leerzeichen enthalten
|
login.passwordValidation.whitespaceError=Das Passwort darf kein Leerzeichen enthalten
|
||||||
login.passwordValidation.minTypesError=Das Passwort muss aus {0} dieser 4 Typen gestehen\: Gro\u00DFbuchstaben, Kleinbuchstaben, Ziffern, andere Zeichen
|
login.passwordValidation.minTypesError=Das Passwort muss aus {0} dieser 4 Typen gestehen\: Gro\u00dfbuchstaben, Kleinbuchstaben, Ziffern, andere Zeichen
|
||||||
login.submit=Ausf\u00FChren
|
login.submit=Ausf\u00fchren
|
||||||
login.primaryEmail=E-Mail Adresse\:
|
login.primaryEmail=E-Mail Adresse\:
|
||||||
login.additionalEmail=Weitere E-Mail\:
|
login.additionalEmail=Weitere E-Mail\:
|
||||||
login.firstName=Vorname\:
|
login.firstName=Vorname\:
|
||||||
login.lastName=Nachname\:
|
login.lastName=Nachname\:
|
||||||
login.password=Passwort (mindestens {0} Zeichen, kein Leerzeichen)\:
|
login.password=Passwort (mindestens {0} Zeichen, kein Leerzeichen)\:
|
||||||
login.passwordConfirm=Passwort best\u00E4tigen\:
|
login.passwordConfirm=Passwort best\u00e4tigen\:
|
||||||
login.passwordQuestion=Frage\:
|
login.passwordQuestion=Frage\:
|
||||||
login.passwordAnswer=Antwort\:
|
login.passwordAnswer=Antwort\:
|
||||||
login.url=URL der pers\u00F6nlichen Homepage\:
|
login.url=URL der pers\u00f6nlichen Homepage\:
|
||||||
login.screenName=Benutzername\:
|
login.screenName=Benutzername\:
|
||||||
login.bio=Biographie\:
|
login.bio=Biographie\:
|
||||||
login.error.duplicateScreenName=Ein anderer Benutzer verwendet diesen Namen
|
login.error.duplicateScreenName=Ein anderer Benutzer verwendet diesen Namen
|
||||||
login.error.duplicateEmail=Ein anderer Nutzer verwendet diese E-Mail Adresse
|
login.error.duplicateEmail=Ein anderer Nutzer verwendet diese E-Mail Adresse
|
||||||
login.error.mismatchPassword=Die neuen Passw\u00F6rter m\u00FCssen gleich sein
|
login.error.mismatchPassword=Die neuen Passw\u00f6rter m\u00fcssen gleich sein
|
||||||
login.error.badPassword=Falsches Passwort
|
login.error.badPassword=Falsches Passwort
|
||||||
login.error.badAnswer=Falsche Antwort
|
login.error.badAnswer=Falsche Antwort
|
||||||
login.error.badEmail=Ung\u00FCltige E-Mail Adresse
|
login.error.badEmail=Ung\u00fcltige E-Mail Adresse
|
||||||
login.error.bannedEmail=Benutzer kann zur Zeit das System nicht nutzen
|
login.error.bannedEmail=Benutzer kann zur Zeit das System nicht nutzen
|
||||||
login.error.loginFail=Anmeldung nicht erfolgreich
|
login.error.loginFail=Anmeldung nicht erfolgreich
|
||||||
|
login.changePasswortForm.greeting=Willkommen {0}
|
||||||
|
login.changePasswortForm.introText=Um ihr Passwort zu \u00e4ndern, f\u00fcllen sie bitte das folgende Formular aus.
|
||||||
|
|
|
||||||
|
|
@ -60,3 +60,5 @@ login.error.badAnswer=Incorrect answer
|
||||||
login.error.badEmail=Unrecognized email address
|
login.error.badEmail=Unrecognized email address
|
||||||
login.error.bannedEmail=User cannot currently access system
|
login.error.bannedEmail=User cannot currently access system
|
||||||
login.error.loginFail=Login failed
|
login.error.loginFail=Login failed
|
||||||
|
login.changePasswortForm.greeting=Welcome {0}
|
||||||
|
login.changePasswortForm.introText=To change your passwort please fill out this form.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ login.userEditPage.title=Modifier ce profil
|
||||||
login.userEditPage.changePasswordLink=Modifier le mot de passe
|
login.userEditPage.changePasswordLink=Modifier le mot de passe
|
||||||
login.workspacePage.title=Votre espace de travail
|
login.workspacePage.title=Votre espace de travail
|
||||||
login.explainCookiesPage.title=Enregistrement de l'adresse de messagerie et du mot de passe
|
login.explainCookiesPage.title=Enregistrement de l'adresse de messagerie et du mot de passe
|
||||||
login.userInfo.logoutLink=Déconnexion
|
login.userInfo.logoutLink=D\u00e9connexion
|
||||||
login.userInfo.editProfileLink=Modifier ce profil
|
login.userInfo.editProfileLink=Modifier ce profil
|
||||||
login.userInfo.changePasswordLink=Modifier le mot de passe
|
login.userInfo.changePasswordLink=Modifier le mot de passe
|
||||||
login.userRegistrationForm.title=Se connecter
|
login.userRegistrationForm.title=Se connecter
|
||||||
|
|
@ -11,49 +11,51 @@ login.userRegistrationForm.screenName=Votre pseudonyme
|
||||||
login.userRegistrationForm.password=Votre mot de passe
|
login.userRegistrationForm.password=Votre mot de passe
|
||||||
login.userRegistrationForm.cookieOption=Retenir ce mot de passe?
|
login.userRegistrationForm.cookieOption=Retenir ce mot de passe?
|
||||||
login.userRegistrationForm.explainCookieLink=(aide)
|
login.userRegistrationForm.explainCookieLink=(aide)
|
||||||
login.userRegistrationForm.forgotPasswordLink=Vous avez oublié votre mot de passe?
|
login.userRegistrationForm.forgotPasswordLink=Vous avez oubli\u00e9 votre mot de passe?
|
||||||
login.userNewForm.title=Créer votre compte
|
login.userNewForm.title=Cr\u00e9er votre compte
|
||||||
login.userNewForm.aboutYouSectionHeader=<h3>A propos de vous</h3>
|
login.userNewForm.aboutYouSectionHeader=<h3>A propos de vous</h3>
|
||||||
login.userNewForm.securitySectionHeader=<h3>Securité</h3>
|
login.userNewForm.securitySectionHeader=<h3>Securit\u00e9</h3>
|
||||||
login.userNewForm.securityBlurb=Merci de nous fournir un mot de passe afin que nous puissions protéger votre indentité lorsque vous participez aux Quiz, aux forum de discussions et aux autres activités communes sur notre site.
|
login.userNewForm.securityBlurb=Merci de nous fournir un mot de passe afin que nous puissions prot\u00e9ger votre indentit\u00e9 lorsque vous participez aux Quiz, aux forum de discussions et aux autres activit\u00e9s communes sur notre site.
|
||||||
login.userNewForm.passwordBlurb=Choisissez un mot de passe qui contienne un mélange de majuscules, de minuscules, de chiffres et d'autres caractères. Si vous oubliez votre mot de passe, notre serveur vous aidera à le remplacer par un nouveau
|
login.userNewForm.passwordBlurb=Choisissez un mot de passe qui contienne un m\u00e9lange de majuscules, de minuscules, de chiffres et d'autres caract\u00e8res. Si vous oubliez votre mot de passe, notre serveur vous aidera \u00e0 le remplacer par un nouveau
|
||||||
login.userNewForm.questionBlurb=Merci de nous indiquer une question (et sa réponse) à laquelle vous seul pouvez répondre pour que nous puission nous assurer que vous serez le seul à pouvoir changer votre mot de passe
|
login.userNewForm.questionBlurb=Merci de nous indiquer une question (et sa r\u00e9ponse) \u00e0 laquelle vous seul pouvez r\u00e9pondre pour que nous puission nous assurer que vous serez le seul \u00e0 pouvoir changer votre mot de passe
|
||||||
login.changePasswordForm.oldPasswordLabel=Ancien mot de passe :
|
login.changePasswordForm.oldPasswordLabel=Ancien mot de passe :
|
||||||
login.changePasswordForm.newPasswordLabel=Nouveau mot de passe (au moins {0} caractère et pas d'espace):
|
login.changePasswordForm.newPasswordLabel=Nouveau mot de passe (au moins {0} caract\u00e8re et pas d'espace):
|
||||||
login.changePasswordForm.confirmPasswordLabel=Confirmation du nouveau mot de passe
|
login.changePasswordForm.confirmPasswordLabel=Confirmation du nouveau mot de passe
|
||||||
login.changePasswordForm.submit=Soumettre
|
login.changePasswordForm.submit=Soumettre
|
||||||
login.changePasswordForm.noUserError=L'utilisateur n'est pas connecté
|
login.changePasswordForm.noUserError=L'utilisateur n'est pas connect\u00e9
|
||||||
login.changePasswordForm.badPasswordError=Mot de passe erroné
|
login.changePasswordForm.badPasswordError=Mot de passe erron\u00e9
|
||||||
login.changePasswordForm.mustDifferError=Le nouveau mot de passe doit être différent de l'ancien
|
login.changePasswordForm.mustDifferError=Le nouveau mot de passe doit \u00eatre diff\u00e9rent de l'ancien
|
||||||
login.changePasswordForm.mustMatchError=Le nouveau mot de passe doit être identique dans la zone de confirmation
|
login.changePasswordForm.mustMatchError=Le nouveau mot de passe doit \u00eatre identique dans la zone de confirmation
|
||||||
login.changePasswordForm.mailSubject=Votre mot de passe a été modifié
|
login.changePasswordForm.mailSubject=Votre mot de passe a \u00e9t\u00e9 modifi\u00e9
|
||||||
login.changePasswordForm.mailBody=Cher {0}, \n\n Votre mot de passe a été modifié avec succès.\nSi vous n'avez pas souhaité changer votre mot de passe,\nmerci de répondre à ce message en faisant part de ce problème.
|
login.changePasswordForm.mailBody=Cher {0}, \n\n Votre mot de passe a \u00e9t\u00e9 modifi\u00e9 avec succ\u00e8s.\nSi vous n'avez pas souhait\u00e9 changer votre mot de passe,\nmerci de r\u00e9pondre \u00e0 ce message en faisant part de ce probl\u00e8me.
|
||||||
login.changePasswordPage.title=Modifier le mot de passe
|
login.changePasswordPage.title=Modifier le mot de passe
|
||||||
login.recoverPassword.mailSubject=Modifier votre mot de passe
|
login.recoverPassword.mailSubject=Modifier votre mot de passe
|
||||||
login.recoverPassword.mailBody=Cher {0},\n\nCliquer sur cet URL ou recopiez le dans la barre d'adresse de votre navigateur pour modifier votre mot de passe:\n{1}
|
login.recoverPassword.mailBody=Cher {0},\n\nCliquer sur cet URL ou recopiez le dans la barre d'adresse de votre navigateur pour modifier votre mot de passe:\n{1}
|
||||||
login.recoverPasswordPage.title=Récupérer le mot de passe
|
login.recoverPasswordPage.title=R\u00e9cup\u00e9rer le mot de passe
|
||||||
login.loginExpiredPage.title=Votre connexion a expiré
|
login.loginExpiredPage.title=Votre connexion a expir\u00e9
|
||||||
login.loginExpiredPage.before=La page de connexion a expiré. Merci\u0020
|
login.loginExpiredPage.before=La page de connexion a expir\u00e9. Merci\u0020
|
||||||
login.loginExpiredPage.link=de vous connecter
|
login.loginExpiredPage.link=de vous connecter
|
||||||
login.loginExpiredPage.after=\u0020à nouveau
|
login.loginExpiredPage.after=\u0020\u00e0 nouveau
|
||||||
login.passwordValidation.minLengthError=Le mot de passe doit faire au minimum {0} caractères de long
|
login.passwordValidation.minLengthError=Le mot de passe doit faire au minimum {0} caract\u00e8res de long
|
||||||
login.passwordValidation.whitespaceError=Le mot de passe ne doit pas contenir d'espace
|
login.passwordValidation.whitespaceError=Le mot de passe ne doit pas contenir d'espace
|
||||||
login.passwordValidation.minTypesError=Le mot de passe doit contenir {0} de ces 4 types de caractères : majuscule, minuscule, chiffre ou autre symbole
|
login.passwordValidation.minTypesError=Le mot de passe doit contenir {0} de ces 4 types de caract\u00e8res : majuscule, minuscule, chiffre ou autre symbole
|
||||||
login.submit=Soumettre
|
login.submit=Soumettre
|
||||||
login.primaryEmail=Adresse de messagerie:
|
login.primaryEmail=Adresse de messagerie:
|
||||||
login.additionalEmail=Adresse de messagerie supplémentaire
|
login.additionalEmail=Adresse de messagerie suppl\u00e9mentaire
|
||||||
login.firstName=Prénom:
|
login.firstName=Pr\u00e9nom:
|
||||||
login.lastName=Nom:
|
login.lastName=Nom:
|
||||||
login.password=Mot de passe (au moins {0} caractère et pas d'espace):
|
login.password=Mot de passe (au moins {0} caract\u00e8re et pas d'espace):
|
||||||
login.passwordConfirm=Confirmation du mot de passe
|
login.passwordConfirm=Confirmation du mot de passe
|
||||||
login.passwordQuestion=Question:
|
login.passwordQuestion=Question:
|
||||||
login.passwordAnswer=Réponse:
|
login.passwordAnswer=R\u00e9ponse:
|
||||||
login.url=URL de votre site web personnel
|
login.url=URL de votre site web personnel
|
||||||
login.screenName=Votre pseudonyme:
|
login.screenName=Votre pseudonyme:
|
||||||
login.bio=Biographie:
|
login.bio=Biographie:
|
||||||
login.error.duplicateScreenName=Un autre utilisateur utilise déjà ce pseudonyme
|
login.error.duplicateScreenName=Un autre utilisateur utilise d\u00e9j\u00e0 ce pseudonyme
|
||||||
login.error.duplicateEmail=Un autre utilisateur nous a déjà donner cette adresse de messagerie
|
login.error.duplicateEmail=Un autre utilisateur nous a d\u00e9j\u00e0 donner cette adresse de messagerie
|
||||||
login.error.mismatchPassword=Le nouveau mot de passe doit être identique dans la zone de confirmation
|
login.error.mismatchPassword=Le nouveau mot de passe doit \u00eatre identique dans la zone de confirmation
|
||||||
login.error.badPassword=Mot de passe erroné
|
login.error.badPassword=Mot de passe erron\u00e9
|
||||||
login.error.badAnswer=Réponse erronée
|
login.error.badAnswer=R\u00e9ponse erron\u00e9e
|
||||||
login.error.badEmail=Cette adresse de messagerie est inconnue
|
login.error.badEmail=Cette adresse de messagerie est inconnue
|
||||||
|
login.changePasswortForm.greeting=
|
||||||
|
login.changePasswortForm.introText=
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue