You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/03/10 15:57:34 UTC
[syncope] branch 2_0_X updated: Fixing missing JobActionPanel for
SchedTaskDirectoryPanel
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_0_X by this push:
new 4de472e Fixing missing JobActionPanel for SchedTaskDirectoryPanel
4de472e is described below
commit 4de472e18182df7b21ae09cbc1c36d3b5c7665da
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Tue Mar 10 16:46:01 2020 +0100
Fixing missing JobActionPanel for SchedTaskDirectoryPanel
---
.../tasks/ProvisioningTaskDirectoryPanel.java | 20 ++++++----
.../console/tasks/SchedTaskDirectoryPanel.java | 45 ++++++++++++++++++++--
.../syncope/client/console/widgets/JobWidget.java | 29 +++++++++++---
3 files changed, 77 insertions(+), 17 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
index 956e238..4765551 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
@@ -34,6 +34,7 @@ import org.apache.syncope.common.lib.to.PullTaskTO;
import org.apache.syncope.common.lib.to.PushTaskTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.lib.types.TaskType;
+import org.apache.wicket.Component;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
@@ -43,6 +44,7 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColu
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
@@ -137,13 +139,17 @@ public abstract class ProvisioningTaskDirectoryPanel<T extends ProvisioningTaskT
final String componentId,
final IModel<T> rowModel) {
- JobTO jobTO = restClient.getJob(rowModel.getObject().getKey());
- JobActionPanel panel = new JobActionPanel(
- componentId, jobTO, false, ProvisioningTaskDirectoryPanel.this, pageRef);
- MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE,
- String.format("%s,%s",
- StandardEntitlement.TASK_EXECUTE,
- StandardEntitlement.TASK_UPDATE));
+ Component panel;
+ try {
+ JobTO jobTO = restClient.getJob(rowModel.getObject().getKey());
+ panel = new JobActionPanel(componentId, jobTO, false, ProvisioningTaskDirectoryPanel.this, pageRef);
+ MetaDataRoleAuthorizationStrategy.authorize(
+ panel, WebPage.ENABLE,
+ String.format("%s,%s", StandardEntitlement.TASK_EXECUTE, StandardEntitlement.TASK_UPDATE));
+ } catch (Exception e) {
+ LOG.error("Could not get job for task {}", rowModel.getObject().getKey(), e);
+ panel = new Label(componentId, Model.of());
+ }
cellItem.add(panel);
}
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index 5cc8959..974d744 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -40,21 +40,26 @@ import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.Bas
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.client.console.widgets.JobActionPanel;
import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.JobTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
import org.apache.syncope.common.lib.to.TemplatableTO;
+import org.apache.wicket.Component;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
@@ -131,7 +136,7 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
}
protected List<IColumn<T, String>> getFieldColumns() {
- final List<IColumn<T, String>> columns = new ArrayList<>();
+ List<IColumn<T, String>> columns = new ArrayList<>();
columns.add(new KeyPropertyColumn<T>(
new StringResourceModel("key", this), "key"));
@@ -146,8 +151,11 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
@Override
public void populateItem(
- final Item<ICellPopulator<T>> item, final String componentId, final IModel<T> rowModel) {
- final IModel<?> model = getDataModel(rowModel);
+ final Item<ICellPopulator<T>> item,
+ final String componentId,
+ final IModel<T> rowModel) {
+
+ IModel<?> model = getDataModel(rowModel);
if (model != null && model.getObject() instanceof String) {
String value = String.class.cast(model.getObject());
if (value.length() > 20) {
@@ -159,7 +167,6 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
super.populateItem(item, componentId, rowModel);
}
}
-
});
columns.add(new DatePropertyColumn<T>(
@@ -174,6 +181,36 @@ public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
columns.add(new BooleanPropertyColumn<T>(
new StringResourceModel("active", this), "active", "active"));
+ columns.add(new AbstractColumn<T, String>(new Model<>(""), "running") {
+
+ private static final long serialVersionUID = -4008579357070833846L;
+
+ @Override
+ public void populateItem(
+ final Item<ICellPopulator<T>> cellItem,
+ final String componentId,
+ final IModel<T> rowModel) {
+
+ Component panel;
+ try {
+ JobTO jobTO = restClient.getJob(rowModel.getObject().getKey());
+ panel = new JobActionPanel(componentId, jobTO, false, SchedTaskDirectoryPanel.this, pageRef);
+ MetaDataRoleAuthorizationStrategy.authorize(
+ panel, WebPage.ENABLE,
+ String.format("%s,%s", StandardEntitlement.TASK_EXECUTE, StandardEntitlement.TASK_UPDATE));
+ } catch (Exception e) {
+ LOG.error("Could not get job for task {}", rowModel.getObject().getKey(), e);
+ panel = new Label(componentId, Model.of());
+ }
+ cellItem.add(panel);
+ }
+
+ @Override
+ public String getCssClass() {
+ return "col-xs-1";
+ }
+ });
+
return columns;
}
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index 5cb35bc..b2eff2c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -358,12 +358,29 @@ public class JobWidget extends BaseWidget {
JobTO jobTO = rowModel.getObject();
JobActionPanel panel = new JobActionPanel(componentId, jobTO, true, JobWidget.this, pageRef);
- MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE,
- String.format("%s,%s,%s,%s",
- StandardEntitlement.TASK_EXECUTE,
- StandardEntitlement.REPORT_EXECUTE,
- StandardEntitlement.TASK_UPDATE,
- StandardEntitlement.REPORT_UPDATE));
+
+ String roles;
+ switch (jobTO.getType()) {
+ case TASK:
+ roles = String.format("%s,%s",
+ StandardEntitlement.TASK_EXECUTE, StandardEntitlement.TASK_UPDATE);
+ break;
+
+ case REPORT:
+ roles = String.format("%s,%s",
+ StandardEntitlement.REPORT_EXECUTE, StandardEntitlement.REPORT_UPDATE);
+ break;
+
+ case NOTIFICATION:
+ roles = String.format("%s,%s",
+ StandardEntitlement.NOTIFICATION_EXECUTE, StandardEntitlement.NOTIFICATION_UPDATE);
+ break;
+
+ default:
+ roles = "NO_ROLES";
+ }
+
+ MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE, roles);
cellItem.add(panel);
}