+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.argeo.security.ui.admin.wizards;
import javax.jcr.Node;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
+import org.springframework.security.userdetails.UserDetails;
+import org.springframework.security.userdetails.UsernameNotFoundException;
public class MainUserInfoWizardPage extends WizardPage implements
ModifyListener, ArgeoNames {
private Text username, firstName, lastName, primaryEmail, password1,
password2;
+ private UserAdminService userAdminService;
- public MainUserInfoWizardPage() {
+ public MainUserInfoWizardPage(UserAdminService userAdminService) {
super("Main");
+ this.userAdminService = userAdminService;
setTitle("Required Information");
}
/** @return error message or null if complete */
protected String checkComplete() {
- if (!username.getText().matches(UserAdminService.USERNAME_PATTERN))
- return "Wrong user name format, should be lower case, between 3 and 15 characters with only '_' as acceptable special character.";
+// if (!username.getText().matches(UserAdminService.USERNAME_PATTERN))
+// return "Wrong user name format, should be lower case, between 3 and 64 characters with only '_' an '@' as acceptable special character.";
+ try {
+ UserDetails userDetails = userAdminService
+ .loadUserByUsername(username.getText());
+ return "User " + userDetails.getUsername() + " already exists";
+ } catch (UsernameNotFoundException e) {
+ // silent
+ }
if (!primaryEmail.getText().matches(UserAdminService.EMAIL_PATTERN))
return "Not a valid email address";
if (firstName.getText().trim().equals(""))