1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.commons;
20
21 import java.util.ArrayList;
22 import java.util.LinkedHashMap;
23 import java.util.Map;
24 import java.util.stream.Collectors;
25 import org.apache.syncope.client.console.rest.PolicyRestClient;
26 import org.apache.syncope.client.console.wicket.markup.html.form.PolicyRenderer;
27 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxDropDownChoicePanel;
28 import org.apache.syncope.common.lib.policy.PolicyTO;
29 import org.apache.syncope.common.lib.to.RealmTO;
30 import org.apache.syncope.common.lib.types.PolicyType;
31 import org.apache.wicket.markup.html.form.AbstractSingleSelectChoice;
32 import org.apache.wicket.markup.repeater.RepeatingView;
33 import org.apache.wicket.model.PropertyModel;
34 import org.apache.wicket.model.ResourceModel;
35
36 public class AMRealmPolicyProvider extends IdRepoRealmPolicyProvider {
37
38 private static final long serialVersionUID = 1671878489700L;
39
40 public AMRealmPolicyProvider(final PolicyRestClient policyRestClient) {
41 super(policyRestClient);
42 }
43
44 @Override
45 public void add(final RealmTO realmTO, final RepeatingView view) {
46 super.add(realmTO, view);
47
48 Map<String, String> accessPolicies = policyRestClient.list(PolicyType.ACCESS).stream().
49 collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new));
50 AjaxDropDownChoicePanel<String> accessPolicy = new AjaxDropDownChoicePanel<>(
51 view.newChildId(),
52 new ResourceModel("accessPolicy", "accessPolicy").getObject(),
53 new PropertyModel<>(realmTO, "accessPolicy"),
54 false);
55 accessPolicy.setChoiceRenderer(new PolicyRenderer(accessPolicies));
56 accessPolicy.setChoices(new ArrayList<>(accessPolicies.keySet()));
57 ((AbstractSingleSelectChoice<?>) accessPolicy.getField()).setNullValid(true);
58 view.add(accessPolicy);
59
60 Map<String, String> attrReleasePolicies = policyRestClient.list(PolicyType.ATTR_RELEASE).stream().
61 collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new));
62 AjaxDropDownChoicePanel<String> attrReleasePolicy = new AjaxDropDownChoicePanel<>(
63 view.newChildId(),
64 new ResourceModel("attrReleasePolicy", "attrReleasePolicy").getObject(),
65 new PropertyModel<>(realmTO, "attrReleasePolicy"),
66 false);
67 attrReleasePolicy.setChoiceRenderer(new PolicyRenderer(attrReleasePolicies));
68 attrReleasePolicy.setChoices(new ArrayList<>(attrReleasePolicies.keySet()));
69 ((AbstractSingleSelectChoice<?>) attrReleasePolicy.getField()).setNullValid(true);
70 view.add(attrReleasePolicy);
71
72 Map<String, String> authPolicies = policyRestClient.list(PolicyType.AUTH).stream().
73 collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new));
74 AjaxDropDownChoicePanel<String> authPolicy = new AjaxDropDownChoicePanel<>(
75 view.newChildId(),
76 new ResourceModel("authPolicy", "authPolicy").getObject(),
77 new PropertyModel<>(realmTO, "authPolicy"),
78 false);
79 authPolicy.setChoiceRenderer(new PolicyRenderer(authPolicies));
80 authPolicy.setChoices(authPolicies.keySet().stream().collect(Collectors.toList()));
81 ((AbstractSingleSelectChoice<?>) authPolicy.getField()).setNullValid(true);
82 view.add(authPolicy);
83
84 Map<String, String> ticketExpirationPolicies = policyRestClient.list(PolicyType.TICKET_EXPIRATION).stream().
85 collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new));
86 AjaxDropDownChoicePanel<String> ticketExpirationPolicy = new AjaxDropDownChoicePanel<>(
87 view.newChildId(),
88 new ResourceModel("ticketExpirationPolicy", "ticketExpirationPolicy").getObject(),
89 new PropertyModel<>(realmTO, "ticketExpirationPolicy"),
90 false);
91 ticketExpirationPolicy.setChoiceRenderer(new PolicyRenderer(ticketExpirationPolicies));
92 ticketExpirationPolicy.setChoices(ticketExpirationPolicies.keySet().stream().collect(Collectors.toList()));
93 ((AbstractSingleSelectChoice<?>) ticketExpirationPolicy.getField()).setNullValid(true);
94 view.add(ticketExpirationPolicy);
95 }
96 }