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 2016/04/27 14:26:23 UTC

syncope git commit: [SYNCOPE-737] storePasswordInSyncope management added

Repository: syncope
Updated Branches:
  refs/heads/master 826065f06 -> b0417d7c3


[SYNCOPE-737] storePasswordInSyncope management added


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b0417d7c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b0417d7c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b0417d7c

Branch: refs/heads/master
Commit: b0417d7c3d45f2e0e2752ac4acb26af42f0e6b31
Parents: 826065f
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Apr 27 14:25:53 2016 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Apr 27 14:25:53 2016 +0200

----------------------------------------------------------------------
 .../syncope/client/console/layout/AnyForm.java  |  4 +-
 .../NotificationWizardBuilder.java              |  2 -
 .../console/panels/AnyDirectoryPanel.java       |  8 +-
 .../console/panels/AnyObjectDirectoryPanel.java | 12 +--
 .../console/panels/GroupDirectoryPanel.java     | 22 ++---
 .../console/panels/UserDirectoryPanel.java      | 25 +++--
 .../AnyObjectSelectionDirectoryPanel.java       |  4 +-
 .../search/GroupSelectionDirectoryPanel.java    |  4 +-
 .../search/UserSelectionDirectoryPanel.java     |  4 +-
 .../client/console/status/StatusModal.java      |  6 +-
 .../client/console/wizards/any/AnyHandler.java  | 38 --------
 .../wizards/any/AnyObjectWizardBuilder.java     |  2 +-
 .../console/wizards/any/AnyWizardBuilder.java   | 18 ++--
 .../client/console/wizards/any/AnyWrapper.java  | 38 ++++++++
 .../client/console/wizards/any/Details.java     |  4 +-
 .../console/wizards/any/DynamicMemberships.java |  2 +-
 .../console/wizards/any/GroupDetails.java       |  6 +-
 .../console/wizards/any/GroupHandler.java       | 99 --------------------
 .../console/wizards/any/GroupWizardBuilder.java | 18 ++--
 .../console/wizards/any/GroupWrapper.java       | 99 ++++++++++++++++++++
 .../client/console/wizards/any/Ownership.java   | 18 ++--
 .../console/wizards/any/PasswordPanel.java      | 35 ++++---
 .../console/wizards/any/Relationships.java      |  2 +-
 .../client/console/wizards/any/UserDetails.java | 23 ++---
 .../console/wizards/any/UserWizardBuilder.java  | 18 ++--
 .../client/console/wizards/any/UserWrapper.java | 41 ++++++++
 .../console/wizards/any/PasswordPanel.html      |  3 +
 .../console/wizards/any/UserDetails.properties  |  1 +
 .../wizards/any/UserDetails_it.properties       |  1 +
 .../wizards/any/UserDetails_pt_BR.properties    |  1 +
 .../wizards/any/UserDetails_ru.properties       |  9 +-
 31 files changed, 310 insertions(+), 257 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyForm.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyForm.java b/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyForm.java
index fc02efe..dac4b83 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyForm.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyForm.java
@@ -19,9 +19,9 @@
 package org.apache.syncope.client.console.layout;
 
 import org.apache.syncope.client.console.wizards.ModalPanelBuilder;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.to.AnyTO;
 
