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.policies;
20
21 import org.apache.syncope.client.console.rest.PolicyRestClient;
22 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
23 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
24 import org.apache.syncope.common.lib.policy.AuthPolicyTO;
25 import org.apache.syncope.common.lib.policy.DefaultAuthPolicyConf;
26 import org.apache.syncope.common.lib.types.IdRepoEntitlement;
27 import org.apache.syncope.common.lib.types.PolicyType;
28 import org.apache.wicket.PageReference;
29 import org.apache.wicket.ajax.AjaxRequestTarget;
30 import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
31 import org.apache.wicket.model.IModel;
32 import org.apache.wicket.model.Model;
33
34 public class AuthPolicyDirectoryPanel extends PolicyDirectoryPanel<AuthPolicyTO> {
35
36 private static final long serialVersionUID = 4984337552918213290L;
37
38 public AuthPolicyDirectoryPanel(final String id, final PolicyRestClient restClient, final PageReference pageRef) {
39 super(id, restClient, PolicyType.AUTH, pageRef);
40
41 AuthPolicyTO defaultItem = new AuthPolicyTO();
42
43 this.addNewItemPanelBuilder(
44 new PolicyModalPanelBuilder<>(PolicyType.AUTH, defaultItem, modal, restClient, pageRef), true);
45 MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, IdRepoEntitlement.POLICY_CREATE);
46
47 initResultTable();
48 }
49
50 @Override
51 protected void addCustomActions(final ActionsPanel<AuthPolicyTO> panel, final IModel<AuthPolicyTO> model) {
52
53 panel.add(new ActionLink<>() {
54
55 private static final long serialVersionUID = -3722207913631435501L;
56
57 @Override
58 public void onClick(final AjaxRequestTarget target, final AuthPolicyTO ignore) {
59 model.setObject(restClient.read(type, model.getObject().getKey()));
60 if (model.getObject().getConf() == null) {
61 model.getObject().setConf(new DefaultAuthPolicyConf());
62 }
63 target.add(policySpecModal.setContent(
64 new AuthPolicyModalPanel(policySpecModal, model, pageRef)));
65 policySpecModal.header(new Model<>(getString("authPolicyConf.title", model)));
66 policySpecModal.show(true);
67 }
68 }, ActionLink.ActionType.CHANGE_VIEW, IdRepoEntitlement.POLICY_UPDATE);
69 }
70 }