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.service;
35
36 import fr.paris.lutece.plugins.mylutece.business.LuteceUserRoleDescription;
37 import fr.paris.lutece.portal.business.role.Role;
38 import fr.paris.lutece.portal.business.role.RoleHome;
39 import fr.paris.lutece.portal.service.datastore.DatastoreService;
40 import fr.paris.lutece.portal.service.i18n.I18nService;
41 import fr.paris.lutece.portal.service.security.LuteceUser;
42
43 import java.util.ArrayList;
44 import java.util.Arrays;
45 import java.util.Collection;
46 import java.util.List;
47 import java.util.Locale;
48
49
50
51
52 public class MyLuteceDefaultRoleProvider implements IMyLuteceExternalRolesProvider
53 {
54
55
56 private static final String PROPERTY_DEFAULT_ROLE_DESCRIPTION = "mylutece.defaultRoleProvider.roleDescription";
57 private static final String PROPERTY_DEFAULT_ROLE_NOT_EXIST = "mylutece.defaultRoleProvider.roleNotExist";
58
59
60 private static final String KEY_DATASTORE_DEFAULT_ROLES = "mylutece.site_property.default_role_keys";
61
62
63 @Override
64 public Collection<String> providesRoles( LuteceUser user )
65 {
66
67 String strDefaultRoleKeys = DatastoreService.getDataValue( KEY_DATASTORE_DEFAULT_ROLES, null );
68
69 if ( strDefaultRoleKeys != null )
70 {
71 return Arrays.asList( strDefaultRoleKeys.split( "," ) );
72 }
73 else
74 {
75 return new ArrayList<>( );
76 }
77 }
78
79
80
81
82 @Override
83 public List<LuteceUserRoleDescription> getLuteceUserRolesProvided(Locale locale) {
84 String strDefaultRoleKeys = DatastoreService.getDataValue(KEY_DATASTORE_DEFAULT_ROLES, null);
85 List<LuteceUserRoleDescription> lisDescriptions = new ArrayList<LuteceUserRoleDescription>();
86 if (strDefaultRoleKeys != null) {
87
88 for (String strRole : Arrays.asList(strDefaultRoleKeys.split(","))) {
89 Role role = RoleHome.findByPrimaryKey(strRole);
90 if (role != null) {
91 lisDescriptions.add(
92 new LuteceUserRoleDescription(role, LuteceUserRoleDescription.TYPE_AUTOMATIC_ASSIGNMENT,
93 I18nService.getLocalizedString(PROPERTY_DEFAULT_ROLE_DESCRIPTION, locale)));
94
95 } else {
96 Role roleEmty = new Role();
97 roleEmty.setRole(strRole);
98 lisDescriptions.add(new LuteceUserRoleDescription(roleEmty,
99 LuteceUserRoleDescription.TYPE_AUTOMATIC_ASSIGNMENT,
100 I18nService.getLocalizedString(PROPERTY_DEFAULT_ROLE_NOT_EXIST, locale)));
101
102 }
103
104 }
105
106 }
107 return lisDescriptions;
108
109 }
110
111 }