Skip to content

Commit f01e96b

Browse files
committed
Bug #14674
Guest users cannot access profiles of others users. Fix minor bugs in directory. Fix null user id in the Ckeditor plugin identitycard. Remove the login and specific identifier from the user data sent by the User Profile web service. Refactor the way the search on users and groups are performed in Administration. Uses for doing a visitor pattern so that any additional treatments on the search criteria can be done easier.
1 parent be38831 commit f01e96b

File tree

24 files changed

+700
-383
lines changed

24 files changed

+700
-383
lines changed

core-api/src/main/java/org/silverpeas/core/wbe/WbeFile.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ public OffsetDateTime getLastEditionDate() {
7070
/**
7171
* Silverpeas's identifier identifies the file from point of view of Silverpeas's platform.
7272
* <p>
73-
* In most of case, {@link #id()} will return same identifier as {@link #silverpeasId()} returns.
73+
* In most of case, {@link #id()} will return same identifier.
7474
* </p>
7575
* <p>
7676
* But sometimes, when a temporary view exists for a file and that the temporary view is the
77-
* content exposed for modifications, {@link #silverpeasId()} returns the identifier of the
77+
* content exposed for modifications, it returns the identifier of the
7878
* document and {@link #id()} returns the identifier of the view (the one used by Web Browser Edition exchanges).
7979
* </p>
8080
* @return a unique identifier as string.

core-configuration/src/main/config/properties/org/silverpeas/directory/multilang/DirectoryBundle.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,6 @@ directory.query.error.title = Recherche impossible
2121
directory.query.error.msg=Les caract\u00e8res * et ? sont des <b>caract\u00e8res joker</b>.<br/>Ils ne peuvent pas \u00eatre utilis\u00e9s au d\u00e9but d'un terme.<br/>Le caract\u00e8re ! ne peut pas \u00eatre utilis\u00e9 \u00e0 la fin d'un terme.<br/><br/>Merci de corriger la requ\u00eate et de relancer votre recherche...
2222

2323
directory.help.title = AIDE - Recherche d'une personne dans l'annuaire
24-
directory.breadcrumb.8=
24+
directory.breadcrumb.8=
25+
directory.filter=Voir&nbsp;:
26+
directory.all=Tout

core-configuration/src/main/config/properties/org/silverpeas/directory/multilang/DirectoryBundle_de.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,6 @@ directory.result.none = No card found
4444
directory.query.error.title = Suche unm\u00f6glich
4545
directory.query.error.msg=Die Zeichen * und ? sind <b>Platzhalter</b>.<br/>Sie k\u00f6nnen nicht am Anfang eines Wortes verwendet werden.<br/>Character ! can not be used at the end of a term.<br/><br/>Wir danken Ihnen, den Antrag zu korrigieren und Ihre Suche neu zu starten...
4646

47-
directory.help.title = HELP - Finding a person in the directory
47+
directory.help.title = HELP - Finding a person in the directory
48+
directory.filter=Siehe:
49+
directory.all=Alle

core-configuration/src/main/config/properties/org/silverpeas/directory/multilang/DirectoryBundle_en.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,6 @@ directory.result.none = No card found
1919
directory.query.error.title = Impossible search
2020
directory.query.error.msg=Characters * and ? are <b>wildcards</b>.<br/>It can not be used at the beginning of a term.<br/>Character ! can not be used at the end of a term.<br/><br/>Please correct the query and relaunch your search...
2121

22-
directory.help.title = HELP - Finding a person in the directory
22+
directory.help.title = HELP - Finding a person in the directory
23+
directory.filter=See:
24+
directory.all=All

core-configuration/src/main/config/properties/org/silverpeas/directory/multilang/DirectoryBundle_fr.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,6 @@ directory.result.none = Aucune fiche trouv\u00e9e
1919
directory.query.error.title = Recherche impossible
2020
directory.query.error.msg=Les caract\u00e8res * et ? sont des <b>caract\u00e8res joker</b>.<br/>Ils ne peuvent pas \u00eatre utilis\u00e9s au d\u00e9but d'un terme.<br/>Le caract\u00e8re ! ne peut pas \u00eatre utilis\u00e9 \u00e0 la fin d'un terme.<br/><br/>Merci de corriger la requ\u00eate et de relancer votre recherche...
2121

22-
directory.help.title = AIDE - Recherche d'une personne dans l'annuaire
22+
directory.help.title = AIDE - Recherche d'une personne dans l'annuaire
23+
directory.filter=Voir&nbsp;:
24+
directory.all=Tout

core-library/src/integration-test/java/org/silverpeas/core/admin/service/AbstractAdministrationTest.java

Lines changed: 62 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
* Look at CommonAdministrationIT.ods to get a better view of data.
6464
* @author silveryocha
6565
*/
66+
@SuppressWarnings("SameParameterValue")
6667
public abstract class AbstractAdministrationTest {
6768

6869
private static final String SCRIPTS_PATH =
@@ -74,43 +75,43 @@ public abstract class AbstractAdministrationTest {
7475
private static final String COMMON_DATA_INSERTION_SCRIPTS =
7576
SCRIPTS_PATH + "/insert-administration-database.sql";
7677

77-
final static String DOMAIN_SP_ID = "0";
78-
final static String DOMAIN_SQL_ID = "1";
79-
80-
final static String USER_ADM_0_ID_VALID = "0";
81-
final static String USER_SPU1_1001_ID_VALID = "1001";
82-
final static String USER_SPU2_1002_ID_BLOCKED = "1002";
83-
final static String USER_SPU3_1003_ID_EXPIRED = "1003";
84-
final static String USER_SPU4_1004_ID_VALID = "1004";
85-
final static String USER_SPU5_1005_ID_VALID = "1005";
86-
final static String USER_SPU6_1006_ID_VALID = "1006";
87-
final static String USER_SPU7_1007_ID_DEACTIVATED = "1007";
88-
final static String USER_SPU8_1008_ID_VALID = "1008";
89-
final static String USER_SPU9_1009_ID_VALID = "1009";
90-
final static String USER_SPU10_1010_ID_VALID = "1010";
91-
final static String USER_SPU11_1011_ID_REMOVED = "1011";
92-
final static String USER_SPU12_1012_ID_VALID = "1012";
93-
final static String USER_SPU13_1013_ID_VALID = "1013";
94-
final static String USER_SPU14_1014_ID_VALID = "1014";
95-
final static String USER_SPU15_1015_ID_DELETED = "1015";
96-
final static String USER_SPU16_1016_ID_VALID = "1016";
97-
final static String USER_SQLU1_2001_ID_VALID = "2001";
98-
final static String USER_SQLU2_2002_ID_VALID = "2002";
99-
final static String USER_SQLU3_2003_ID_DELETED = "2003";
100-
final static String USER_SQLU4_2004_ID_VALID = "2004";
101-
final static String USER_SQLU5_2005_ID_VALID = "2005";
102-
final static String USER_SQLU6_2006_ID_REMOVED = "2006";
103-
final static String USER_SQLU7_2007_ID_VALID = "2007";
104-
final static String USER_SQLU8_2008_ID_DELETED = "2008";
105-
final static String USER_SQLU9_2009_ID_VALID = "2009";
106-
final static String USER_SQLU10_2010_ID_VALID = "2010";
107-
final static String USER_SQLU11_2011_ID_VALID = "2011";
108-
final static String USER_SQLU12_2012_ID_REMOVED = "2012";
109-
final static String USER_SQLU13_2013_ID_VALID = "2013";
110-
final static String USER_SQLU14_2014_ID_VALID = "2014";
111-
final static String USER_SQLU15_2015_ID_DELETED = "2015";
112-
113-
final static String[] SP_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME = new String[]{
78+
static final String DOMAIN_SP_ID = "0";
79+
static final String DOMAIN_SQL_ID = "1";
80+
81+
static final String USER_ADM_0_ID_VALID = "0";
82+
static final String USER_SPU1_1001_ID_VALID = "1001";
83+
static final String USER_SPU2_1002_ID_BLOCKED = "1002";
84+
static final String USER_SPU3_1003_ID_EXPIRED = "1003";
85+
static final String USER_SPU4_1004_ID_VALID = "1004";
86+
static final String USER_SPU5_1005_ID_VALID = "1005";
87+
static final String USER_SPU6_1006_ID_VALID = "1006";
88+
static final String USER_SPU7_1007_ID_DEACTIVATED = "1007";
89+
static final String USER_SPU8_1008_ID_VALID = "1008";
90+
static final String USER_SPU9_1009_ID_VALID = "1009";
91+
static final String USER_SPU10_1010_ID_VALID = "1010";
92+
static final String USER_SPU11_1011_ID_REMOVED = "1011";
93+
static final String USER_SPU12_1012_ID_VALID = "1012";
94+
static final String USER_SPU13_1013_ID_VALID = "1013";
95+
static final String USER_SPU14_1014_ID_VALID = "1014";
96+
static final String USER_SPU15_1015_ID_DELETED = "1015";
97+
static final String USER_SPU16_1016_ID_VALID = "1016";
98+
static final String USER_SQLU1_2001_ID_VALID = "2001";
99+
static final String USER_SQLU2_2002_ID_VALID = "2002";
100+
static final String USER_SQLU3_2003_ID_DELETED = "2003";
101+
static final String USER_SQLU4_2004_ID_VALID = "2004";
102+
static final String USER_SQLU5_2005_ID_VALID = "2005";
103+
static final String USER_SQLU6_2006_ID_REMOVED = "2006";
104+
static final String USER_SQLU7_2007_ID_VALID = "2007";
105+
static final String USER_SQLU8_2008_ID_DELETED = "2008";
106+
static final String USER_SQLU9_2009_ID_VALID = "2009";
107+
static final String USER_SQLU10_2010_ID_VALID = "2010";
108+
static final String USER_SQLU11_2011_ID_VALID = "2011";
109+
static final String USER_SQLU12_2012_ID_REMOVED = "2012";
110+
static final String USER_SQLU13_2013_ID_VALID = "2013";
111+
static final String USER_SQLU14_2014_ID_VALID = "2014";
112+
static final String USER_SQLU15_2015_ID_DELETED = "2015";
113+
114+
static final String[] SP_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME = new String[]{
114115
USER_ADM_0_ID_VALID, USER_SPU1_1001_ID_VALID, USER_SPU10_1010_ID_VALID,
115116
USER_SPU11_1011_ID_REMOVED,
116117
USER_SPU12_1012_ID_VALID, USER_SPU13_1013_ID_VALID, USER_SPU14_1014_ID_VALID, USER_SPU16_1016_ID_VALID,
@@ -120,7 +121,7 @@ public abstract class AbstractAdministrationTest {
120121
USER_SPU8_1008_ID_VALID, USER_SPU9_1009_ID_VALID
121122
};
122123

123-
final static String[] SQL_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME = new String[]{
124+
static final String[] SQL_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME = new String[]{
124125
USER_SQLU1_2001_ID_VALID, USER_SQLU10_2010_ID_VALID, USER_SQLU11_2011_ID_VALID,
125126
USER_SQLU12_2012_ID_REMOVED,
126127
USER_SQLU13_2013_ID_VALID, USER_SQLU14_2014_ID_VALID,
@@ -131,47 +132,47 @@ public abstract class AbstractAdministrationTest {
131132
USER_SQLU9_2009_ID_VALID
132133
};
133134

134-
final static String[] ALL_NOT_DELETED_USER_IDS_SORTED_BY_NAME = Stream
135+
static final String[] ALL_NOT_DELETED_USER_IDS_SORTED_BY_NAME = Stream
135136
.concat(Stream.of(SP_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME),
136137
Stream.of(SQL_DOMAIN_NOT_DELETED_USER_IDS_SORTED_BY_NAME))
137138
.toArray(String[]::new);
138139

139-
final static String GROUP_MIX_1_ID = "1";
140-
final static String GROUP_MIX_2_ID = "2";
141-
final static String GROUP_MIX_3_ID = "3";
142-
final static String GROUP_MIX_31_ID = "31";
143-
final static String GROUP_MIX_311_ID = "311";
144-
final static String GROUP_MIX_312_ID = "312";
145-
final static String GROUP_SP_1_ID = "1001";
146-
final static String GROUP_SP_2_ID = "1002";
147-
final static String GROUP_SQL_1_ID = "2001";
148-
final static String GROUP_SQL_11_ID = "2011";
149-
150-
final static String[] ALL_GROUP_IDS_SORTED_BY_NAME = new String[] {
140+
static final String GROUP_MIX_1_ID = "1";
141+
static final String GROUP_MIX_2_ID = "2";
142+
static final String GROUP_MIX_3_ID = "3";
143+
static final String GROUP_MIX_31_ID = "31";
144+
static final String GROUP_MIX_311_ID = "311";
145+
static final String GROUP_MIX_312_ID = "312";
146+
static final String GROUP_SP_1_ID = "1001";
147+
static final String GROUP_SP_2_ID = "1002";
148+
static final String GROUP_SQL_1_ID = "2001";
149+
static final String GROUP_SQL_11_ID = "2011";
150+
151+
static final String[] ALL_GROUP_IDS_SORTED_BY_NAME = new String[] {
151152
GROUP_MIX_1_ID, GROUP_MIX_2_ID, GROUP_MIX_3_ID, GROUP_MIX_31_ID, GROUP_MIX_311_ID, GROUP_MIX_312_ID,
152153
GROUP_SP_1_ID, GROUP_SP_2_ID,
153154
GROUP_SQL_1_ID, GROUP_SQL_11_ID
154155
};
155156

156-
final static Integer[] ALL_GROUP_NB_USERS_SORTED_BY_NAME = new Integer[] {
157+
static final Integer[] ALL_GROUP_NB_USERS_SORTED_BY_NAME = new Integer[] {
157158
0, 0, 0, 0, 0, 0,
158159
0, 0,
159160
0, 0
160161
};
161162

162-
final static Integer[] ALL_GROUP_TOTAL_NB_USERS_SORTED_BY_NAME = new Integer[] {
163+
static final Integer[] ALL_GROUP_TOTAL_NB_USERS_SORTED_BY_NAME = new Integer[] {
163164
1, 4, 11, 10, 5, 5,
164165
2, 2,
165166
5, 3
166167
};
167168

168-
final static String INSTANCE_SPACE_A_LEVEL_1_KMELIA_ID = "1";
169-
final static String INSTANCE_SPACE_A_LEVEL_2_BLOG_ID = "2";
170-
final static String INSTANCE_SPACE_B_LEVEL_1_ALMANACH_ID = "3";
169+
static final String INSTANCE_SPACE_A_LEVEL_1_KMELIA_ID = "1";
170+
static final String INSTANCE_SPACE_A_LEVEL_2_BLOG_ID = "2";
171+
static final String INSTANCE_SPACE_B_LEVEL_1_ALMANACH_ID = "3";
171172

172-
final static String INSTANCE_SPACE_A_LEVEL_1_KMELIA_ROOT_FOLDER_ID = "10";
173-
final static String INSTANCE_SPACE_A_LEVEL_1_KMELIA_FOLDER_1_ID = "101";
174-
final static String INSTANCE_SPACE_A_LEVEL_1_KMELIA_FOLDER_11_ID = "1011";
173+
static final String INSTANCE_SPACE_A_LEVEL_1_KMELIA_ROOT_FOLDER_ID = "10";
174+
static final String INSTANCE_SPACE_A_LEVEL_1_KMELIA_FOLDER_1_ID = "101";
175+
static final String INSTANCE_SPACE_A_LEVEL_1_KMELIA_FOLDER_11_ID = "1011";
175176

176177
@Inject
177178
Administration admin;
@@ -272,7 +273,7 @@ void updateGroup(final GroupDetail group) {
272273
}
273274

274275
static class UserSearchCriteriaBuilder {
275-
private UserDetailsSearchCriteria searchCriteria;
276+
private final UserDetailsSearchCriteria searchCriteria;
276277

277278
private UserSearchCriteriaBuilder() {
278279
searchCriteria = new UserDetailsSearchCriteria();
@@ -354,7 +355,7 @@ UserSearchCriteriaBuilder withLastName(final String lastName) {
354355
}
355356

356357
static class GroupSearchCriteriaBuilder {
357-
private GroupsSearchCriteria searchCriteria;
358+
private final GroupsSearchCriteria searchCriteria;
358359
private String domainId = null;
359360
private boolean withMixedDomain = false;
360361

core-library/src/integration-test/java/org/silverpeas/core/admin/service/AdministrationSearchGroupIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ public class AdministrationSearchGroupIT extends AbstractAdministrationTest {
5858
public static Archive<?> createTestArchive() {
5959
return WarBuilder4LibCore.onWarForTestClass(AdministrationSearchGroupIT.class)
6060
.addCommonBasicUtilities().addPublicationTemplateFeatures().addSilverpeasExceptionBases()
61-
.testFocusedOn((w) -> ((WarBuilder4LibCore) w).addAdministrationFeatures()).build();
61+
.testFocusedOn(w ->
62+
((WarBuilder4LibCore) w).addAdministrationFeatures()).build();
6263
}
6364

6465
@Test

core-library/src/integration-test/java/org/silverpeas/core/admin/service/AdministrationSearchUserIT.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@
2727
import org.jboss.arquillian.container.test.api.Deployment;
2828
import org.jboss.arquillian.junit.Arquillian;
2929
import org.jboss.shrinkwrap.api.Archive;
30-
import org.junit.Rule;
30+
import org.junit.Assert;
3131
import org.junit.Test;
32-
import org.junit.rules.ExpectedException;
3332
import org.junit.runner.RunWith;
3433
import org.silverpeas.core.admin.PaginationPage;
3534
import org.silverpeas.core.admin.component.model.PersonalComponent;
@@ -71,12 +70,10 @@ public class AdministrationSearchUserIT extends AbstractAdministrationTest {
7170
public static Archive<?> createTestArchive() {
7271
return WarBuilder4LibCore.onWarForTestClass(AdministrationSearchGroupIT.class)
7372
.addCommonBasicUtilities().addPublicationTemplateFeatures().addSilverpeasExceptionBases()
74-
.testFocusedOn((w) -> ((WarBuilder4LibCore) w).addAdministrationFeatures()).build();
73+
.testFocusedOn(w ->
74+
((WarBuilder4LibCore) w).addAdministrationFeatures()).build();
7575
}
7676

77-
@Rule
78-
public ExpectedException exceptionRule = ExpectedException.none();
79-
8077
@Test
8178
public void noCriteria() throws AdminException {
8279
final SilverpeasList<UserDetail> users = admin.searchUsers(newUserSearchCriteriaBuilder().build());
@@ -209,14 +206,13 @@ public void specificIdsCriteria() throws AdminException {
209206
}
210207

211208
@Test
212-
public void specificIdsCriteriaError() throws AdminException {
213-
exceptionRule.expect(AdminException.class);
214-
exceptionRule.expectMessage("Fail to get users matching some criteria");
209+
public void specificIdsCriteriaError() {
215210
// getting an error if several domain ids criterion is set with the specific ids ones
216-
admin.searchUsers(newUserSearchCriteriaBuilder()
217-
.withDomainIds(DOMAIN_SP_ID, DOMAIN_SQL_ID)
218-
.withSpecificIds("11")
219-
.build());
211+
Assert.assertThrows("Fail to get users matching some criteria", AdminException.class,
212+
() -> admin.searchUsers(newUserSearchCriteriaBuilder()
213+
.withDomainIds(DOMAIN_SP_ID, DOMAIN_SQL_ID)
214+
.withSpecificIds("11")
215+
.build()));
220216
}
221217

222218
@Test

core-library/src/integration-test/java/org/silverpeas/core/admin/service/AdministrationServiceProviderIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,8 @@ public static Archive<?> createTestArchive() {
5151
.addCommonBasicUtilities()
5252
.addSilverpeasExceptionBases()
5353
.addPublicationTemplateFeatures()
54-
.testFocusedOn((warBuilder) -> {
55-
((WarBuilder4LibCore) warBuilder).addAdministrationFeatures();
56-
}).build();
54+
.testFocusedOn(warBuilder ->
55+
((WarBuilder4LibCore) warBuilder).addAdministrationFeatures()).build();
5756
}
5857

5958
@Test

0 commit comments

Comments
 (0)