Redirigir a una página despúes de registrarse

Para redirigir a una página de una comunidad después de registrarse en Liferay, hay que agregar un Evento, entonces vamos a hacer lo siguiente:

portal-ext.properties

login.events.post=com.liferay.portal.events.MyLoginPostAction,\

com.liferay.portal.events.DefaultLandingPageAction

MyLoginPostAction.java

package com.liferay.portal.events;

import ….

public class MyLoginPostAction extends Action {
private static Log _log = LogFactory.getLog(MyLoginPostAction.class);

public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException {

try {

Group group = this.getGroup(req);

this.setLastPath(group, req);

} catch(Exception e) {

_log.error(e);

throw new ActionException(e);

}
}

private void getGroup(HttpServletRequest req) {

return null;

}

private void setLastPath(Group group, HttpServletRequest req)
throws PortalException, SystemException {
long defaultPlid = LayoutLocalServiceUtil.getDefaultPlid(group.getGroupId());
Layout defaultLayout = LayoutLocalServiceUtil.getLayout(defaultPlid);
HttpSession ses = req.getSession();
Map<String, String[]> params = new HashMap<String, String[]>();
params.put(“p_l_id”, new String[] { Long.toString(defaultLayout.getPlid()) });
LastPath lastPath = new LastPath(“/c”, “/portal/layout”, params);
ses.setAttribute(WebKeys.LAST_PATH, lastPath);
}
}

En este caso va a redirigir a la primer página publica de la comunidad y si esta no existe la redirige a la primer página privada.

Esto también puede ser para redirigir a una organización o a la página de un usuario.

Tags:

2 Responses to “Redirigir a una página despúes de registrarse”

  1. Mauricio says:

    Buen dia.

    AL crear un cuenta nueva el combo genero(Hombre,Mujer) lo modifique por especialidades de medicos(Odontologo, Ginecologo,etc) la modificacion la realize en liferay-portal-tomcat-5.5-5.1.2\webapps\ROOT\html\portlet\login\create_account.jsp

    Necesito Modificar Tambien en MiCuenta el combo genero Cambiandolo Por especialidades de medicos (Odontologo, Ginecologo,etc)
    Pero no he encontrado el jsp para cambiarlo.

    Al registrarse necesito dirigir la pagina dependiendo de la especialidad del medico.

    Por lo tanto tengo que verificar la especialidad del medico registrado. para poder redirigir la pagina con la informacion de interes del medico.

    Necesito de su ayuda para poder Solucinar esto.

    Gracias

  2. admin says:

    Respuestas a tu preguntas

    Cualquier duda avisame.

    ————————–

    Buen dia.

    AL crear un cuenta nueva el combo genero(Hombre,Mujer) lo modifique por especialidades de medicos(Odontologo, Ginecologo,etc) la modificacion la realize en liferay-portal-tomcat-5.5-5.1.2\webapps\ROOT\html\portlet\login\create_account.jsp

    Te recomiendo utilizar el entorno EXT de desarrollo.

    ext-web\docroot\html\portlet\login\create_account.jsp // cuando haces el deploy sobreescribe el jsp original

    Necesito Modificar Tambien en MiCuenta el combo genero Cambiandolo Por especialidades de medicos (Odontologo, Ginecologo,etc)
    Pero no he encontrado el jsp para cambiarlo.

    ext-web\docroot\html\portlet\enterprise_admin\edit_user_profile.jspf

    Al registrarse necesito dirigir la pagina dependiendo de la especialidad del medico.

    Por lo tanto tengo que verificar la especialidad del medico registrado. para poder redirigir la pagina con la información de interes del medico.

    Yo crearía UserGroups, cada UserGroup representaria una especialidad. Cuando el usuario entra, deberias redirigir a la comunidad del UserGroup.

    Donde guardas la especialidad del medico? Yo generalmente utilizo una tabla UserInfoExtra para agregar campos adicionales a la tabla User_, por cada fila en la tabla User_ deberia haber una en la tabla UserInfoExtra. Para esto deberias modificar la clase EditUserAction, que por lo que me imagino ya deberias estar haciendo.

    ext-web\docroot\html\portlet\enterprise_admin\edit_user_profile.jspf

    < select name=" especialidad" >

    < % for(UserGroup userGroup : userGroupsList ){ %>

    < option value="<%= userGroup.getUserGroupId() %>">< %= userGroup.getName() %>

    < % } %>

    < /select >

    MyEditUserAction (copia todo lo de EditUserAction y modificar dicha accion en ext-web\docroot\WEB-INF\structs-config.xml por esta nueva implementacion)

    long especialidad = ParamUtil.getString(actionRequest, “especialidad”); // valida que haya seleccionado una especialidad

    UserInfoExtraLocalServiceUtil.addUser(user.getUserId(), especialidad);

    ….

    MyLoginPostAction (aca vas a redireccionar a la comunidad del UserGroup que representa una especialidad, no te olvides de definir esta accion en el portal-ext.properties)

    UserInfoExtra userInfoExtra = UserInfoExtraLocalServiceUtil.getUserInfoExtra(themeDisplay.getUserId());

    UserGroup userGroup = UserGroupLocalServiceUtil.getUserGroup(userInfoExtra.getEspecialidad());

    long plid = LayoutLocalServiceUtil.getDefaultPlid(userGroup.getGroupId();

    HttpSession ses = req.getSession();
    Map params = new HashMap();
    params.put(”p_l_id”, new String[] { Long.toString(defaultLayout.getPlid()) });
    LastPath lastPath = new LastPath(”/c”, “/portal/layout”, params);
    ses.setAttribute(WebKeys.LAST_PATH, lastPath);

    Necesito de su ayuda para poder Solucinar esto.

    Gracias

Leave a Reply

You must be logged in to post a comment.