Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrelves2007-06-22 18:03:16 +0000
committerrelves2007-06-22 18:03:16 +0000
commit9147a2de0367a730a516bc3c83766d5eeb14baee (patch)
tree1ae5409cf88daf74839baff59828aeace89ff364
parent2921b4730ed2dc7e22551c9ec21703439d9355d1 (diff)
downloadorg.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.java86
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) {

Back to the top