package com.rectang.xsm.pages.admin; import com.rectang.xsm.pages.XSMPage; import com.rectang.xsm.pages.Secure; import com.rectang.xsm.*; import com.rectang.xsm.site.Visitor; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.form.PasswordTextField; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator; import org.apache.wicket.model.CompoundPropertyModel; /** * Page for adding a visitor account to the site * * @author Andrew Williams * @version $Id: AddVisitor.java 802 2009-05-16 17:25:24Z andy $ * @since 2.0 */ public class AddVisitor extends XSMPage implements Secure { public AddVisitor( PageParameters parameters ) { super( parameters ); } public int getLevel() { return AccessControl.MANAGER; } public void layout() { super.layout(); add( new UserForm( "addvisitor", getXSMSession().getSite() ) ); } class UserForm extends Form { private com.rectang.xsm.site.Site site; private String username, password, repeatPassword; public UserForm( String id, com.rectang.xsm.site.Site site ) { super( id ); this.site = site; setModel( new CompoundPropertyModel( this ) ); PasswordTextField password, password2; add( new TextField( "username" ).setRequired( true ) ); add( (password = new PasswordTextField( "password" )).setRequired( true ) ); add( (password2 = new PasswordTextField( "repeatPassword" )).setRequired( true ) ); add( new EqualPasswordInputValidator( password, password2 ) ); add( new Button( "add" ) ); } public void onSubmit() { if ( username.indexOf( ' ' ) > -1 ) { warn( "Could not create visitor, username may not contain spaces" ); return; } Visitor exists = site.getVisitor( username ); if ( exists != null ) { warn( "Could not create visitor, username" + username + " is already taken" ); return; } Visitor visitor = new Visitor( username, password ); site.setVisitor( visitor ); getSession().info( "Successfully added visitor " + username ); this.setResponsePage( Users.class ); } public String getUsername() { return username; } public void setUsername( String username ) { this.username = username; } public String getPassword() { return password; } public void setPassword( String password ) { this.password = password; } public String getRepeatPassword() { return repeatPassword; } public void setRepeatPassword( String repeatPassword ) { this.repeatPassword = repeatPassword; } } }