Package com.cosmo.manager.pages

Source Code of com.cosmo.manager.pages.UserRegisterPage

package com.cosmo.manager.pages;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.cosmo.net.HttpRequestUtils;
import com.cosmo.security.User;
import com.cosmo.security.UserAlreadyExistsException;
import com.cosmo.security.annotations.ActivitiesAllowed;
import com.cosmo.security.auth.Authentication;
import com.cosmo.security.auth.AuthenticationException;
import com.cosmo.security.auth.AuthenticationFactory;
import com.cosmo.security.auth.impl.PostgreSqlAuthenticationImpl;
import com.cosmo.ui.Page;
import com.cosmo.ui.PageContext;
import com.cosmo.ui.PageContext.ContentColumns;
import com.cosmo.ui.PageContext.PageLayout;
import com.cosmo.ui.controls.DynamicMessageControl;
import com.cosmo.ui.controls.DynamicMessageControl.MessageTypes;
import com.cosmo.ui.controls.FormButton;
import com.cosmo.ui.controls.FormControl;
import com.cosmo.ui.controls.FormFieldset;
import com.cosmo.ui.controls.FormFieldText;
import com.cosmo.ui.controls.HeaderControl;

/**
* P�gina estandar de identificaci�n de usuarios.
*
* @author Gerard Llort
*/
@ActivitiesAllowed("admin.users.manage")
@WebServlet(description = "User register page", urlPatterns = { "/UserRegisterPage" })
public class UserRegisterPage extends Page
{
   /** Serial version UID */
   private static final long   serialVersionUID  = -611541787527541887L;

   private static final String FIELD_LOGIN       = "txtLogin";
   private static final String FIELD_PASSWORD    = "txtPwd";
   private static final String FIELD_PASSWORDVER = "txtPwdV";
   private static final String FIELD_MAIL        = "txtMail";
   private static final String FIELD_NAME        = "txtName";

   String                      dataReceived      = "";

   @Override
   public PageContext initPageEvent(PageContext pc, HttpServletRequest request, HttpServletResponse response)
   {
      pc.setLayout(PageLayout.TwoColumnsLeft);
      pc.setTitle("Crear compte d'usuari - " + getWorkspace().getName());

      try
      {
         // Comprueba si el agente es el adecuado
         Authentication ap = AuthenticationFactory.getInstance(getWorkspace());
         if (!(ap instanceof PostgreSqlAuthenticationImpl))
         {
            DynamicMessageControl msg = new DynamicMessageControl(getWorkspace(), "msg");
            msg.setType(MessageTypes.Error);
            msg.setMessage("Nom�s es poden gestionar els comptes d'usuari amb el prove�dor natiu de Cosmo (PostgreSqlAuthenticationProvider).");
            msg.setVisible(true);
            pc.addContent(msg, ContentColumns.MAIN);
         }
         else
         {
            HeaderControl header = new HeaderControl(getWorkspace(), "hc");
            header.setTitle("Crear compte d'usuari");
            header.setDescription("Ompleni el formulari per crear un nou compte d'usuari.");
            pc.addContent(header, ContentColumns.MAIN);

            DynamicMessageControl msg = new DynamicMessageControl(getWorkspace(), "msg");
            msg.setVisible(false);
            pc.addContent(msg, ContentColumns.MAIN);

            FormControl form = new FormControl(getWorkspace(), "UserRegisterForm");
            form.setName("frmUserAdd");
            form.setTitle("Nou compte d'usuari");

            FormFieldset grpId = new FormFieldset("Identificaci�");
            grpId.addField(new FormFieldText(FIELD_LOGIN, "Login", 35));
            grpId.addField(new FormFieldText(FIELD_PASSWORD, "Contrassenya", 32, true));
            grpId.addField(new FormFieldText(FIELD_PASSWORDVER, "Verificaci�", 32, true));
            grpId.addField(new FormFieldText(FIELD_MAIL, "Correu-e", 255));
            form.addGroup(grpId);

            FormFieldset grpDat = new FormFieldset("Dades personals");
            grpDat.addField(new FormFieldText(FIELD_NAME, "Nom complert", 64));
            form.addGroup(grpDat);

            form.addButton(new FormButton("cmdSend", "Aceptar", FormButton.ButtonType.Submit));
            form.addButton(new FormButton("cmdCancel", "Cancel�lar", "UserManagerPage"));
            pc.addContent(form, ContentColumns.MAIN);
         }
      }
      catch (AuthenticationException e)
      {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

      return pc;
   }

   @Override
   public PageContext loadPageEvent(PageContext pc, HttpServletRequest request, HttpServletResponse response)
   {
      /*
       * if (HttpRequestUtils.getValue(request, "mode", "").equals("edit")) {
       * try { // Obtiene el usuario PostgreSqlAuthenticationImpl auth =
       * (PostgreSqlAuthenticationImpl)
       * AuthenticationFactory.getInstance(pc.getWorkspace()); User user =
       * auth.add(HttpRequestUtils.getValue(request, "id", ""));
       *
       * HeaderControl header = (HeaderControl) pc.getControl("hc");
       * header.setTitle("Editar compte d'usuari");
       *
       * FormControl form = (FormControl) pc.getControl("UserRegisterForm");
       * form.setFieldValue(request, FIELD_LOGIN, user.getLogin());
       *
       * } catch (AuthenticationException e) {
       *
       * } }
       */

      return pc;
   }

   @Override
   public PageContext formSendedEvent(PageContext pc, HttpServletRequest request, HttpServletResponse response)
   {
      // Comprobaci�n de datos

      if (HttpRequestUtils.isNullOrEmpty(request, FIELD_PASSWORD)
            || !HttpRequestUtils.equals(request, FIELD_PASSWORD, FIELD_PASSWORDVER))
      {
         DynamicMessageControl msg = (DynamicMessageControl) pc.getControl("msg");
         msg.setMessage("La contrassenya i la verificaci�n han de ser exactament iguals.");
         msg.setVisible(true);
         return pc;
      }

      try
      {
         // Recopilaci�n de datos
         User user = new User();
         user.setLogin(HttpRequestUtils.getValue(request, FIELD_LOGIN));
         user.setMail(HttpRequestUtils.getValue(request, FIELD_MAIL));
         user.setName(HttpRequestUtils.getValue(request, FIELD_NAME));

         // Acciones
         PostgreSqlAuthenticationImpl up = (PostgreSqlAuthenticationImpl) AuthenticationFactory.getInstance(getWorkspace());
         up.add(user, HttpRequestUtils.getValue(request, FIELD_PASSWORD));

         response.sendRedirect("UserManagerPage");
         return pc;
      }
      catch (UserAlreadyExistsException ex)
      {
         DynamicMessageControl msg = (DynamicMessageControl) pc.getControl("msg");
         msg.setVisible(true);
         msg.setMessage("Ja s'ha trobat un usuari amb el mateix LOGIN o MAIL. Si us plau, verifiqui les dades proporcionades.");
      }
      catch (Exception ex)
      {
         DynamicMessageControl msg = (DynamicMessageControl) pc.getControl("msg");
         msg.setVisible(true);
         msg.setMessage("S'ha produ�t un error: " + ex.getMessage());
      }

      return pc;
   }

   @Override
   public PageContext pageException(PageContext pc, Exception exception)
   {
      pc.showException(getWorkspace(), exception);

      return pc;
   }
}
TOP

Related Classes of com.cosmo.manager.pages.UserRegisterPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.