View Javadoc
1   /*
2    * Copyright (c) 2002-2019, Mairie de Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.plugins.appcenter.modules.identitystore.web;
35  
36  import java.util.HashMap;
37  import java.util.Locale;
38  import java.util.Map;
39  import javax.inject.Inject;
40  import javax.servlet.http.HttpServletRequest;
41  import fr.paris.lutece.plugins.appcenter.business.Application;
42  import fr.paris.lutece.plugins.appcenter.business.ApplicationHome;
43  import fr.paris.lutece.plugins.appcenter.business.DemandHome;
44  import fr.paris.lutece.plugins.appcenter.modules.identitystore.business.AttributeHome;
45  import fr.paris.lutece.plugins.appcenter.modules.identitystore.business.IdentitystoreData;
46  import fr.paris.lutece.plugins.appcenter.modules.identitystore.business.IdentitystoreDemand;
47  import fr.paris.lutece.plugins.appcenter.web.Constants;
48  import fr.paris.lutece.plugins.workflow.web.task.NoConfigTaskComponent;
49  import fr.paris.lutece.plugins.workflowcore.service.resource.IResourceHistoryService;
50  import fr.paris.lutece.plugins.workflowcore.service.task.ITask;
51  import fr.paris.lutece.portal.service.template.AppTemplateService;
52  import fr.paris.lutece.util.bean.BeanUtil;
53  import fr.paris.lutece.util.beanvalidation.BeanValidationUtil;
54  import fr.paris.lutece.util.html.HtmlTemplate;
55  import java.util.Set;
56  import javax.validation.ConstraintViolation;
57  
58  public class IdentitystoreTaskComponent extends NoConfigTaskComponent
59  {
60      // TEMPLATES
61      private static final String TEMPLATE_IDENTITYSTORE_TASK_FORM = "admin/plugins/appcenter/modules/identitystore/identitystore_task_form.html";
62      private static final String TEMPLATE_IDENTITYSTORE_DISPLAY_HISTORY = "admin/plugins/appcenter/modules/identitystore/identitystore_task_history.html";
63      private static final String MARK_ATTRIBUTES = "attributes";
64  
65      // MESSAGES
66  
67      // MARKS
68  
69      @Inject
70      private IResourceHistoryService _resourceHistoryService;
71  
72      /**
73       * {@inheritDoc}
74       */
75      @Override
76      public String getDisplayTaskForm( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
77      {
78          Map<String, Object> model = new HashMap<String, Object>( );
79  
80          IdentitystoreDemand demand = DemandHome.findByPrimaryKey( nIdResource, IdentitystoreDemand.class );
81  
82          if ( demand != null )
83          {
84  
85              model.put( Constants.MARK_DEMAND, demand );
86              Application application = ApplicationHome.findByPrimaryKey( demand.getIdApplication( ) );
87              model.put( Constants.MARK_APPLICATION, application );
88              model.put( MARK_ATTRIBUTES, AttributeHome.getAttributesList( ) );
89          }
90  
91          HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_IDENTITYSTORE_TASK_FORM, locale, model );
92  
93          return template.getHtml( );
94      }
95  
96      /**
97       * {@inheritDoc}
98       */
99      @Override
100     public String doValidateTask( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
101     {
102         IdentitystoreDatales/identitystore/business/IdentitystoreData.html#IdentitystoreData">IdentitystoreData identitystoreData = new IdentitystoreData( );
103         BeanUtil.populate( identitystoreData, request );
104 
105         // FIXME return real error message here
106         Set<ConstraintViolation<IdentitystoreData>> errors = BeanValidationUtil.validate( identitystoreData );
107         if ( !errors.isEmpty( ) )
108         {
109             for ( ConstraintViolation<IdentitystoreData> constraint : errors )
110             {
111                 return constraint.getMessage( );
112             }
113         }
114 
115         return null;
116     }
117 
118     /**
119      * {@inheritDoc}
120      */
121     @Override
122     public String getDisplayTaskInformation( int nIdHistory, HttpServletRequest request, Locale locale, ITask task )
123     {
124 
125         Map<String, Object> model = new HashMap<String, Object>( );
126         HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_IDENTITYSTORE_DISPLAY_HISTORY, locale, model );
127         return template.getHtml( );
128     }
129 
130     /**
131      * {@inheritDoc}
132      */
133     @Override
134     public String getTaskInformationXml( int nIdHistory, HttpServletRequest request, Locale locale, ITask task )
135     {
136         return null;
137     }
138 }