fix for bug #20401. prevent user from creating two identical

mailnews accounts.
(identical means they have the same {username,hostname,type}.)
r=mscott
This commit is contained in:
sspitzer%netscape.com 2000-09-06 03:42:36 +00:00
Родитель c10b9ecb82
Коммит 1430ebc7c6
3 изменённых файлов: 48 добавлений и 4 удалений

Просмотреть файл

@ -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.