1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.mylutece.modules.persona.web;
35
36 import fr.paris.lutece.plugins.mylutece.web.MyLuteceApp;
37 import fr.paris.lutece.portal.service.i18n.I18nService;
38 import fr.paris.lutece.portal.service.plugin.Plugin;
39 import fr.paris.lutece.portal.service.template.AppTemplateService;
40 import fr.paris.lutece.portal.web.PortalJspBean;
41 import fr.paris.lutece.portal.web.xpages.XPage;
42 import fr.paris.lutece.portal.web.xpages.XPageApplication;
43 import fr.paris.lutece.util.html.HtmlTemplate;
44
45 import java.util.HashMap;
46 import java.util.Locale;
47
48 import javax.servlet.http.HttpServletRequest;
49
50
51
52
53
54 public class PersonaApp implements XPageApplication
55 {
56
57 public static final String PARAMETER_PAGE = "page";
58 public static final String PARAMETER_PAGE_VALUE = "persona";
59 public static final String PARAMETER_ERROR = "error";
60 private static final String PARAMETER_ACTION = "action";
61
62
63 private static final String TEMPLATE_LOGIN_PAGE = "skin/plugins/mylutece/modules/persona/login_form.html";
64
65
66 private static final String MARK_ERROR_MESSAGE = "error_message";
67 private static final String MARK_URL_DOLOGIN = "url_dologin";
68 private static final String MARK_NEXT_URL = "next_url";
69
70
71 private static final String ACTION_LOGIN = "login";
72 private static final String PROPERTY_PAGETITLE_LOGIN = "module.mylutece.persona.loginPageTitle";
73 private static final String PROPERTY_PATHLABEL_LOGIN = "module.mylutece.persona.loginPagePath";
74
75
76
77
78
79
80
81
82 @Override
83 public XPage getPage( HttpServletRequest request, int nMode, Plugin plugin )
84 {
85 XPage page = new XPage( );
86
87 String strAction = request.getParameter( PARAMETER_ACTION );
88 Locale locale = request.getLocale( );
89
90 if ( ( strAction == null ) || strAction.equals( ACTION_LOGIN ) )
91 {
92 return getLoginPage( page, request, locale );
93 }
94
95 return page;
96 }
97
98
99
100
101
102
103
104
105 private XPage getLoginPage( XPage page, HttpServletRequest request, Locale locale )
106 {
107 HashMap model = new HashMap( );
108
109 String strError = request.getParameter( PARAMETER_ERROR );
110 String strErrorMessage = "";
111
112 if ( strError != null )
113 {
114 strErrorMessage = I18nService.getLocalizedString( strError, locale );
115 }
116
117 String strNextUrl = PortalJspBean.getLoginNextUrl(request);
118 if( ( strNextUrl != null ) && (strNextUrl.contains( "page=persona" )))
119 {
120 strNextUrl = null;
121 }
122
123
124 model.put( MARK_ERROR_MESSAGE, strErrorMessage );
125 model.put( MARK_URL_DOLOGIN, MyLuteceApp.getDoLoginUrl( ) );
126 model.put( MARK_NEXT_URL, strNextUrl );
127
128 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_LOGIN_PAGE, locale, model );
129
130 page.setContent( template.getHtml( ) );
131 page.setTitle( I18nService.getLocalizedString( PROPERTY_PAGETITLE_LOGIN, locale ) );
132 page.setPathLabel( I18nService.getLocalizedString( PROPERTY_PATHLABEL_LOGIN, locale ) );
133
134 return page;
135 }
136 }