James Moger
2012-01-05 cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef
src/com/gitblit/wicket/pages/ChangePasswordPage.java
@@ -18,17 +18,13 @@
import java.text.MessageFormat;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.protocol.http.WebResponse;
import com.gitblit.Constants;
import com.gitblit.GitBlit;
import com.gitblit.GitBlitException;
import com.gitblit.Keys;
@@ -36,7 +32,7 @@
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebSession;
public class ChangePasswordPage extends WebPage {
public class ChangePasswordPage extends RootSubPage {
   IModel<String> password = new Model<String>("");
   IModel<String> confirmPassword = new Model<String>("");
@@ -49,14 +45,12 @@
         throw new RestartResponseException(getApplication().getHomePage());
      }
      if (!GitBlit.getBoolean(Keys.web.authenticateAdminPages, true) && !GitBlit.getBoolean(Keys.web.authenticateViewPages, false)) {
      if (!GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)
            && !GitBlit.getBoolean(Keys.web.authenticateViewPages, false)) {
         // no authentication enabled
         throw new RestartResponseException(getApplication().getHomePage());
      }
      add(new Label("title", GitBlit.getString(Keys.web.siteName, Constants.NAME)));
      add(new Label("name", getString("gb.changePassword") + ": "
            + GitBlitWebSession.get().getUser().username));
      setupPage(getString("gb.changePassword"), GitBlitWebSession.get().getUser().username);
      StatelessForm<Void> form = new StatelessForm<Void>("passwordForm") {
@@ -83,14 +77,19 @@
               return;
            }
            UserModel user = GitBlitWebSession.get().getUser();
            // convert to MD5 digest, if appropriate
            String type = GitBlit.getString(Keys.realm.passwordStorage, "md5");
            if (type.equalsIgnoreCase("md5")) {
               // store MD5 digest of password
               password = StringUtils.MD5_TYPE + StringUtils.getMD5(password);
            } else if (type.equalsIgnoreCase("combined-md5")) {
               // store MD5 digest of username+password
               password = StringUtils.COMBINED_MD5_TYPE
                     + StringUtils.getMD5(user.username.toLowerCase() + password);
            }
            UserModel user = GitBlitWebSession.get().getUser();
            user.password = password;
            try {
               GitBlit.self().updateUserModel(user.username, user, false);
@@ -114,20 +113,19 @@
            confirmPassword);
      confirmPasswordField.setResetPassword(false);
      form.add(confirmPasswordField);
      form.add(new FeedbackPanel("feedback"));
      form.add(new Button("save"));
      Button cancel = new Button("cancel"){
      Button cancel = new Button("cancel") {
         private static final long serialVersionUID = 1L;
         @Override
         public void onSubmit() {
                setResponsePage(RepositoriesPage.class);
            }
        };
        cancel.setDefaultFormProcessing(false);
        form.add(cancel);
            setResponsePage(RepositoriesPage.class);
         }
      };
      cancel.setDefaultFormProcessing(false);
      form.add(cancel);
      add(form);
   }
}