|
8 | 8 | */
|
9 | 9 | package biz.netcentric.cq.tools.actool.configmodel;
|
10 | 10 |
|
| 11 | +import java.util.HashMap; |
11 | 12 | import java.util.HashSet;
|
12 | 13 | import java.util.LinkedHashSet;
|
| 14 | +import java.util.Map; |
13 | 15 | import java.util.Set;
|
14 | 16 |
|
15 | 17 | import org.apache.commons.lang3.StringUtils;
|
|
18 | 20 | public class AuthorizablesConfig extends LinkedHashSet<AuthorizableConfigBean> {
|
19 | 21 | private static final long serialVersionUID = -253685832563496002L;
|
20 | 22 |
|
21 |
| - public AuthorizableConfigBean getAuthorizableConfig(String authorizableId) { |
22 |
| - for (AuthorizableConfigBean authorizableConfigBean : this) { |
23 |
| - if (StringUtils.equals(authorizableConfigBean.getAuthorizableId(), authorizableId)) { |
24 |
| - return authorizableConfigBean; |
25 |
| - } |
26 |
| - } |
27 |
| - return null; |
| 23 | + private Map<String, AuthorizableConfigBean> configBeansByPrincipalId = new HashMap<>(); |
| 24 | + |
| 25 | + @Override |
| 26 | + public boolean add(AuthorizableConfigBean configBean) { |
| 27 | + AuthorizableConfigBean previous = configBeansByPrincipalId.put(configBean.getPrincipalName(), configBean); |
| 28 | + assert previous == null; |
| 29 | + return super.add(configBean); |
28 | 30 | }
|
29 | 31 |
|
30 |
| - public AuthorizableConfigBean getAuthorizableConfigByPrincipalName(String principalName) { |
| 32 | + public AuthorizableConfigBean getAuthorizableConfig(String authorizableId) { |
31 | 33 | for (AuthorizableConfigBean authorizableConfigBean : this) {
|
32 |
| - if (StringUtils.equals(authorizableConfigBean.getPrincipalName(), principalName)) { |
| 34 | + if (StringUtils.equals(authorizableConfigBean.getAuthorizableId(), authorizableId)) { |
33 | 35 | return authorizableConfigBean;
|
34 | 36 | }
|
35 | 37 | }
|
@@ -67,7 +69,7 @@ public Set<String> removeUnmanagedPrincipalNamesAtPath(String path, Set<String>
|
67 | 69 |
|
68 | 70 | Set<String> filteredPrincipals = new HashSet<String>();
|
69 | 71 | for (String principal : principals) {
|
70 |
| - AuthorizableConfigBean authorizableConfig = getAuthorizableConfigByPrincipalName(principal); |
| 72 | + AuthorizableConfigBean authorizableConfig = configBeansByPrincipalId.get(principal); |
71 | 73 | if (authorizableConfig == null /* happens if migrateFrom is used, #290 */
|
72 | 74 | || authorizableConfig.managesPath(path, defaultUnmanagedAcePathsRegex)) {
|
73 | 75 | filteredPrincipals.add(principal);
|
|
0 commit comments