fix for bug #20401. prevent user from creating two identical
mailnews accounts.
(identical means they have the same {username,hostname,type}.)
r=mscott
git-svn-id: svn://10.0.0.236/trunk@78243 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
d9f0a1dc44
commit
a13132d602
@ -222,7 +222,6 @@ function AccountDataToPageData(accountData, pageData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// take data from each page of pageData and dump it into accountData
|
||||
// use: to put results of wizard into a account-oriented object
|
||||
function PageDataToAccountData(pageData, accountData)
|
||||
@ -566,6 +565,28 @@ function serverIsNntp(pageData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function getUsernameFromEmail(email)
|
||||
{
|
||||
var emailData = email.split("@");
|
||||
return emailData[0];
|
||||
}
|
||||
|
||||
function getCurrentUserName(pageData)
|
||||
{
|
||||
var userName = "";
|
||||
|
||||
if (pageData.login) {
|
||||
if (pageData.login.username) {
|
||||
userName = pageData.login.username.value;
|
||||
}
|
||||
}
|
||||
if (userName == "") {
|
||||
var email = pageData.identity.email.value;
|
||||
userName = getUsernameFromEmail(email);
|
||||
}
|
||||
return userName;
|
||||
}
|
||||
|
||||
function getCurrentServerType(pageData) {
|
||||
var servertype = "pop3"; // hopefully don't resort to default!
|
||||
if (serverIsNntp(pageData))
|
||||
@ -642,7 +663,6 @@ function PrefillAccountForIsp(ispName)
|
||||
AccountDataToPageData(ispData, pageData);
|
||||
}
|
||||
|
||||
|
||||
// does any cleanup work for the the account data
|
||||
// - sets the username from the email address if it's not already set
|
||||
// - anything else?
|
||||
@ -652,8 +672,7 @@ function FixupAccountDataForIsp(accountData)
|
||||
var username;
|
||||
|
||||
if (email) {
|
||||
var emailData = email.split("@");
|
||||
username = emailData[0];
|
||||
username = getUsernameFromEmail(email);
|
||||
}
|
||||
|
||||
// fix up the username
|
||||
|
||||
@ -34,6 +34,30 @@ function validate() {
|
||||
window.alert(alertText);
|
||||
return false;
|
||||
}
|
||||
|
||||
dump("check if this account exists\n");
|
||||
var pageData = parent.GetPageData();
|
||||
var hostName = servername.value;
|
||||
var serverType = parent.getCurrentServerType(pageData);
|
||||
var userName = parent.getCurrentUserName(pageData);
|
||||
|
||||
var accountExists = false;
|
||||
var accountManager = Components.classes["component://netscape/messenger/account-manager"].getService(Components.interfaces.nsIMsgAccountManager);
|
||||
try {
|
||||
var server = accountManager.FindServer(userName,hostName,serverType);
|
||||
if (server) {
|
||||
accountExists = true;
|
||||
}
|
||||
}
|
||||
catch (ex) {
|
||||
accountExists = false;
|
||||
}
|
||||
if (accountExists) {
|
||||
var alertText = Bundle.GetStringFromName("accountExists");
|
||||
window.alert(alertText);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@ enterAccountName=Please enter a name for this account.
|
||||
enterUserName=Please enter a username.
|
||||
enterName=Please enter your name.
|
||||
enterValidEmail=Please enter a valid email address.
|
||||
accountExists=An account of this type with the same username and hostname already exists. Go back and change it or hit cancel.
|
||||
|
||||
# when the wizard already has a domain (Should we say something different?)
|
||||
enterValidEmailPrefix=Please enter a valid email address.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user