Package com.jada.admin.user

Source Code of com.jada.admin.user.UserMaintAction

/*
* Copyright 2007-2010 JadaSite.

* This file is part of JadaSite.
* JadaSite is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.

* JadaSite is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with JadaSite.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.jada.admin.user;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.util.LabelValueBean;

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

import javax.persistence.Query;
import javax.persistence.EntityManager;

import com.jada.admin.AdminBean;
import com.jada.admin.AdminLookupDispatchAction;
import com.jada.dao.UserDAO;
import com.jada.jpa.connection.JpaConnection;
import com.jada.jpa.entity.Country;
import com.jada.jpa.entity.Site;
import com.jada.jpa.entity.State;
import com.jada.jpa.entity.User;
import com.jada.util.AESEncoder;
import com.jada.util.Constants;
import com.jada.util.Format;
import com.jada.util.Utility;

import fr.improve.struts.taglib.layout.util.FormUtils;

import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Vector;

public class UserMaintAction
    extends AdminLookupDispatchAction {
 
    public ActionForward create(ActionMapping actionMapping,
                             ActionForm actionForm,
                             HttpServletRequest request,
                             HttpServletResponse response)
        throws Throwable {

        AdminBean adminBean = getAdminBean(request);
        User signinUser = adminBean.getUser();
        String siteId = adminBean.getSite().getSiteId();
        UserMaintActionForm form = (UserMaintActionForm) actionForm;
        form.setMode("C");
        form.setUserType(Constants.USERTYPE_REGULAR);
        form.setActive(String.valueOf(Constants.ACTIVE_YES));
        initSearchInfo(form, siteId, signinUser);
       
        FormUtils.setFormDisplayMode(request, form, FormUtils.CREATE_MODE);
        ActionForward actionForward = actionMapping.findForward("success");
        return actionForward;
    }

    public ActionForward edit(ActionMapping actionMapping,
                              ActionForm actionForm,
                              HttpServletRequest request,
                              HttpServletResponse response)
        throws Throwable {

        AdminBean adminBean = getAdminBean(request);
        String siteId = adminBean.getSite().getSiteId();
        UserMaintActionForm form = (UserMaintActionForm) actionForm;
        if (form == null) {
            form = new UserMaintActionForm();
        }
    String userId = request.getParameter("userId");
        User user = new User();
        user = UserDAO.load(userId, adminBean.getUser());
       
        Vector<String> vector = new Vector<String>();
        Iterator<?> iterator = user.getSites().iterator();
        while (iterator.hasNext()) {
          Site site = (Site) iterator.next();
          vector.add(site.getSiteId());
        }
        String selectedSiteIds[] = new String[vector.size()];
        vector.copyInto(selectedSiteIds);
        form.setSelectedSiteIds(selectedSiteIds);
       
        form.setMode("U");
        copyProperties(form, user);
        initSearchInfo(form, siteId, adminBean.getUser());

        FormUtils.setFormDisplayMode(request, form, FormUtils.EDIT_MODE);
        ActionForward actionForward = actionMapping.findForward("success");
        return actionForward;
    }
   
    public ActionForward remove(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response)
    throws Throwable {
   
    EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
    UserMaintActionForm form = (UserMaintActionForm) actionForm;
    User signinUser = getAdminBean(request).getUser();
        User user = UserDAO.load(form.getUserId(), signinUser);
    em.remove(user);
    ActionForward actionForward = actionMapping.findForward("removeSuccess");
    return actionForward;
  }

  public ActionForward save(ActionMapping mapping,
                ActionForm actionForm,
                HttpServletRequest httpServletRequest,
                HttpServletResponse httpServletResponse)
    throws Throwable {

      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
    boolean insertMode = false;
    UserMaintActionForm form = (UserMaintActionForm) actionForm;
    if (form.getMode().equals("C")) {
      insertMode = true;
    }

    AdminBean adminBean = getAdminBean(httpServletRequest);
    String siteId = adminBean.getSite().getSiteId();

    User user = new User();
    if (!insertMode) {
      user = UserDAO.load(form.getUserId(), adminBean.getUser());
    }

    ActionMessages errors = validate(form, siteId);
    if (errors.size() != 0) {
      form.setUserPassword("");
      form.setVerifyPassword("");
      saveMessages(httpServletRequest, errors);
          initSearchInfo(form, siteId, adminBean.getUser());
      return mapping.findForward("error");
    }

    if (insertMode) {
      user.setUserId(form.getUserId());
      user.setUserPassword(AESEncoder.getInstance().encode(form.getUserPassword()));
      user.setRecCreateBy(adminBean.getUser().getUserId());
      user.setRecCreateDatetime(new Date(System.currentTimeMillis()));
    }
    if (form.getUserPassword().length() != 0) {
      user.setUserPassword(AESEncoder.getInstance().encode(form.getUserPassword()));
    }
    user.setUserName(form.getUserName());
    user.setUserEmail(form.getUserEmail());
    user.setUserPhone(form.getUserPhone());
    user.setUserType(form.getUserType());
    user.setUserAddressLine1(form.getUserAddressLine1());
    user.setUserAddressLine2(form.getUserAddressLine2());
    user.setUserCityName(form.getUserCityName());
    user.setUserStateCode(form.getUserStateCode());
    user.setUserStateName(Utility.getStateName(siteId, form.getUserStateCode()));
    user.setUserCountryCode(form.getUserCountryCode());
    user.setUserCountryName(Utility.getCountryName(siteId, form.getUserCountryCode()));
    user.setUserZipCode(form.getUserZipCode());
    user.setActive(Constants.VALUE_NO);
    if (form.getActive() != null && form.getActive().equals("Y")) {
      user.setActive(Constants.VALUE_YES);
    }
    user.setRecUpdateBy(adminBean.getUser().getUserId());
    user.setRecUpdateDatetime(new Date(System.currentTimeMillis()));
   
    if (!user.getUserType().equals(Constants.USERTYPE_SUPER) && !user.getUserType().equals(Constants.USERTYPE_ADMIN)) {
      user.getSites().clear();
      if (form.getSelectedSiteIds() != null) {
        for (int i = 0; i < form.getSelectedSiteIds().length; i++) {
          String s = form.getSelectedSiteIds()[i];
          Site site = (Site) em.find(Site.class, s);
          user.getSites().add(site);
        }
      }
    }
   
    if (insertMode) {
      em.persist(user);
    }

    form.setMode("U");
    form.setUserPassword("");
    form.setVerifyPassword("");
        initSearchInfo(form, siteId, adminBean.getUser());
        FormUtils.setFormDisplayMode(httpServletRequest, form, FormUtils.EDIT_MODE);
    return mapping.findForward("success");
  }
 
  private void copyProperties(UserMaintActionForm form, User user) throws Exception {
    form.setUserId(user.getUserId());
    form.setUserName(user.getUserName());
    form.setUserEmail(user.getUserEmail());
    form.setUserAddressLine1(user.getUserAddressLine1());
    form.setUserAddressLine2(user.getUserAddressLine2());
    form.setUserCityName(user.getUserCityName());
    form.setUserStateCode(user.getUserStateCode());
    form.setUserCountryCode(user.getUserCountryCode());
    form.setUserZipCode(user.getUserZipCode());
    form.setUserPhone(user.getUserPhone());
    form.setUserType(user.getUserType());
    form.setActive(String.valueOf(user.getActive()));
 
    Vector<String> vector = new Vector<String>();
    if (user.getUserType().equals(Constants.USERTYPE_SUPER) || user.getUserType().equals(Constants.USERTYPE_ADMIN)) {
        EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
         String sql = "from Site where siteId != '_system' order by siteId";
         Query query = em.createQuery(sql);
         Iterator<?> iterator = query.getResultList().iterator();
         while (iterator.hasNext()) {
           Site site = (Site) iterator.next();
           vector.add(site.getSiteId());
         }
    }
    else {
      Iterator<?> iterator = user.getSites().iterator();
      while (iterator.hasNext()) {
        Site site = (Site) iterator.next();
        vector.add(site.getSiteId());
      }
    }
    String selectedSiteIds[] = new String[vector.size()];
    vector.copyInto(selectedSiteIds);
    form.setSelectedSiteIds(selectedSiteIds);
  }
 
    public void initSearchInfo(UserMaintActionForm form, String siteId, User signinUser) throws Exception {
      EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
      Query query = em.createQuery("from country in class Country where country.siteId = :siteId");
      query.setParameter("siteId", siteId);
       Iterator<?> iterator = query.getResultList().iterator();
       Vector<LabelValueBean> vector = new Vector<LabelValueBean>();
       while (iterator.hasNext()) {
         Country country = (Country) iterator.next();
         LabelValueBean bean = new LabelValueBean(country.getCountryName(), country.getCountryCode());
         vector.add(bean);
       }
       LabelValueBean countries[] = new LabelValueBean[vector.size()];
       vector.copyInto(countries);
       form.setCountries(countries);

       String sql = "";
       sql = "from    State state " +
              "left  join fetch state.country country " +
              "where  country.siteId = :siteId " +
              "order  by country.countryId, state.stateName";
       query = em.createQuery(sql);
      query.setParameter("siteId", siteId);
       iterator = query.getResultList().iterator();
       vector = new Vector<LabelValueBean>();
       while (iterator.hasNext()) {
         State state = (State) iterator.next();
         LabelValueBean bean = new LabelValueBean(state.getStateName(), state.getStateCode());
         vector.add(bean);
       }
       LabelValueBean states[] = new LabelValueBean[vector.size()];
       vector.copyInto(states);
       form.setStates(states);
      
       sql = "from Site where siteId != '_system' order by siteId";
       query = em.createQuery(sql);
       iterator = query.getResultList().iterator();
       Vector<String> vector1 = new Vector<String>();
       while (iterator.hasNext()) {
         Site site = (Site) iterator.next();
         vector1.add(site.getSiteId());
       }
       String siteIds[] = new String[vector1.size()];
       vector1.copyInto(siteIds);
       form.setSiteIds(siteIds);
      
     form.setHasAdministrator(false);
     form.setHasSuperUser(false);
     if (signinUser.getUserType().equals(Constants.USERTYPE_SUPER)) {
         form.setHasAdministrator(true);
         form.setHasSuperUser(true);
       }
     if (signinUser.getUserType().equals(Constants.USERTYPE_ADMIN)) {
         form.setHasAdministrator(true);
       }
    }
   
    public ActionMessages validate(UserMaintActionForm form, String siteId) throws Exception {
      ActionMessages errors = new ActionMessages();
     
      if (Format.isNullOrEmpty(form.getUserId())) {
        errors.add("userId", new ActionMessage("error.string.required"));
      }
      if (Format.isNullOrEmpty(form.getUserName())) {
        errors.add("userName", new ActionMessage("error.string.required"));
      }     
    if (form.getMode().equals("C")) {
          if (Format.isNullOrEmpty(form.getUserPassword())) {
            errors.add("userPassword", new ActionMessage("error.string.required"));
          }
         
        EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
        Query query = em.createQuery("from   User " +
                          "where  userId = :userId");
        query.setParameter("userId", form.getUserId());
        if (query.getResultList().iterator().hasNext()) {
        errors.add("userId", new ActionMessage("error.user.duplicate"));
      }
    }
      if (form.getUserPassword().length() > 0) {
          if (!form.getUserPassword().equals(form.getVerifyPassword())) {
            errors.add("userPassword", new ActionMessage("error.password.nomatch"));
          }
          if (!Utility.isValidPassword(form.getUserPassword())) {
            errors.add("userPassword", new ActionMessage("error.password.invalidRule"));
          }
      }

      return errors;
    }
 
    protected java.util.Map<String, String> getKeyMethodMap()  {
        Map<String, String> map = new HashMap<String, String>();
        map.put("save", "save");
        map.put("edit", "edit");
        map.put("create", "create");
        map.put("remove", "remove");
        return map;
    }
}
TOP

Related Classes of com.jada.admin.user.UserMaintAction

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.