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 fr.paris.lutece.plugins.directory.business.DirectoryFilter;
37 import fr.paris.lutece.plugins.directory.business.DirectoryHome;
38 import java.util.List;
39
40 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.column.IRecordColumn;
41 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.filter.IRecordFilter;
42 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.list.RecordListFacade;
43 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.panel.IRecordPanel;
44 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.panel.display.IRecordPanelDisplay;
45 import fr.paris.lutece.plugins.directory.service.DirectoryPlugin;
46 import fr.paris.lutece.plugins.directory.service.DirectoryResourceIdService;
47 import fr.paris.lutece.portal.service.admin.AdminUserService;
48 import fr.paris.lutece.portal.service.plugin.PluginService;
49 import fr.paris.lutece.portal.service.rbac.RBACService;
50 import fr.paris.lutece.portal.service.spring.SpringContextService;
51 import java.util.stream.Collectors;
52 import javax.servlet.http.HttpServletRequest;
53
54
55
56
57 public class DirectoryMultiviewService implements IDirectoryMultiviewService
58 {
59
60
61
62 @Override
63 public void populateRecordColumns( IRecordPanel recordPanel, List<IRecordColumn> listRecordColumn, List<IRecordFilter> listRecordFilter )
64 {
65 RecordListFacade recordListFacade = SpringContextService.getBean( RecordListFacade.BEAN_NAME );
66 recordListFacade.populateRecordColumns( recordPanel, listRecordColumn, listRecordFilter );
67 }
68
69
70
71
72 @Override
73 public IRecordPanelDisplay findActiveRecordPanel( List<IRecordPanelDisplay> listRecordPanelDisplay )
74 {
75 IRecordPanelDisplay recordPanelDisplayActive = null;
76
77 if ( listRecordPanelDisplay != null && !listRecordPanelDisplay.isEmpty( ) )
78 {
79 for ( IRecordPanelDisplay recordPanelDisplay : listRecordPanelDisplay )
80 {
81 if ( recordPanelDisplay.isActive( ) )
82 {
83 recordPanelDisplayActive = recordPanelDisplay;
84 break;
85 }
86 }
87 }
88
89 return recordPanelDisplayActive;
90 }
91
92
93
94
95
96
97
98 @Override
99 public void filterByAuthorizedDirectory( IRecordPanel recordPanel, HttpServletRequest request )
100 {
101 List<Integer> listDirectory = RBACService
102 .getAuthorizedCollection( DirectoryHome.getDirectoryList( new DirectoryFilter( ), PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) ),
103 DirectoryResourceIdService.PERMISSION_VISUALISATION_RECORD, AdminUserService.getAdminUser( request ) ).stream( )
104 .map( directory -> directory.getIdDirectory( ) ).collect( Collectors.toList( ) );
105
106 recordPanel.setDirectoryRecordItemList( recordPanel.getDirectoryRecordItemList( ).stream( )
107 .filter( item -> listDirectory.contains( item.getIdDirectory( ) ) ).collect( Collectors.toList( ) ) );
108
109 }
110 }