-public interface AnyForm<A extends AnyTO> extends ModalPanelBuilder<AnyHandler<A>> {
+public interface AnyForm<A extends AnyTO> extends ModalPanelBuilder<AnyWrapper<A>> {
 
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
index a38dd99..fba971e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
@@ -164,7 +164,6 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationHan
             final AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<>(
                     "template", getString("template"),
                     new PropertyModel<String>(notificationTO, "template"));
-
             template.setChoices(CollectionUtils.collect(
                     restClient.getAllAvailableTemplates(), new Transformer<MailTemplateTO, String>() {
 
@@ -186,7 +185,6 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationHan
 
             final AjaxCheckBoxPanel isActive = new AjaxCheckBoxPanel("isActive",
                     getString("isActive"), new PropertyModel<Boolean>(notificationTO, "active"));
-
             if (createFlag) {
                 isActive.getField().setDefaultModelObject(Boolean.TRUE);
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
index ff834f6..ef263fa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
@@ -39,7 +39,7 @@ import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.
 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.TokenColumn;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.client.console.wizards.any.StatusPanel;
 import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -55,7 +55,7 @@ import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.ListModel;
 
 public abstract class AnyDirectoryPanel<A extends AnyTO>
-        extends DirectoryPanel<A, AnyHandler<A>, AnyDataProvider<A>, AbstractAnyRestClient<A>> {
+        extends DirectoryPanel<A, AnyWrapper<A>, AnyDataProvider<A>, AbstractAnyRestClient<A>> {
 
     private static final long serialVersionUID = -1100228004207271270L;
 
@@ -156,7 +156,7 @@ public abstract class AnyDirectoryPanel<A extends AnyTO>
     }
 
     public abstract static class Builder<T extends AnyTO>
-            extends DirectoryPanel.Builder<T, AnyHandler<T>, AbstractAnyRestClient<T>>
+            extends DirectoryPanel.Builder<T, AnyWrapper<T>, AbstractAnyRestClient<T>>
             implements AnyDirectoryPanelBuilder {
 
         private static final long serialVersionUID = -6828423611982275640L;
@@ -197,7 +197,7 @@ public abstract class AnyDirectoryPanel<A extends AnyTO>
 
     @Override
     @SuppressWarnings("unchecked")
-    protected Panel customResultBody(final String panelId, final AnyHandler<A> item, final Serializable result) {
+    protected Panel customResultBody(final String panelId, final AnyWrapper<A> item, final Serializable result) {
         if (!(result instanceof ProvisioningResult)) {
             throw new IllegalStateException("Unsupported result type");
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
index 1e5c161..67eb2e2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
@@ -37,7 +37,7 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.Acti
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
 import org.apache.syncope.client.console.wizards.AjaxWizard;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -122,7 +122,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
-                        final IModel<AnyHandler<AnyObjectTO>> formModel = new CompoundPropertyModel<>(new AnyHandler<>(
+                        final IModel<AnyWrapper<AnyObjectTO>> formModel = new CompoundPropertyModel<>(new AnyWrapper<>(
                                 model.getObject()));
                         altDefaultModal.setFormModel(formModel);
 
@@ -130,7 +130,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
                                 altDefaultModal, pageRef, formModel.getObject().getInnerObject(), false)));
 
                         altDefaultModal.header(new Model<>(
-                                getString("any.edit", new Model<>(new AnyHandler<>(model.getObject())))));
+                                getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
 
                         altDefaultModal.show(true);
                     }
@@ -142,7 +142,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
                     public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
                         send(AnyObjectDirectoryPanel.this, Broadcast.EXACT,
                                 new AjaxWizard.EditItemActionEvent<>(
-                                        new AnyHandler<>(new AnyObjectRestClient().read(model.getObject().getKey())),
+                                        new AnyWrapper<>(new AnyObjectRestClient().read(model.getObject().getKey())),
                                         target));
                     }
                 }, ActionType.EDIT, AnyEntitlement.READ.getFor(type)).add(new ActionLink<AnyObjectTO>() {
@@ -154,7 +154,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
                         final AnyObjectTO clone = SerializationUtils.clone(model.getObject());
                         clone.setKey(null);
                         send(AnyObjectDirectoryPanel.this, Broadcast.EXACT,
-                                new AjaxWizard.NewItemActionEvent<>(new AnyHandler<>(clone), target));
+                                new AjaxWizard.NewItemActionEvent<>(new AnyWrapper<>(clone), target));
                     }
                 }, ActionType.CLONE, AnyEntitlement.CREATE.getFor(type)).add(new ActionLink<AnyObjectTO>() {
 
@@ -250,7 +250,7 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO> {
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<AnyObjectTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<AnyObjectTO>> newInstance(final String id) {
             return new AnyObjectDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
index 52587ed..017925c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
@@ -37,8 +37,8 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.Acti
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
 import org.apache.syncope.client.console.wizards.AjaxWizard;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
-import org.apache.syncope.client.console.wizards.any.GroupHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
+import org.apache.syncope.client.console.wizards.any.GroupWrapper;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.GroupTO;
@@ -115,15 +115,15 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                        final IModel<AnyHandler<GroupTO>> formModel = new CompoundPropertyModel<>(new AnyHandler<>(
-                                model.getObject()));
+                        IModel<AnyWrapper<GroupTO>> formModel = new CompoundPropertyModel<>(
+                                new AnyWrapper<>(model.getObject()));
                         altDefaultModal.setFormModel(formModel);
 
                         target.add(altDefaultModal.setContent(new StatusModal<>(
                                 altDefaultModal, pageRef, formModel.getObject().getInnerObject(), false)));
 
                         altDefaultModal.header(new Model<>(
-                                getString("any.edit", new Model<>(new AnyHandler<>(model.getObject())))));
+                                getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
 
                         altDefaultModal.show(true);
                     }
@@ -134,9 +134,8 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
                     @Override
                     public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
                         send(GroupDirectoryPanel.this, Broadcast.EXACT,
-                                new AjaxWizard.EditItemActionEvent<>(
-                                        new GroupHandler(new GroupRestClient().read(model.getObject().
-                                                getKey())), target));
+                                new AjaxWizard.EditItemActionEvent<>(new GroupWrapper(
+                                        new GroupRestClient().read(model.getObject().getKey())), target));
                     }
                 }, ActionType.EDIT, StandardEntitlement.GROUP_READ).add(new ActionLink<GroupTO>() {
 
@@ -147,7 +146,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
                         final GroupTO clone = SerializationUtils.clone(model.getObject());
                         clone.setKey(null);
                         send(GroupDirectoryPanel.this, Broadcast.EXACT,
-                                new AjaxWizard.NewItemActionEvent<>(new GroupHandler(clone), target));
+                                new AjaxWizard.NewItemActionEvent<>(new GroupWrapper(clone), target));
                     }
                 }, ActionType.CLONE, StandardEntitlement.GROUP_CREATE).add(new ActionLink<GroupTO>() {
 
@@ -229,8 +228,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
         return columns;
     }
 
-    public static class Builder extends AnyDirectoryPanel.Builder<GroupTO>
-            implements AnyDirectoryPanelBuilder {
+    public static class Builder extends AnyDirectoryPanel.Builder<GroupTO> {
 
         private static final long serialVersionUID = 3844281520756293159L;
 
@@ -240,7 +238,7 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO> {
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<GroupTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<GroupTO>> newInstance(final String id) {
             return new GroupDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
index e5f8583..f918f05 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
@@ -38,7 +38,8 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.Acti
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
 import org.apache.syncope.client.console.wizards.AjaxWizard;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
+import org.apache.syncope.client.console.wizards.any.UserWrapper;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.UserTO;
@@ -146,16 +147,15 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
-
-                        final IModel<AnyHandler<UserTO>> formModel = new CompoundPropertyModel<>(new AnyHandler<>(model.
-                                getObject()));
+                        IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>(
+                                new AnyWrapper<>(model.getObject()));
                         altDefaultModal.setFormModel(formModel);
 
                         target.add(altDefaultModal.setContent(new StatusModal<>(
                                 altDefaultModal, pageRef, formModel.getObject().getInnerObject(), false)));
 
                         altDefaultModal.header(new Model<>(
-                                getString("any.edit", new Model<>(new AnyHandler<>(model.getObject())))));
+                                getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
 
                         altDefaultModal.show(true);
                     }
@@ -165,16 +165,15 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
-                        final IModel<AnyHandler<UserTO>> formModel = new CompoundPropertyModel<>(
-                                new AnyHandler<>(model.
-                                        getObject()));
+                        IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>(
+                                new AnyWrapper<>(model.getObject()));
                         altDefaultModal.setFormModel(formModel);
 
                         target.add(altDefaultModal.setContent(new StatusModal<>(
                                 altDefaultModal, pageRef, formModel.getObject().getInnerObject(), true)));
 
                         altDefaultModal.header(new Model<>(
-                                getString("any.edit", new Model<>(new AnyHandler<>(model.getObject())))));
+                                getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
 
                         altDefaultModal.show(true);
                     }
@@ -186,7 +185,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
                     public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                         send(UserDirectoryPanel.this, Broadcast.EXACT,
                                 new AjaxWizard.EditItemActionEvent<>(
-                                        new AnyHandler<>(new UserRestClient().read(model.getObject().getKey())),
+                                        new UserWrapper(new UserRestClient().read(model.getObject().getKey())),
                                         target));
                     }
                 }, ActionType.EDIT, StandardEntitlement.USER_READ).add(new ActionLink<UserTO>() {
@@ -199,7 +198,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
                         clone.setKey(null);
                         clone.setUsername(model.getObject().getUsername() + "_clone");
                         send(UserDirectoryPanel.this, Broadcast.EXACT,
-                                new AjaxWizard.NewItemActionEvent<>(new AnyHandler<>(clone), target));
+                                new AjaxWizard.NewItemActionEvent<>(new UserWrapper(clone), target));
                     }
                 }, ActionType.CLONE, StandardEntitlement.USER_CREATE).add(new ActionLink<UserTO>() {
 
@@ -283,7 +282,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
 
     public static class Builder extends AnyDirectoryPanel.Builder<UserTO> {
 
-        private static final long serialVersionUID = 1L;
+        private static final long serialVersionUID = -6603152478702381900L;
 
         public Builder(final List<AnyTypeClassTO> anyTypeClassTOs, final String type, final PageReference pageRef) {
             super(anyTypeClassTOs, new UserRestClient(), type, pageRef);
@@ -291,7 +290,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO> {
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<UserTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<UserTO>> newInstance(final String id) {
             return new UserDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSelectionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSelectionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSelectionDirectoryPanel.java
index 2bd34b7..57e0a32 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSelectionDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSelectionDirectoryPanel.java
@@ -23,7 +23,7 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.AnyObjectDisplayAttributesModalPanel;
 import org.apache.syncope.client.console.rest.AnyObjectRestClient;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.wicket.PageReference;
@@ -72,7 +72,7 @@ public final class AnyObjectSelectionDirectoryPanel extends AnySelectionDirector
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<AnyObjectTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<AnyObjectTO>> newInstance(final String id) {
             return new AnyObjectSelectionDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSelectionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSelectionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSelectionDirectoryPanel.java
index 6e99769..d2e21bd 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSelectionDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSelectionDirectoryPanel.java
@@ -23,7 +23,7 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.GroupDisplayAttributesModalPanel;
 import org.apache.syncope.client.console.rest.GroupRestClient;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.wicket.PageReference;
@@ -72,7 +72,7 @@ public final class GroupSelectionDirectoryPanel extends AnySelectionDirectoryPan
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<GroupTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<GroupTO>> newInstance(final String id) {
             return new GroupSelectionDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSelectionDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSelectionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSelectionDirectoryPanel.java
index 28e3565..6398e82 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSelectionDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSelectionDirectoryPanel.java
@@ -23,7 +23,7 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.UserDisplayAttributesModalPanel;
 import org.apache.syncope.client.console.rest.UserRestClient;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.wicket.PageReference;
@@ -72,7 +72,7 @@ public final class UserSelectionDirectoryPanel extends AnySelectionDirectoryPane
         }
 
         @Override
-        protected WizardMgtPanel<AnyHandler<UserTO>> newInstance(final String id) {
+        protected WizardMgtPanel<AnyWrapper<UserTO>> newInstance(final String id) {
             return new UserSelectionDirectoryPanel(id, this);
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
index 374454f..d2cf748 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/status/StatusModal.java
@@ -21,14 +21,14 @@ package org.apache.syncope.client.console.status;
 import org.apache.syncope.client.console.panels.ModalPanel;
 import org.apache.syncope.client.console.panels.MultilevelPanel;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wizards.any.AnyHandler;
+import org.apache.syncope.client.console.wizards.any.AnyWrapper;
 import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
 
-public class StatusModal<T extends AnyTO> extends Panel implements ModalPanel<AnyHandler<T>> {
+public class StatusModal<T extends AnyTO> extends Panel implements ModalPanel<AnyWrapper<T>> {
 
     private static final long serialVersionUID = 1066124171682570080L;
 
@@ -51,7 +51,7 @@ public class StatusModal<T extends AnyTO> extends Panel implements ModalPanel<An
     }
 
     @Override
-    public AnyHandler<T> getItem() {
+    public AnyWrapper<T> getItem() {
         throw new UnsupportedOperationException("Not supported yet.");
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyHandler.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyHandler.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyHandler.java
deleted file mode 100644
index 4e1b13c..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wizards.any;
-
-import java.io.Serializable;
-import org.apache.syncope.common.lib.to.AnyTO;
-
-public class AnyHandler<T extends AnyTO> implements Serializable {
-
-    private static final long serialVersionUID = 8058288034211558375L;
-
-    protected final T anyTO;
-
-    public AnyHandler(final T anyTO) {
-        this.anyTO = anyTO;
-    }
-
-    public T getInnerObject() {
-        return anyTO;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
index 8a50f86..f92bb31 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
@@ -43,7 +43,7 @@ public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implem
     }
 
     @Override
-    protected Serializable onApplyInternal(final AnyHandler<AnyObjectTO> modelObject) {
+    protected Serializable onApplyInternal(final AnyWrapper<AnyObjectTO> modelObject) {
         final AnyObjectTO inner = modelObject.getInnerObject();
 
         ProvisioningResult<AnyObjectTO> actual;

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
index 624b3f2..c387cea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
@@ -36,7 +36,7 @@ import org.apache.wicket.PageReference;
 import org.apache.wicket.extensions.wizard.WizardModel;
 import org.apache.wicket.model.util.ListModel;
 
-public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilder<AnyHandler<A>> {
+public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilder<AnyWrapper<A>> {
 
     private static final long serialVersionUID = -2480279868319546243L;
 
@@ -60,7 +60,7 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
             final AbstractAnyFormLayout<A, ? extends AnyForm<A>> formLayoutInfo,
             final PageReference pageRef) {
 
-        super(new AnyHandler<>(anyTO), pageRef);
+        super(new AnyWrapper<>(anyTO), pageRef);
         this.anyTypeClasses = anyTypeClasses;
         this.formLayoutInfo = formLayoutInfo;
     }
@@ -68,24 +68,24 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
     /**
      * Construct.
      *
-     * @param handler any handler
+     * @param wrapper any wrapper
      * @param anyTypeClasses any type classes
      * @param formLayoutInfo form layout info
      * @param pageRef caller page reference.
      */
     public AnyWizardBuilder(
-            final AnyHandler<A> handler,
+            final AnyWrapper<A> wrapper,
             final List<String> anyTypeClasses,
             final AbstractAnyFormLayout<A, ? extends AnyForm<A>> formLayoutInfo,
             final PageReference pageRef) {
 
-        super(handler, pageRef);
+        super(wrapper, pageRef);
         this.anyTypeClasses = anyTypeClasses;
         this.formLayoutInfo = formLayoutInfo;
     }
 
     @Override
-    protected WizardModel buildModelSteps(final AnyHandler<A> modelObject, final WizardModel wizardModel) {
+    protected WizardModel buildModelSteps(final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
         // optional details panel step
         addOptionalDetailsPanel(modelObject, wizardModel);
 
@@ -95,10 +95,10 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
 
             GroupFormLayoutInfo groupFormLayoutInfo = GroupFormLayoutInfo.class.cast(formLayoutInfo);
             if (groupFormLayoutInfo.isOwnership()) {
-                wizardModel.add(new Ownership(GroupHandler.class.cast(modelObject), pageRef));
+                wizardModel.add(new Ownership(GroupWrapper.class.cast(modelObject), pageRef));
             }
             if (groupFormLayoutInfo.isDynamicMemberships()) {
-                wizardModel.add(new DynamicMemberships(GroupHandler.class.cast(modelObject)));
+                wizardModel.add(new DynamicMemberships(GroupWrapper.class.cast(modelObject)));
             }
         }
 
@@ -151,7 +151,7 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
     }
 
     protected AnyWizardBuilder<A> addOptionalDetailsPanel(
-            final AnyHandler<A> modelObject, final WizardModel wizardModel) {
+            final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
 
         if (modelObject.getInnerObject().getKey() != null) {
             wizardModel.add(new Details<>(

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWrapper.java
new file mode 100644
index 0000000..85698ca
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWrapper.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wizards.any;
+
+import java.io.Serializable;
+import org.apache.syncope.common.lib.to.AnyTO;
+
+public class AnyWrapper<T extends AnyTO> implements Serializable {
+
+    private static final long serialVersionUID = 8058288034211558375L;
+
+    protected final T anyTO;
+
+    public AnyWrapper(final T anyTO) {
+        this.anyTO = anyTO;
+    }
+
+    public T getInnerObject() {
+        return anyTO;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
index 41a5573..a30d6bf 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
@@ -38,14 +38,14 @@ public class Details<T extends AnyTO> extends WizardStep {
     protected final StatusPanel statusPanel;
 
     public Details(
-            final AnyHandler<T> handler,
+            final AnyWrapper<T> wrapper,
             final IModel<List<StatusBean>> statusModel,
             final boolean includeStatusPanel,
             final PageReference pageRef) {
 
         this.pageRef = pageRef;
 
-        T anyTO = handler.getInnerObject();
+        T anyTO = wrapper.getInnerObject();
 
         statusPanel = new StatusPanel("status", anyTO, statusModel, pageRef);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
index b0b2c59..edf9b80 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
@@ -50,7 +50,7 @@ public class DynamicMemberships extends WizardStep {
 
     private final AnyTypeRestClient anyTypeRestClient = new AnyTypeRestClient();
 
-    public DynamicMemberships(final GroupHandler groupHandler) {
+    public DynamicMemberships(final GroupWrapper groupHandler) {
         super();
 
         final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<List<AnyTypeTO>>() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
index 610f2b8..e110a7e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupDetails.java
@@ -31,15 +31,15 @@ public class GroupDetails extends Details<GroupTO> {
     private static final long serialVersionUID = 855618618337931784L;
 
     public GroupDetails(
-            final GroupHandler groupHandler,
+            final GroupWrapper wrapper,
             final IModel<List<StatusBean>> statusModel,
             final boolean templateMode,
             final boolean includeStatusPanel,
             final PageReference pageRef) {
 
-        super(groupHandler, statusModel, includeStatusPanel, pageRef);
+        super(wrapper, statusModel, includeStatusPanel, pageRef);
 
-        final GroupTO groupTO = GroupHandler.class.cast(groupHandler).getInnerObject();
+        final GroupTO groupTO = GroupWrapper.class.cast(wrapper).getInnerObject();
 
         final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", "name",
                 new PropertyModel<String>(groupTO, "name"), false);

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
deleted file mode 100644
index 5966efc..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupHandler.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.wizards.any;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.syncope.client.console.panels.search.SearchClause;
-import org.apache.syncope.client.console.panels.search.SearchUtils;
-import org.apache.syncope.client.lib.SyncopeClient;
-import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
-import org.apache.syncope.common.lib.to.GroupTO;
-
-public class GroupHandler extends AnyHandler<GroupTO> {
-
-    private static final long serialVersionUID = 8058288034211558376L;
-
-    private List<SearchClause> uDynClauses;
-
-    private Map<String, List<SearchClause>> aDynClauses;
-
-    public GroupHandler(final GroupTO groupTO) {
-        super(groupTO);
-        getUDynClauses();
-        getADynClauses();
-    }
-
-    public final List<SearchClause> getUDynClauses() {
-        if (this.uDynClauses == null) {
-            this.uDynClauses = SearchUtils.getSearchClauses(this.anyTO.getUDynMembershipCond());
-        }
-        return this.uDynClauses;
-    }
-
-    public void setUDynClauses(final List<SearchClause> uDynClauses) {
-        this.uDynClauses = uDynClauses;
-    }
-
-    public final Map<String, List<SearchClause>> getADynClauses() {
-        if (this.aDynClauses == null) {
-            this.aDynClauses = SearchUtils.getSearchClauses(this.anyTO.getADynMembershipConds());
-        }
-        return this.aDynClauses;
-    }
-
-    public void setADynClauses(final Map<String, List<SearchClause>> aDynClauses) {
-        this.aDynClauses = aDynClauses;
-    }
-
-    public String getUDynMembershipCond() {
-        if (CollectionUtils.isEmpty(this.uDynClauses)) {
-            return null;
-        } else {
-            return getFIQLString(this.uDynClauses, SyncopeClient.getUserSearchConditionBuilder());
-        }
-    }
-
-    public Map<String, String> getADynMembershipConds() {
-        final Map<String, String> res = new HashMap<>();
-        if (this.aDynClauses != null && !this.aDynClauses.isEmpty()) {
-            for (Map.Entry<String, List<SearchClause>> entry : this.aDynClauses.entrySet()) {
-                if (CollectionUtils.isNotEmpty(entry.getValue())) {
-                    res.put(entry.getKey(), getFIQLString(entry.getValue(),
-                            SyncopeClient.getAnyObjectSearchConditionBuilder(entry.getKey())));
-                }
-            }
-        }
-
-        return res;
-    }
-
-    private String getFIQLString(final List<SearchClause> clauses, final AbstractFiqlSearchConditionBuilder bld) {
-        return SearchUtils.buildFIQL(clauses, bld);
-    }
-
-    public GroupTO fillDynamicConditions() {
-        this.anyTO.setUDynMembershipCond(this.getUDynMembershipCond());
-        this.anyTO.getADynMembershipConds().clear();
-        this.anyTO.getADynMembershipConds().putAll(this.getADynMembershipConds());
-        return this.anyTO;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
index e9fe94b..e6637c0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
@@ -46,7 +46,7 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro
             final GroupFormLayoutInfo formLayoutInfo,
             final PageReference pageRef) {
 
-        super(new GroupHandler(groupTO), anyTypeClasses, formLayoutInfo, pageRef);
+        super(new GroupWrapper(groupTO), anyTypeClasses, formLayoutInfo, pageRef);
     }
 
     /**
@@ -57,16 +57,16 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro
      * @return the current builder.
      */
     @Override
-    public AjaxWizardBuilder<AnyHandler<GroupTO>> setItem(final AnyHandler<GroupTO> item) {
-        return (AjaxWizardBuilder<AnyHandler<GroupTO>>) (item == null
+    public AjaxWizardBuilder<AnyWrapper<GroupTO>> setItem(final AnyWrapper<GroupTO> item) {
+        return (AjaxWizardBuilder<AnyWrapper<GroupTO>>) (item == null
                 ? super.setItem(item)
-                : super.setItem(new GroupHandler(item.getInnerObject())));
+                : super.setItem(new GroupWrapper(item.getInnerObject())));
     }
 
     @Override
-    protected Serializable onApplyInternal(final AnyHandler<GroupTO> modelObject) {
-        GroupTO inner = modelObject instanceof GroupHandler
-                ? GroupHandler.class.cast(modelObject).fillDynamicConditions()
+    protected Serializable onApplyInternal(final AnyWrapper<GroupTO> modelObject) {
+        GroupTO inner = modelObject instanceof GroupWrapper
+                ? GroupWrapper.class.cast(modelObject).fillDynamicConditions()
                 : modelObject.getInnerObject();
 
         ProvisioningResult<GroupTO> actual;
@@ -88,9 +88,9 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro
 
     @Override
     protected GroupWizardBuilder addOptionalDetailsPanel(
-            final AnyHandler<GroupTO> modelObject, final WizardModel wizardModel) {
+            final AnyWrapper<GroupTO> modelObject, final WizardModel wizardModel) {
         wizardModel.add(new GroupDetails(
-                GroupHandler.class.cast(modelObject),
+                GroupWrapper.class.cast(modelObject),
                 new ListModel<>(Collections.<StatusBean>emptyList()),
                 false,
                 modelObject.getInnerObject().getKey() != null, pageRef));

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWrapper.java
new file mode 100644
index 0000000..da39fe4
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWrapper.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wizards.any;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.syncope.client.console.panels.search.SearchClause;
+import org.apache.syncope.client.console.panels.search.SearchUtils;
+import org.apache.syncope.client.lib.SyncopeClient;
+import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
+import org.apache.syncope.common.lib.to.GroupTO;
+
+public class GroupWrapper extends AnyWrapper<GroupTO> {
+
+    private static final long serialVersionUID = 8058288034211558376L;
+
+    private List<SearchClause> uDynClauses;
+
+    private Map<String, List<SearchClause>> aDynClauses;
+
+    public GroupWrapper(final GroupTO groupTO) {
+        super(groupTO);
+        getUDynClauses();
+        getADynClauses();
+    }
+
+    public final List<SearchClause> getUDynClauses() {
+        if (this.uDynClauses == null) {
+            this.uDynClauses = SearchUtils.getSearchClauses(this.anyTO.getUDynMembershipCond());
+        }
+        return this.uDynClauses;
+    }
+
+    public void setUDynClauses(final List<SearchClause> uDynClauses) {
+        this.uDynClauses = uDynClauses;
+    }
+
+    public final Map<String, List<SearchClause>> getADynClauses() {
+        if (this.aDynClauses == null) {
+            this.aDynClauses = SearchUtils.getSearchClauses(this.anyTO.getADynMembershipConds());
+        }
+        return this.aDynClauses;
+    }
+
+    public void setADynClauses(final Map<String, List<SearchClause>> aDynClauses) {
+        this.aDynClauses = aDynClauses;
+    }
+
+    public String getUDynMembershipCond() {
+        if (CollectionUtils.isEmpty(this.uDynClauses)) {
+            return null;
+        } else {
+            return getFIQLString(this.uDynClauses, SyncopeClient.getUserSearchConditionBuilder());
+        }
+    }
+
+    public Map<String, String> getADynMembershipConds() {
+        final Map<String, String> res = new HashMap<>();
+        if (this.aDynClauses != null && !this.aDynClauses.isEmpty()) {
+            for (Map.Entry<String, List<SearchClause>> entry : this.aDynClauses.entrySet()) {
+                if (CollectionUtils.isNotEmpty(entry.getValue())) {
+                    res.put(entry.getKey(), getFIQLString(entry.getValue(),
+                            SyncopeClient.getAnyObjectSearchConditionBuilder(entry.getKey())));
+                }
+            }
+        }
+
+        return res;
+    }
+
+    private String getFIQLString(final List<SearchClause> clauses, final AbstractFiqlSearchConditionBuilder bld) {
+        return SearchUtils.buildFIQL(clauses, bld);
+    }
+
+    public GroupTO fillDynamicConditions() {
+        this.anyTO.setUDynMembershipCond(this.getUDynMembershipCond());
+        this.anyTO.getADynMembershipConds().clear();
+        this.anyTO.getADynMembershipConds().putAll(this.getADynMembershipConds());
+        return this.anyTO;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
index 2f0d03e..f60f3c4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
@@ -65,7 +65,7 @@ public class Ownership extends WizardStep {
 
     private final Pattern owner = Pattern.compile("\\[\\(\\d+\\)\\] .*");
 
-    private final GroupHandler handler;
+    private final GroupWrapper wrapper;
 
     private final WebMarkupContainer ownerContainer;
 
@@ -91,9 +91,9 @@ public class Ownership extends WizardStep {
 
     private final Model<Boolean> isGroupOwnership;
 
-    public Ownership(final GroupHandler groupHandler, final PageReference pageRef) {
+    public Ownership(final GroupWrapper groupHandler, final PageReference pageRef) {
         super();
-        this.handler = groupHandler;
+        this.wrapper = groupHandler;
 
         isGroupOwnership = Model.of(groupHandler.getInnerObject().getGroupOwner() != null);
 
@@ -299,15 +299,15 @@ public class Ownership extends WizardStep {
         } else if (event.getPayload() instanceof AnySelectionDirectoryPanel.ItemSelection) {
             final AnyTO sel = ((AnySelectionDirectoryPanel.ItemSelection) event.getPayload()).getSelection();
             if (sel == null) {
-                handler.getInnerObject().setUserOwner(null);
-                handler.getInnerObject().setGroupOwner(null);
+                wrapper.getInnerObject().setUserOwner(null);
+                wrapper.getInnerObject().setGroupOwner(null);
             } else if (sel instanceof UserTO) {
-                handler.getInnerObject().setUserOwner(sel.getKey());
-                handler.getInnerObject().setGroupOwner(null);
+                wrapper.getInnerObject().setUserOwner(sel.getKey());
+                wrapper.getInnerObject().setGroupOwner(null);
                 ((UserSelectionDirectoryPanel.ItemSelection) event.getPayload()).getTarget().add(ownerContainer);
             } else if (sel instanceof GroupTO) {
-                handler.getInnerObject().setGroupOwner(sel.getKey());
-                handler.getInnerObject().setUserOwner(null);
+                wrapper.getInnerObject().setGroupOwner(sel.getKey());
+                wrapper.getInnerObject().setUserOwner(null);
                 ((GroupSelectionDirectoryPanel.ItemSelection) event.getPayload()).getTarget().add(ownerContainer);
             }
         } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
index 370aebf..e93cc97 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PasswordPanel.java
@@ -18,31 +18,34 @@
  */
 package org.apache.syncope.client.console.wizards.any;
 
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPasswordFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
-import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.model.ResourceModel;
 
 public class PasswordPanel extends Panel {
 
     private static final long serialVersionUID = 6592027822510220463L;
 
     public PasswordPanel(
-            final String id, final UserTO userTO, final boolean resetPassword, final boolean templateMode) {
-        super(id);
+            final String id,
+            final UserWrapper wrapper,
+            final boolean templateMode) {
 
+        super(id);
         setOutputMarkupId(true);
 
-        final Form<?> form = new Form<>("passwordInnerForm");
+        Form<?> form = new Form<>("passwordInnerForm");
         add(form);
 
         FieldPanel<String> passwordField = new AjaxPasswordFieldPanel(
-                "password", "password", new PropertyModel<String>(userTO, "password"), false);
+                "password", "password", new PropertyModel<String>(wrapper.getInnerObject(), "password"), false);
         passwordField.setRequired(true);
         passwordField.setMarkupId("password");
         passwordField.setPlaceholder("password");
@@ -55,20 +58,24 @@ public class PasswordPanel extends Panel {
         confirmPasswordField.setMarkupId("confirmPassword");
         confirmPasswordField.setPlaceholder("confirmPassword");
         ((PasswordTextField) confirmPasswordField.getField()).setResetPassword(true);
+        if (templateMode) {
+            confirmPasswordField.setEnabled(false);
+            confirmPasswordField.setVisible(false);
+        }
         form.add(confirmPasswordField);
 
         form.add(new EqualPasswordInputValidator(passwordField.getField(), confirmPasswordField.getField()));
 
-        if (templateMode) {
-            confirmPasswordField.setEnabled(false);
-            confirmPasswordField.setVisible(false);
+        AjaxCheckBoxPanel storePasswordInSyncope = new AjaxCheckBoxPanel("storePasswordInSyncope",
+                "storePasswordInSyncope", new PropertyModel<Boolean>(wrapper, "storePasswordInSyncope"));
+        storePasswordInSyncope.getField().setLabel(new ResourceModel("storePasswordInSyncope"));
+        storePasswordInSyncope.setOutputMarkupId(true);
+        storePasswordInSyncope.setOutputMarkupPlaceholderTag(true);
+        if (wrapper.getInnerObject().getKey() == null) {
+            storePasswordInSyncope.getField().setDefaultModelObject(Boolean.TRUE);
         } else {
-            ((PasswordTextField) passwordField.getField()).setResetPassword(resetPassword);
-
-            if (!resetPassword) {
-                confirmPasswordField.getField().setModelObject(userTO.getPassword());
-            }
-            ((PasswordTextField) confirmPasswordField.getField()).setResetPassword(resetPassword);
+            storePasswordInSyncope.setVisible(false);
         }
+        form.add(storePasswordInSyncope);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
index 88b1bc5..94689ff 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
@@ -218,7 +218,7 @@ public class Relationships extends WizardStep {
 
         private AnyObjectSearchPanel anyObjectSearchPanel;
 
-        private WizardMgtPanel<AnyHandler<AnyObjectTO>> anyObjectDirectoryPanel;
+        private WizardMgtPanel<AnyWrapper<AnyObjectTO>> anyObjectDirectoryPanel;
 
         public Specification() {
             super("specification");

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
index 28a7d91..71eb007 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserDetails.java
@@ -46,17 +46,16 @@ public class UserDetails extends Details<UserTO> {
     private static final String PASSWORD_CONTENT_PATH = "body:content";
 
     public UserDetails(
-            final AnyHandler<UserTO> handler,
+            final UserWrapper wrapper,
             final IModel<List<StatusBean>> statusModel,
-            final boolean resetPassword,
             final boolean templateMode,
             final boolean includeStatusPanel,
             final boolean showPasswordManagement,
             final PageReference pageRef) {
 
-        super(handler, statusModel, includeStatusPanel, pageRef);
+        super(wrapper, statusModel, includeStatusPanel, pageRef);
 
-        final UserTO userTO = handler.getInnerObject();
+        final UserTO userTO = wrapper.getInnerObject();
         // ------------------------
         // Username
         // ------------------------
@@ -81,7 +80,7 @@ public class UserDetails extends Details<UserTO> {
 
             @Override
             public Panel getPanel(final String panelId) {
-                final PasswordPanel panel = new PasswordPanel(panelId, userTO, resetPassword, templateMode);
+                PasswordPanel panel = new PasswordPanel(panelId, wrapper, templateMode);
                 panel.setEnabled(model.getObject() >= 0);
                 return panel;
             }
@@ -94,7 +93,7 @@ public class UserDetails extends Details<UserTO> {
             protected Component newTitle(final String markupId, final ITab tab, final Accordion.State state) {
                 return new AjaxLink<Integer>(markupId) {
 
-                    private static final long serialVersionUID = 1L;
+                    private static final long serialVersionUID = 7021195294339489084L;
 
                     @Override
                     protected void onComponentTag(final ComponentTag tag) {
@@ -108,12 +107,14 @@ public class UserDetails extends Details<UserTO> {
 
                         boolean enable = model.getObject() >= 0;
 
-                        final Component passwordPanel = getParent().get(PASSWORD_CONTENT_PATH);
-                        passwordPanel.setEnabled(enable);
-                        statusPanel.setCheckAvailability(enable
-                                ? ListViewPanel.CheckAvailability.AVAILABLE
-                                : ListViewPanel.CheckAvailability.DISABLED);
+                        if (statusPanel.isVisibleInHierarchy()) {
+                            statusPanel.setCheckAvailability(enable
+                                    ? ListViewPanel.CheckAvailability.AVAILABLE
+                                    : ListViewPanel.CheckAvailability.DISABLED);
+                        }
 
+                        Component passwordPanel = getParent().get(PASSWORD_CONTENT_PATH);
+                        passwordPanel.setEnabled(enable);
                         target.add(passwordPanel);
                     }
                 }.setBody(new ResourceModel("password.change", "Change password ..."));

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
index 2f8b5f6..66bb62c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
@@ -50,19 +50,21 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> implements UserF
             final UserFormLayoutInfo formLayoutInfo,
             final PageReference pageRef) {
 
-        super(userTO, anyTypeClasses, formLayoutInfo, pageRef);
+        super(new UserWrapper(userTO), anyTypeClasses, formLayoutInfo, pageRef);
         statusModel = new ListModel<>(new ArrayList<StatusBean>());
     }
 
     @Override
-    protected Serializable onApplyInternal(final AnyHandler<UserTO> modelObject) {
+    protected Serializable onApplyInternal(final AnyWrapper<UserTO> modelObject) {
         UserTO inner = modelObject.getInnerObject();
 
         ProvisioningResult<UserTO> actual;
         if (inner.getKey() == null) {
-            actual = userRestClient.create(inner, StringUtils.isNotBlank(inner.getPassword()));
+            actual = userRestClient.create(inner, modelObject instanceof UserWrapper
+                    ? UserWrapper.class.cast(modelObject).isStorePasswordInSyncope()
+                    : StringUtils.isNotBlank(inner.getPassword()));
         } else {
-            final UserPatch patch = AnyOperations.diff(inner, getOriginalItem().getInnerObject(), false);
+            UserPatch patch = AnyOperations.diff(inner, getOriginalItem().getInnerObject(), false);
             if (!statusModel.getObject().isEmpty()) {
                 patch.setPassword(StatusUtils.buildPasswordPatch(inner.getPassword(), statusModel.getObject()));
             }
@@ -81,10 +83,10 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> implements UserF
 
     @Override
     protected UserWizardBuilder addOptionalDetailsPanel(
-            final AnyHandler<UserTO> modelObject, final WizardModel wizardModel) {
+            final AnyWrapper<UserTO> modelObject, final WizardModel wizardModel) {
 
         wizardModel.add(new UserDetails(
-                modelObject, statusModel, false, false,
+                UserWrapper.class.cast(modelObject), statusModel, false,
                 modelObject.getInnerObject().getKey() != null,
                 UserFormLayoutInfo.class.cast(formLayoutInfo).isPasswordManagement(),
                 pageRef));
@@ -98,8 +100,8 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> implements UserF
      * @return the current wizard.
      */
     @Override
-    public UserWizardBuilder setItem(final AnyHandler<UserTO> item) {
-        super.setItem(item);
+    public UserWizardBuilder setItem(final AnyWrapper<UserTO> item) {
+        super.setItem(item == null ? null : new UserWrapper(item.getInnerObject()));
         statusModel.getObject().clear();
         return this;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWrapper.java
new file mode 100644
index 0000000..c2a04d9
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWrapper.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wizards.any;
+
+import org.apache.syncope.common.lib.to.UserTO;
+
+public class UserWrapper extends AnyWrapper<UserTO> {
+
+    private static final long serialVersionUID = 263119743040080245L;
+
+    private boolean storePasswordInSyncope = true;
+
+    public UserWrapper(final UserTO userTO) {
+        super(userTO);
+    }
+
+    public boolean isStorePasswordInSyncope() {
+        return storePasswordInSyncope;
+    }
+
+    public void setStorePasswordInSyncope(final boolean storePasswordInSyncope) {
+        this.storePasswordInSyncope = storePasswordInSyncope;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/PasswordPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/PasswordPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/PasswordPanel.html
index 87ce8d6..7adf2a0 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/PasswordPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/PasswordPanel.html
@@ -25,6 +25,9 @@ under the License.
       <div class="form-group">
         <span wicket:id="confirmPassword"/>
       </div>
+      <div class="form-group">
+        <span wicket:id="storePasswordInSyncope"/>
+      </div>
     </form>
   </wicket:panel>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails.properties
index 501bb53..6eebcae 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails.properties
@@ -18,3 +18,4 @@ username=Username
 password=Password
 confirmPassword=Password (confirm)
 password.change=Password management
+storePasswordInSyncope=Store password in Syncope

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_it.properties
index 3d69de7..638a8c6 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_it.properties
@@ -18,3 +18,4 @@ username=Username
 password=Password
 confirmPassword=Password (conferma)
 password.change=Gestisci password
+storePasswordInSyncope=Salva password in Syncope

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_pt_BR.properties
index a3d5457..5b7dc9d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_pt_BR.properties
@@ -18,3 +18,4 @@ username=Nome do Usu\u00e1rio
 password=Senha
 confirmPassword=Senha (confirmar)
 password.change=Gest\u00e3o password
+storePasswordInSyncope=Salvar senha in Syncope

http://git-wip-us.apache.org/repos/asf/syncope/blob/b0417d7c/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_ru.properties
index 26a148b..4fe286d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/any/UserDetails_ru.properties
@@ -14,11 +14,12 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-# username=Имя пользователя
+# username=\u00d0\u0098\u00d0\u00bc\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f
 username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-# password=Пароль
+# password=\u00d0\u009f\u00d0\u00b0\u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d1\u008c
 password=\u041f\u0430\u0440\u043e\u043b\u044c
-# confirmPassword=Пароль (подтверждение)
+# confirmPassword=\u00d0\u009f\u00d0\u00b0\u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d1\u008c (\u00d0\u00bf\u00d0\u00be\u00d0\u00b4\u00d1\u0082\u00d0\u00b2\u00d0\u00b5\u00d1\u0080\u00d0\u00b6\u00d0\u00b4\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5)
 confirmPassword=\u041f\u0430\u0440\u043e\u043b\u044c (\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435)
-# password.change=Сменить пароль ...
+# password.change=\u00d0\u00a1\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00bf\u00d0\u00b0\u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d1\u008c ...
 password.change=\u0421\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c ...
+storePasswordInSyncope=Store password in Syncope