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.accesscontrol.service;
35
36 import java.io.Serializable;
37 import java.util.List;
38 import java.util.Locale;
39 import java.util.Map;
40
41 import fr.paris.lutece.api.user.User;
42 import fr.paris.lutece.plugins.accesscontrol.business.AccessControl;
43 import fr.paris.lutece.plugins.accesscontrol.business.AccessControlFilter;
44 import fr.paris.lutece.plugins.accesscontrol.business.AccessControlHome;
45 import fr.paris.lutece.plugins.accesscontrol.business.AccessController;
46 import fr.paris.lutece.plugins.accesscontrol.business.AccessControllerHome;
47 import fr.paris.lutece.portal.business.accesscontrol.AccessControlSessionData;
48 import fr.paris.lutece.portal.service.spring.SpringContextService;
49 import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupService;
50 import fr.paris.lutece.util.ReferenceList;
51
52 public class AccessControlService implements IAccessControlService
53 {
54 public static final String BEAN_NAME = "accesscontrol.accessControlService";
55
56 @Override
57 public ReferenceList createAccessControllerReferenceList( Locale locale )
58 {
59 ReferenceList list = new ReferenceList( );
60 for ( IAccessControllerType controller : SpringContextService.getBeansOfType( IAccessControllerType.class ) )
61 {
62 list.addItem( controller.getBeanName( ), controller.getTitle( locale ) );
63 }
64 return list;
65 }
66
67 @Override
68 public void deleteAccessController( int idControlType )
69 {
70 AccessController accessController = AccessControllerHome.findByPrimaryKey( idControlType );
71 if ( accessController != null )
72 {
73 IAccessControllerType controller = SpringContextService.getBean( accessController.getType( ) );
74 if ( controller instanceof IPersistentAccessControllerType )
75 {
76 ( (IPersistentAccessControllerType) controller ).doDeleteDataHandlerConfig( accessController.getId( ) );
77 }
78
79 if ( controller.hasConfig( ) )
80 {
81 controller.deleteConfig( idControlType );
82 }
83 AccessControllerHome.remove( idControlType );
84 }
85 }
86
87 @Override
88 public List<AccessControl> getListAccessControlsByFilter( AccessControlFilter filter )
89 {
90 return AccessControlHome.getAccessControllersListByFilter( filter );
91 }
92
93 @Override
94 public ReferenceList getAccessControlsEnabled( User user, Locale locale )
95 {
96 AccessControlFilterol/business/AccessControlFilter.html#AccessControlFilter">AccessControlFilter filter = new AccessControlFilter( );
97 filter.setIsEnabled( AccessControlFilter.FILTER_TRUE );
98 List<AccessControl> list = getListAccessControlsByFilter( filter );
99
100 ReferenceList referenceList = new ReferenceList( );
101 referenceList.addItem( -1, "-" );
102 for ( AccessControl accessControl : AdminWorkgroupService.getAuthorizedCollection( list, user ) )
103 {
104 referenceList.addItem( accessControl.getId( ), accessControl.getName( ) );
105 }
106 return referenceList;
107 }
108
109 @Override
110 public void applyPersistentData( AccessControlSessionData sessionData, Object destination )
111 {
112 Map<Integer, Serializable> persistentData = sessionData.getPersistentData( );
113 for ( Integer id : persistentData.keySet( ) )
114 {
115 AccessController controller = AccessControllerHome.findByPrimaryKey( id );
116 IAccessControllerType controllerType = SpringContextService.getBean( controller.getType( ) );
117 if ( controllerType instanceof IPersistentAccessControllerType )
118 {
119 IPersistentAccessControllerTypeccesscontrol/service/IPersistentAccessControllerType.html#IPersistentAccessControllerType">IPersistentAccessControllerType persistentControllerType = (IPersistentAccessControllerType) controllerType;
120 persistentControllerType.applyPersistentData( controller, sessionData, destination );
121 }
122 }
123 }
124 }