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.directory.modules.multiview.service;
35
36 import java.util.ArrayList;
37 import java.util.List;
38 import java.util.stream.Collectors;
39
40 import javax.servlet.http.HttpServletRequest;
41
42 import org.apache.commons.lang3.math.NumberUtils;
43
44 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.DirectoryRecordItem;
45 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.column.IRecordColumn;
46 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.column.RecordColumnFactory;
47 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.list.RecordListFacade;
48 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.panel.IRecordPanel;
49 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.panel.display.factory.RecordPanelDisplayFactory;
50
51
52
53
54 public class DirectoryMultiviewAuthorizationService implements IDirectoryMultiviewAuthorizationService
55 {
56
57 private final IRecordPanel _recordPanel;
58 private final RecordListFacade _recordListFacade;
59 private final RecordColumnFactory _recordColumnFactory;
60
61
62
63
64
65
66
67
68
69
70
71 public DirectoryMultiviewAuthorizationService( IRecordPanel recordPanel, RecordListFacade recordListFacade, RecordColumnFactory recordColumnFactory )
72 {
73 _recordPanel = recordPanel;
74 _recordListFacade = recordListFacade;
75 _recordColumnFactory = recordColumnFactory;
76 }
77
78
79
80
81 @Override
82 public boolean isUserAuthorizedOnRecord( HttpServletRequest request, int nIdRecord )
83 {
84 boolean bIsUserAuthorizedOnRecord = Boolean.FALSE;
85
86 if ( nIdRecord != NumberUtils.INTEGER_MINUS_ONE && _recordPanel != null )
87 {
88 List<IRecordColumn> listRecordColumn = _recordColumnFactory.buildRecordColumnList( );
89
90
91 RecordPanelDisplayFactory recordPanelDisplayFactory = new RecordPanelDisplayFactory( );
92 recordPanelDisplayFactory.buildRecordPanelDisplayInitializer( request, _recordPanel );
93
94 _recordListFacade.populateRecordColumns( _recordPanel, listRecordColumn, new ArrayList<>( ) );
95 List<DirectoryRecordItem> listDirectoryRecordItem = _recordPanel.getDirectoryRecordItemList( );
96
97 if ( listDirectoryRecordItem != null && !listDirectoryRecordItem.isEmpty( ) )
98 {
99 List<Integer> listIdRecord = listDirectoryRecordItem.stream( ).map( DirectoryRecordItem::getIdRecord ).collect( Collectors.toList( ) );
100 bIsUserAuthorizedOnRecord = listIdRecord.contains( nIdRecord );
101 }
102 }
103
104 return bIsUserAuthorizedOnRecord;
105 }
106 }