diff options
author | relves | 2007-06-22 18:03:16 +0000 |
---|---|---|
committer | relves | 2007-06-22 18:03:16 +0000 |
commit | 9147a2de0367a730a516bc3c83766d5eeb14baee (patch) | |
tree | 1ae5409cf88daf74839baff59828aeace89ff364 | |
parent | 2921b4730ed2dc7e22551c9ec21703439d9355d1 (diff) | |
download | org.eclipse.mylyn.tasks-9147a2de0367a730a516bc3c83766d5eeb14baee.tar.gz org.eclipse.mylyn.tasks-9147a2de0367a730a516bc3c83766d5eeb14baee.tar.xz org.eclipse.mylyn.tasks-9147a2de0367a730a516bc3c83766d5eeb14baee.zip |
NEW - bug 180337: blank credentials accepted when anonymous login not enabled
https://bugs.eclipse.org/bugs/show_bug.cgi?id=180337
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java | 86 |
1 files changed, 71 insertions, 15 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java index c9e3a0aa5..7497caf25 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java @@ -275,18 +275,55 @@ public abstract class AbstractRepositorySettingsPage extends WizardPage { @Override public void widgetSelected(SelectionEvent e) { setAnonymous(anonymousButton.getSelection()); + isPageComplete(); } }); + } + + repositoryUserNameEditor = new StringFieldEditor("", LABEL_USER, StringFieldEditor.UNLIMITED, + compositeContainer) { + @Override + protected boolean doCheckState() { + return true; + } + + @Override + protected void valueChanged() { + super.valueChanged(); + isPageComplete(); + if (getWizard() != null) { + getWizard().getContainer().updateButtons(); + } + } + }; + + repositoryPasswordEditor = new RepositoryStringFieldEditor("", LABEL_PASSWORD, StringFieldEditor.UNLIMITED, + compositeContainer) { + + @Override + protected boolean doCheckState() { + return true; + } + + @Override + protected void valueChanged() { + super.valueChanged(); + isPageComplete(); + if (getWizard() != null) { + getWizard().getContainer().updateButtons(); + } + } + }; + + if (needsAnonymousLogin()) { if (repository != null) { - anonymousButton.setSelection(repository.isAnonymous()); + setAnonymous(repository.isAnonymous()); + } else { + setAnonymous(true); } } - repositoryUserNameEditor = new StringFieldEditor("", LABEL_USER, StringFieldEditor.UNLIMITED, - compositeContainer); - repositoryPasswordEditor = new RepositoryStringFieldEditor("", LABEL_PASSWORD, StringFieldEditor.UNLIMITED, - compositeContainer); // TODO: put this back if we can't get the info from all connectors // if (needsTimeZone()) { // Label timeZoneLabel = new Label(container, SWT.NONE); @@ -779,7 +816,10 @@ public abstract class AbstractRepositorySettingsPage extends WizardPage { } repositoryUserNameEditor.setEnabled(!selected, compositeContainer); - (repositoryPasswordEditor).setEnabled(!selected, compositeContainer); + repositoryPasswordEditor.setEnabled(!selected, compositeContainer); + if (getWizard() != null) { + getWizard().getContainer().updateButtons(); + } } public void setHttpAuth(boolean selected) { @@ -976,14 +1016,32 @@ public abstract class AbstractRepositorySettingsPage extends WizardPage { @Override public boolean isPageComplete() { - boolean isComplete = false; - + String errorMessage = null; String url = getServerUrl(); - isComplete = isUniqueUrl(url) && isValidUrl(url); - return isComplete; + errorMessage = isUniqueUrl(url); + if (errorMessage == null && !isValidUrl(url)) { + errorMessage = "Enter a valid server url"; + } + if (errorMessage == null) { + errorMessage = credentialsComplete(); + } + + setErrorMessage(errorMessage); + return errorMessage == null; + } + + private String credentialsComplete() { + if ((needsAnonymousLogin() && !anonymousButton.getSelection()) + && (repositoryUserNameEditor.getStringValue().trim().equals("") || repositoryPasswordEditor.getStringValue() + .trim() + .equals(""))) { + return "Repository user name and password must not be blank"; + } + return null; + } - protected boolean isUniqueUrl(String urlString) { + protected String isUniqueUrl(String urlString) { if (!urlString.equals(originalUrl)) { if (repositoryUrls == null) { List<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getAllRepositories(); @@ -994,12 +1052,10 @@ public abstract class AbstractRepositorySettingsPage extends WizardPage { } if (repositoryUrls.contains(urlString)) { - setErrorMessage("Repository already exists."); - return false; + return "Repository already exists."; } } - setErrorMessage(null); - return true; + return null; } public void setRepository(TaskRepository repository) { |