http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java
deleted file mode 100644
index af502d2..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java
+++ /dev/null
@@ -1,105 +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.pages;
-
-import java.util.ArrayList;
-import org.apache.commons.lang3.SerializationUtils;
-import org.apache.syncope.client.console.commons.Mode;
-import org.apache.syncope.client.console.commons.status.StatusBean;
-import org.apache.syncope.client.console.panels.AccountInformationPanel;
-import org.apache.syncope.client.console.panels.MembershipsPanel;
-import org.apache.syncope.client.console.panels.ResourcesPanel;
-import org.apache.syncope.client.console.panels.StatusPanel;
-import org.apache.syncope.common.lib.AttributableOperations;
-import org.apache.syncope.common.lib.mod.UserMod;
-import org.apache.syncope.common.lib.to.UserTO;
-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.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.ResourceModel;
-
-/**
- * Modal window with User form.
- */
-public class EditUserModalPage extends UserModalPage {
-
-    private static final long serialVersionUID = -6479209496805705739L;
-
-    protected Form form;
-
-    private final UserTO initialUserTO;
-
-    private StatusPanel statusPanel;
-
-    public EditUserModalPage(final PageReference pageRef, final ModalWindow 
window, final UserTO userTO) {
-        super(pageRef, window, userTO, Mode.ADMIN, true);
-
-        this.initialUserTO = SerializationUtils.clone(userTO);
-
-        form = setupEditPanel();
-
-        // add resource assignment details in case of update
-        if (userTO.getKey() != 0) {
-            form.addOrReplace(new Label("pwdChangeInfo", new 
ResourceModel("pwdChangeInfo")));
-
-            statusPanel = new StatusPanel("statuspanel", userTO, new 
ArrayList<StatusBean>(), getPageReference());
-            statusPanel.setOutputMarkupId(true);
-            MetaDataRoleAuthorizationStrategy.authorize(
-                    statusPanel, RENDER, 
xmlRolesReader.getEntitlement("Resources", "getConnectorObject"));
-            form.addOrReplace(statusPanel);
-
-            form.addOrReplace(new 
AccountInformationPanel("accountinformation", userTO));
-
-            form.addOrReplace(new 
ResourcesPanel.Builder("resources").attributableTO(userTO).
-                    statusPanel(statusPanel).build());
-
-            form.addOrReplace(new MembershipsPanel("memberships", userTO, 
mode, statusPanel, getPageReference()));
-        }
-    }
-
-    @SuppressWarnings("rawtypes")
-    @Override
-    protected void submitAction(final AjaxRequestTarget target, final Form 
form) {
-        final UserTO updatedUserTO = (UserTO) form.getModelObject();
-
-        if (updatedUserTO.getKey() == 0) {
-            userTO = userRestClient.create(updatedUserTO, 
storePassword.getModelObject());
-        } else {
-            final UserMod userMod = AttributableOperations.diff(updatedUserTO, 
initialUserTO);
-
-            if (statusPanel != null) {
-                userMod.setPwdPropRequest(statusPanel.getStatusMod());
-            }
-
-            // update user just if it is changed
-            if (!userMod.isEmpty()) {
-                userTO = userRestClient.update(initialUserTO.getETagValue(), 
userMod);
-            }
-        }
-    }
-
-    @SuppressWarnings("rawtypes")
-    @Override
-    protected void closeAction(final AjaxRequestTarget target, final Form 
form) {
-        setResponsePage(new ResultStatusModalPage.Builder(window, 
userTO).mode(mode).build());
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java
deleted file mode 100644
index db46171..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/ErrorPage.java
+++ /dev/null
@@ -1,42 +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.pages;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
-/**
- * Error WebPage.
- */
-public class ErrorPage extends BasePage {
-
-    private static final long serialVersionUID = -390761262038796657L;
-
-    public ErrorPage(final PageParameters parameters) {
-        super(parameters);
-
-        add(new Label("errorTitle", new 
Model<String>(parameters.get("errorTitle").toString())));
-        add(new Label("errorMessage", new 
Model<String>(parameters.get("errorMessage").toString())));
-
-        add(new BookmarkablePageLink<Page>("home", 
getApplication().getHomePage()));
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java
deleted file mode 100644
index e39f3fc..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/ExecMessageModalPage.java
+++ /dev/null
@@ -1,32 +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.pages;
-
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.Model;
-
-public class ExecMessageModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = 3163146190501510888L;
-
-    public ExecMessageModalPage(final String message) {
-        final Label dialogContent = new Label("message", new 
Model<String>(message));
-        add(dialogContent.setOutputMarkupId(true));
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java
deleted file mode 100644
index c0ee7ec..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/FailureMessageModalPage.java
+++ /dev/null
@@ -1,37 +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.pages;
-
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.Model;
-
-public class FailureMessageModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = 9216117990503199258L;
-
-    public FailureMessageModalPage(final String message, final String 
failureMessage) {
-        final Label executionFailureMessage;
-        if (!failureMessage.isEmpty()) {
-            executionFailureMessage = new Label("failureMessage", new 
Model<String>(failureMessage));
-        } else {
-            executionFailureMessage = new Label("failureMessage");
-        }
-        add(executionFailureMessage.setOutputMarkupId(true));
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java
deleted file mode 100644
index 8b4daa9..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupModalPage.java
+++ /dev/null
@@ -1,164 +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.pages;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.commons.lang3.SerializationUtils;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.Mode;
-import org.apache.syncope.client.console.panels.GroupPanel;
-import org.apache.syncope.common.lib.AttributableOperations;
-import org.apache.syncope.common.lib.mod.GroupMod;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import 
org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.ResourceModel;
-
-/**
- * Modal window with Group form.
- */
-public class GroupModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -1732493223434085205L;
-
-    protected final PageReference pageRef;
-
-    protected final ModalWindow window;
-
-    protected final Mode mode;
-
-    protected final boolean createFlag;
-
-    protected final GroupPanel groupPanel;
-
-    protected GroupTO originalGroupTO;
-
-    public GroupModalPage(final PageReference pageRef, final ModalWindow 
window, final GroupTO groupTO) {
-        this(pageRef, window, groupTO, Mode.ADMIN);
-    }
-
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    public GroupModalPage(
-            final PageReference pageRef, final ModalWindow window, final 
GroupTO groupTO, final Mode mode) {
-        
-        super();
-
-        this.pageRef = pageRef;
-        this.window = window;
-        this.mode = mode;
-
-        this.createFlag = groupTO.getKey() == 0;
-        if (!createFlag) {
-            originalGroupTO = SerializationUtils.clone(groupTO);
-        }
-
-        final Form<GroupTO> form = new Form<GroupTO>("groupForm");
-        form.setMultiPart(true);
-
-        add(new Label("displayName", groupTO.getKey() == 0 ? "" : 
groupTO.getDisplayName()));
-
-        form.setModel(new CompoundPropertyModel<GroupTO>(groupTO));
-
-        this.groupPanel = new GroupPanel.Builder("groupPanel").
-                
form(form).groupTO(groupTO).groupModalPageMode(mode).pageRef(getPageReference()).build();
-        form.add(groupPanel);
-
-        final AjaxButton submit = new IndicatingAjaxButton(SUBMIT, new 
ResourceModel(SUBMIT)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                try {
-                    submitAction(target, form);
-
-                    if (pageRef.getPage() instanceof BasePage) {
-                        ((BasePage) pageRef.getPage()).setModalResult(true);
-                    }
-
-                    closeAction(target, form);
-                } catch (Exception e) {
-                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                    feedbackPanel.refresh(target);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final 
Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-        form.add(submit);
-        form.setDefaultButton(submit);
-
-        final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new 
ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                closeAction(target, form);
-            }
-        };
-        cancel.setDefaultFormProcessing(false);
-        form.add(cancel);
-
-        MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, 
xmlRolesReader.getEntitlement("Groups",
-                createFlag
-                        ? "create"
-                        : "update"));
-
-        add(form);
-    }
-
-    protected void submitAction(final AjaxRequestTarget target, final Form<?> 
form) {
-        final GroupTO groupTO = (GroupTO) form.getDefaultModelObject();
-        final List<String> entitlementList = new 
ArrayList<String>(groupPanel.getSelectedEntitlements());
-        groupTO.getEntitlements().clear();
-        groupTO.getEntitlements().addAll(entitlementList);
-
-        GroupTO result;
-        if (createFlag) {
-            result = groupRestClient.create(groupTO);
-        } else {
-            GroupMod groupMod = AttributableOperations.diff(groupTO, 
originalGroupTO);
-
-            // update group just if it is changed
-            if (groupMod.isEmpty()) {
-                result = groupTO;
-            } else {
-                result = 
groupRestClient.update(originalGroupTO.getETagValue(), groupMod);
-            }
-        }
-
-        setResponsePage(new ResultStatusModalPage.Builder(window, 
result).build());
-    }
-
-    protected void closeAction(final AjaxRequestTarget target, final Form<?> 
form) {
-        window.close(target);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java
deleted file mode 100644
index 97b7abf..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupSelectModalPage.java
+++ /dev/null
@@ -1,105 +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.pages;
-
-import java.lang.reflect.Constructor;
-import javax.swing.tree.DefaultMutableTreeNode;
-import org.apache.syncope.client.console.commons.GroupTreeBuilder;
-import 
org.apache.syncope.client.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansion;
-import 
org.apache.syncope.client.console.wicket.markup.html.tree.DefaultMutableTreeNodeExpansionModel;
-import 
org.apache.syncope.client.console.wicket.markup.html.tree.TreeGroupProvider;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.wicket.Component;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import 
org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
-import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
-import org.apache.wicket.extensions.markup.html.repeater.tree.NestedTree;
-import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
-import 
org.apache.wicket.extensions.markup.html.repeater.tree.theme.WindowsTheme;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-public class GroupSelectModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = 2106489458494696439L;
-
-    @SpringBean
-    private GroupTreeBuilder groupTreeBuilder;
-
-    private final NestedTree<DefaultMutableTreeNode> tree;
-
-    public GroupSelectModalPage(final PageReference pageRef, final ModalWindow 
window, final Class<?> payloadClass) {
-        super();
-
-        final ITreeProvider<DefaultMutableTreeNode> treeProvider = new 
TreeGroupProvider(groupTreeBuilder, true);
-        final DefaultMutableTreeNodeExpansionModel treeModel = new 
DefaultMutableTreeNodeExpansionModel();
-
-        tree = new DefaultNestedTree<DefaultMutableTreeNode>("treeTable", 
treeProvider, treeModel) {
-
-            private static final long serialVersionUID = 7137658050662575546L;
-
-            @Override
-            protected Component newContentComponent(final String id, final 
IModel<DefaultMutableTreeNode> node) {
-                final DefaultMutableTreeNode treeNode = node.getObject();
-                final GroupTO groupTO = (GroupTO) treeNode.getUserObject();
-
-                return new Folder<DefaultMutableTreeNode>(id, 
GroupSelectModalPage.this.tree, node) {
-
-                    private static final long serialVersionUID = 
9046323319920426493L;
-
-                    @Override
-                    protected boolean isClickable() {
-                        return true;
-                    }
-
-                    @Override
-                    protected IModel<?> newLabelModel(final 
IModel<DefaultMutableTreeNode> model) {
-                        return new Model<>(groupTO.getDisplayName());
-                    }
-
-                    @Override
-                    protected void onClick(final AjaxRequestTarget target) {
-                        super.onClick(target);
-
-                        try {
-                            Constructor<?> constructor = 
payloadClass.getConstructor(Long.class);
-                            Object payload = 
constructor.newInstance(groupTO.getKey());
-
-                            send(pageRef.getPage(), Broadcast.BREADTH, 
payload);
-                        } catch (Exception e) {
-                            LOG.error("Could not send group select event", e);
-                        }
-
-                        window.close(target);
-                    }
-                };
-            }
-        };
-        tree.add(new WindowsTheme());
-        tree.setOutputMarkupId(true);
-
-        DefaultMutableTreeNodeExpansion.get().expandAll();
-
-        this.add(tree);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java
deleted file mode 100644
index 293e402..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupTemplateModalPage.java
+++ /dev/null
@@ -1,50 +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.pages;
-
-import org.apache.syncope.client.console.commons.Mode;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.SyncTaskTO;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.Form;
-
-public class GroupTemplateModalPage extends GroupModalPage {
-
-    private static final long serialVersionUID = -3849135555203409845L;
-
-    private final SyncTaskTO syncTaskTO;
-
-    public GroupTemplateModalPage(final PageReference callerPageRef, final 
ModalWindow window,
-            final SyncTaskTO syncTaskTO) {
-
-        super(callerPageRef, window, syncTaskTO.getGroupTemplate() == null
-                ? new GroupTO()
-                : syncTaskTO.getGroupTemplate(), Mode.TEMPLATE);
-
-        this.syncTaskTO = syncTaskTO;
-    }
-
-    @Override
-    protected void submitAction(final AjaxRequestTarget target, final Form 
form) {
-        syncTaskTO.setGroupTemplate((GroupTO) form.getModelObject());
-        taskRestClient.updateSyncTask(syncTaskTO);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java
deleted file mode 100644
index 2e92940..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Groups.java
+++ /dev/null
@@ -1,186 +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.pages;
-
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.panels.AbstractSearchResultPanel;
-import org.apache.syncope.client.console.panels.GroupSearchPanel;
-import org.apache.syncope.client.console.panels.GroupSearchResultPanel;
-import org.apache.syncope.client.console.panels.GroupSummaryPanel;
-import org.apache.syncope.client.console.rest.GroupRestClient;
-import 
org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton;
-import 
org.apache.syncope.client.console.wicket.markup.html.tree.TreeGroupPanel;
-import org.apache.wicket.Session;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-/**
- * Groups WebPage.
- */
-public class Groups extends BasePage {
-
-    private static final long serialVersionUID = -2147758241610831969L;
-
-    private static final int WIN_HEIGHT = 500;
-
-    private static final int WIN_WIDTH = 800;
-
-    @SpringBean
-    private GroupRestClient restClient;
-
-    private final ModalWindow editGroupWin;
-
-    private final WebMarkupContainer groupTabsContainer;
-
-    public Groups(final PageParameters parameters) {
-        super(parameters);
-
-        groupTabsContainer = new WebMarkupContainer("groupTabsContainer");
-        groupTabsContainer.setOutputMarkupId(true);
-        add(groupTabsContainer);
-
-        editGroupWin = new ModalWindow("editGroupWin");
-        editGroupWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        editGroupWin.setInitialHeight(WIN_HEIGHT);
-        editGroupWin.setInitialWidth(WIN_WIDTH);
-        editGroupWin.setCookieName("edit-group-modal");
-        add(editGroupWin);
-
-        final TreeGroupPanel treePanel = new TreeGroupPanel("treePanel");
-        treePanel.setOutputMarkupId(true);
-        groupTabsContainer.add(treePanel);
-
-        final GroupSummaryPanel summaryPanel = new 
GroupSummaryPanel.Builder("summaryPanel")
-                
.window(editGroupWin).callerPageRef(Groups.this.getPageReference()).build();
-        groupTabsContainer.add(summaryPanel);
-
-        editGroupWin.setWindowClosedCallback(new 
ModalWindow.WindowClosedCallback() {
-
-            private static final long serialVersionUID = 8804221891699487139L;
-
-            @Override
-            public void onClose(final AjaxRequestTarget target) {
-                final GroupSummaryPanel summaryPanel = (GroupSummaryPanel) 
groupTabsContainer.get("summaryPanel");
-
-                final TreeNodeClickUpdate data = new 
TreeNodeClickUpdate(target,
-                        summaryPanel == null || summaryPanel.getSelectedNode() 
== null
-                        ? 0
-                        : summaryPanel.getSelectedNode().getKey());
-
-                send(getPage(), Broadcast.BREADTH, data);
-
-                if (modalResult) {
-                    
getSession().info(getString(Constants.OPERATION_SUCCEEDED));
-                    feedbackPanel.refresh(target);
-                    modalResult = false;
-                }
-
-            }
-        });
-
-        final AbstractSearchResultPanel searchResult =
-                new GroupSearchResultPanel("searchResult", true, null, 
getPageReference(), restClient);
-        add(searchResult);
-
-        final Form searchForm = new Form("searchForm");
-        add(searchForm);
-
-        final GroupSearchPanel searchPanel = new 
GroupSearchPanel.Builder("searchPanel").build();
-        searchForm.add(searchPanel);
-
-        searchForm.add(new ClearIndicatingAjaxButton("search", new 
ResourceModel("search"), getPageReference()) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmitInternal(final AjaxRequestTarget target, 
final Form<?> form) {
-                final String fiql = searchPanel.buildFIQL();
-                LOG.debug("Node condition {}", fiql);
-
-                doSearch(target, fiql, searchResult);
-
-                Session.get().getFeedbackMessages().clear();
-                searchPanel.getSearchFeedback().refresh(target);
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final 
Form<?> form) {
-                searchPanel.getSearchFeedback().refresh(target);
-            }
-        });
-    }
-
-    private void doSearch(final AjaxRequestTarget target, final String fiql,
-            final AbstractSearchResultPanel resultsetPanel) {
-
-        if (fiql == null) {
-            error(getString(Constants.SEARCH_ERROR));
-            return;
-        }
-
-        resultsetPanel.search(fiql, target);
-    }
-
-    @Override
-    public void onEvent(final IEvent<?> event) {
-        super.onEvent(event);
-
-        if (event.getPayload() instanceof TreeNodeClickUpdate) {
-            final TreeNodeClickUpdate update = (TreeNodeClickUpdate) 
event.getPayload();
-
-            final GroupSummaryPanel summaryPanel = new 
GroupSummaryPanel.Builder("summaryPanel")
-                    
.window(editGroupWin).callerPageRef(Groups.this.getPageReference())
-                    .selectedNodeId(update.getSelectedNodeId()).build();
-
-            groupTabsContainer.addOrReplace(summaryPanel);
-            update.getTarget().add(groupTabsContainer);
-        }
-    }
-
-    public static class TreeNodeClickUpdate {
-
-        private final AjaxRequestTarget target;
-
-        private Long selectedNodeId;
-
-        public TreeNodeClickUpdate(final AjaxRequestTarget target, final Long 
selectedNodeId) {
-            this.target = target;
-            this.selectedNodeId = selectedNodeId;
-        }
-
-        public AjaxRequestTarget getTarget() {
-            return target;
-        }
-
-        public Long getSelectedNodeId() {
-            return selectedNodeId;
-        }
-
-        public void setSelectedNodeId(final Long selectedNodeId) {
-            this.selectedNodeId = selectedNodeId;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java
index 7b4ba68..6fa6b16 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/HomePage.java
@@ -18,16 +18,17 @@
  */
 package org.apache.syncope.client.console.pages;
 
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
-/**
- * Syncope Home-Page.
- */
 public class HomePage extends BasePage {
 
-    private static final long serialVersionUID = -6712990478380766293L;
+    private static final long serialVersionUID = -1100228004207271270L;
 
     public HomePage(final PageParameters parameters) {
         super(parameters);
+
+        add(new Label("username", 
SyncopeConsoleSession.get().getSelfTO().getUsername()));
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java
deleted file mode 100644
index 83e0163..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/InfoModalPage.java
+++ /dev/null
@@ -1,43 +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.pages;
-
-import org.apache.syncope.client.console.SyncopeSession;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-public class InfoModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = 5558354927844399580L;
-
-    @SpringBean(name = "site")
-    private String siteUrl;
-
-    @SpringBean(name = "license")
-    private String licenseUrl;
-
-    public InfoModalPage() {
-        super();
-
-        add(new ExternalLink("syncopeLink", siteUrl));
-        add(new ExternalLink("licenseLink", licenseUrl));
-        add(new Label("version", SyncopeSession.get().getVersion()));
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
deleted file mode 100644
index deaa359..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
+++ /dev/null
@@ -1,365 +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.pages;
-
-import java.security.AccessControlException;
-import java.util.List;
-import java.util.Locale;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.client.console.SyncopeSession;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.panels.NotificationPanel;
-import org.apache.syncope.client.console.rest.UserSelfRestClient;
-import 
org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink;
-import org.apache.syncope.client.console.wicket.markup.html.form.LinkPanel;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.lib.wrap.EntitlementTO;
-import org.apache.syncope.common.rest.api.CollectionWrapper;
-import org.apache.syncope.common.rest.api.service.EntitlementService;
-import org.apache.wicket.Component;
-import org.apache.wicket.Page;
-import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.PasswordTextField;
-import org.apache.wicket.markup.html.form.StatelessForm;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-/**
- * Syncope Login page.
- */
-public class Login extends WebPage {
-
-    private static final long serialVersionUID = -3744389270366566218L;
-
-    private final static int SELF_REG_WIN_HEIGHT = 550;
-
-    private final static int SELF_REG_WIN_WIDTH = 800;
-
-    private final static int PWD_RESET_WIN_HEIGHT = 300;
-
-    private final static int PWD_RESET_WIN_WIDTH = 800;
-
-    @SpringBean(name = "version")
-    private String version;
-
-    @SpringBean(name = "anonymousUser")
-    private String anonymousUser;
-
-    @SpringBean(name = "anonymousKey")
-    private String anonymousKey;
-
-    @SpringBean
-    private UserSelfRestClient userSelfRestClient;
-
-    private final StatelessForm<Void> form;
-
-    private final TextField<String> userIdField;
-
-    private final TextField<String> passwordField;
-
-    private final DropDownChoice<Locale> languageSelect;
-
-    private final NotificationPanel feedbackPanel;
-
-    public Login(final PageParameters parameters) {
-        super(parameters);
-        setStatelessHint(true);
-
-        feedbackPanel = new NotificationPanel(Constants.FEEDBACK);
-        add(feedbackPanel);
-
-        form = new StatelessForm<Void>("login");
-
-        userIdField = new TextField<String>("userId", new Model<String>());
-        userIdField.setMarkupId("userId");
-        form.add(userIdField);
-
-        passwordField = new PasswordTextField("password", new Model<String>());
-        passwordField.setMarkupId("password");
-        form.add(passwordField);
-
-        languageSelect = new LocaleDropDown("language");
-
-        form.add(languageSelect);
-
-        AjaxButton submitButton = new AjaxButton("submit", new 
Model<String>(getString("submit"))) {
-
-            private static final long serialVersionUID = 429178684321093953L;
-
-            @Override
-            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-                try {
-                    if (anonymousUser.equals(userIdField.getRawInput())) {
-                        throw new AccessControlException("Illegal username");
-                    }
-
-                    authenticate(userIdField.getRawInput(), 
passwordField.getRawInput());
-
-                    setResponsePage(WelcomePage.class, parameters);
-                } catch (AccessControlException e) {
-                    error(getString("login-error"));
-                    feedbackPanel.refresh(target);
-                    SyncopeSession.get().resetClients();
-                }
-            }
-        };
-
-        submitButton.setDefaultFormProcessing(false);
-        form.add(submitButton);
-
-        add(form);
-
-        // Modal window for self registration
-        final ModalWindow selfRegModalWin = new ModalWindow("selfRegModal");
-        selfRegModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        selfRegModalWin.setInitialHeight(SELF_REG_WIN_HEIGHT);
-        selfRegModalWin.setInitialWidth(SELF_REG_WIN_WIDTH);
-        selfRegModalWin.setCookieName("self-reg-modal");
-        add(selfRegModalWin);
-
-        Fragment selfRegFrag;
-        if (userSelfRestClient.isSelfRegistrationAllowed()) {
-            selfRegFrag = new Fragment("selfRegistration", "selfRegAllowed", 
this);
-
-            final AjaxLink<Void> selfRegLink = new 
ClearIndicatingAjaxLink<Void>("link", getPageReference()) {
-
-                private static final long serialVersionUID = 
-7978723352517770644L;
-
-                @Override
-                protected void onClickInternal(final AjaxRequestTarget target) 
{
-                    selfRegModalWin.setPageCreator(new 
ModalWindow.PageCreator() {
-
-                        private static final long serialVersionUID = 
-7834632442532690940L;
-
-                        @Override
-                        public Page createPage() {
-                            // anonymous authentication needed for 
self-registration
-                            authenticate(anonymousUser, anonymousKey);
-
-                            return new 
UserSelfModalPage(Login.this.getPageReference(), selfRegModalWin, new UserTO());
-                        }
-                    });
-
-                    selfRegModalWin.setWindowClosedCallback(new 
ModalWindow.WindowClosedCallback() {
-
-                        private static final long serialVersionUID = 
251794406325329768L;
-
-                        @Override
-                        public void onClose(final AjaxRequestTarget target) {
-                            SyncopeSession.get().invalidate();
-                        }
-                    });
-
-                    selfRegModalWin.show(target);
-                }
-            };
-            selfRegLink.add(new Label("linkTitle", 
getString("selfRegistration")));
-
-            Panel panel = new LinkPanel("selfRegistration", new 
ResourceModel("selfRegistration"));
-            panel.add(selfRegLink);
-            selfRegFrag.add(panel);
-        } else {
-            selfRegFrag = new Fragment("selfRegistration", 
"selfRegNotAllowed", this);
-        }
-        add(selfRegFrag);
-
-        // Modal window for password reset request
-        final ModalWindow pwdResetReqModalWin = new 
ModalWindow("pwdResetReqModal");
-        pwdResetReqModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        pwdResetReqModalWin.setInitialHeight(PWD_RESET_WIN_HEIGHT);
-        pwdResetReqModalWin.setInitialWidth(PWD_RESET_WIN_WIDTH);
-        pwdResetReqModalWin.setCookieName("pwd-reset-req-modal");
-        add(pwdResetReqModalWin);
-
-        Fragment pwdResetFrag;
-        if (userSelfRestClient.isPasswordResetAllowed()) {
-            pwdResetFrag = new Fragment("passwordReset", "pwdResetAllowed", 
this);
-
-            final AjaxLink<Void> pwdResetLink = new 
ClearIndicatingAjaxLink<Void>("link", getPageReference()) {
-
-                private static final long serialVersionUID = 
-6957616042924610290L;
-
-                @Override
-                protected void onClickInternal(final AjaxRequestTarget target) 
{
-                    pwdResetReqModalWin.setPageCreator(new 
ModalWindow.PageCreator() {
-
-                        private static final long serialVersionUID = 
-7834632442532690940L;
-
-                        @Override
-                        public Page createPage() {
-                            // anonymous authentication needed for password 
reset request
-                            authenticate(anonymousUser, anonymousKey);
-
-                            return new 
RequestPasswordResetModalPage(pwdResetReqModalWin);
-                        }
-                    });
-
-                    pwdResetReqModalWin.setWindowClosedCallback(new 
ModalWindow.WindowClosedCallback() {
-
-                        private static final long serialVersionUID = 
8804221891699487139L;
-
-                        @Override
-                        public void onClose(final AjaxRequestTarget target) {
-                            SyncopeSession.get().invalidate();
-                            setResponsePage(Login.class);
-                        }
-                    });
-
-                    pwdResetReqModalWin.show(target);
-                }
-            };
-            pwdResetLink.add(new Label("linkTitle", 
getString("passwordReset")));
-
-            Panel panel = new LinkPanel("passwordReset", new 
ResourceModel("passwordReset"));
-            panel.add(pwdResetLink);
-            pwdResetFrag.add(panel);
-        } else {
-            pwdResetFrag = new Fragment("passwordReset", "pwdResetNotAllowed", 
this);
-        }
-        add(pwdResetFrag);
-
-        // Modal window for password reset confirm - automatically shown when 
token is available as request parameter
-        final String pwdResetToken = 
RequestCycle.get().getRequest().getRequestParameters().
-                
getParameterValue(Constants.PARAM_PASSWORD_RESET_TOKEN).toOptionalString();
-        final ModalWindow pwdResetConfModalWin = new 
ModalWindow("pwdResetConfModal");
-        if (StringUtils.isNotBlank(pwdResetToken)) {
-            pwdResetConfModalWin.add(new AbstractDefaultAjaxBehavior() {
-
-                private static final long serialVersionUID = 
3109256773218160485L;
-
-                @Override
-                protected void respond(final AjaxRequestTarget target) {
-                    ModalWindow window = (ModalWindow) getComponent();
-                    window.show(target);
-                }
-
-                @Override
-                public void renderHead(final Component component, final 
IHeaderResponse response) {
-                    
response.render(JavaScriptHeaderItem.forScript(getCallbackScript(), null));
-                }
-            });
-        }
-        pwdResetConfModalWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        pwdResetConfModalWin.setInitialHeight(PWD_RESET_WIN_HEIGHT);
-        pwdResetConfModalWin.setInitialWidth(PWD_RESET_WIN_WIDTH);
-        pwdResetConfModalWin.setCookieName("pwd-reset-conf-modal");
-        pwdResetConfModalWin.setPageCreator(new ModalWindow.PageCreator() {
-
-            private static final long serialVersionUID = -7834632442532690940L;
-
-            @Override
-            public Page createPage() {
-                // anonymous authentication needed for password reset confirm
-                authenticate(anonymousUser, anonymousKey);
-
-                return new ConfirmPasswordResetModalPage(pwdResetConfModalWin, 
pwdResetToken);
-            }
-        });
-        pwdResetConfModalWin.setWindowClosedCallback(new 
ModalWindow.WindowClosedCallback() {
-
-            private static final long serialVersionUID = 8804221891699487139L;
-
-            @Override
-            public void onClose(final AjaxRequestTarget target) {
-                SyncopeSession.get().invalidate();
-                setResponsePage(Login.class);
-            }
-        });
-        add(pwdResetConfModalWin);
-    }
-
-    private void authenticate(final String username, final String password) {
-        List<EntitlementTO> entitlements = SyncopeSession.get().
-                getService(EntitlementService.class, username, 
password).getOwnEntitlements();
-
-        SyncopeSession.get().setUsername(username);
-        SyncopeSession.get().setPassword(password);
-        
SyncopeSession.get().setEntitlements(CollectionWrapper.unwrap(entitlements).toArray(new
 String[0]));
-        SyncopeSession.get().setVersion(version);
-    }
-
-    /**
-     * Inner class which implements (custom) Locale DropDownChoice component.
-     */
-    private class LocaleDropDown extends DropDownChoice<Locale> {
-
-        private static final long serialVersionUID = 2349382679992357202L;
-
-        private class LocaleRenderer extends ChoiceRenderer<Locale> {
-
-            private static final long serialVersionUID = -3657529581555164741L;
-
-            @Override
-            public String getDisplayValue(final Locale locale) {
-                return locale.getDisplayName(getLocale());
-            }
-        }
-
-        public LocaleDropDown(final String id) {
-            super(id, SyncopeSession.SUPPORTED_LOCALES);
-
-            setChoiceRenderer(new LocaleRenderer());
-            setModel(new IModel<Locale>() {
-
-                private static final long serialVersionUID = 
-6985170095629312963L;
-
-                @Override
-                public Locale getObject() {
-                    return getSession().getLocale();
-                }
-
-                @Override
-                public void setObject(final Locale object) {
-                    getSession().setLocale(object);
-                }
-
-                @Override
-                public void detach() {
-                    // Empty.
-                }
-            });
-
-            // set default value to English
-            getModel().setObject(Locale.ENGLISH);
-        }
-
-        @Override
-        protected boolean wantOnSelectionChangedNotifications() {
-            return true;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.java
deleted file mode 100644
index acf313b..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/Logout.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.pages;
-
-import org.apache.syncope.client.console.SyncopeSession;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
-/**
- * Syncope Logout.
- */
-public class Logout extends BasePage {
-
-    private static final long serialVersionUID = -2143007520243939450L;
-
-    public Logout(final PageParameters parameters) {
-        super(parameters);
-
-        SyncopeSession.get().invalidate();
-
-        setResponsePage(getApplication().getHomePage());
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java
deleted file mode 100644
index f2e2189..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/MembershipModalPage.java
+++ /dev/null
@@ -1,114 +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.pages;
-
-import org.apache.syncope.client.console.commons.Mode;
-import org.apache.syncope.client.console.panels.AnnotatedBeanPanel;
-import org.apache.syncope.client.console.panels.DerAttrsPanel;
-import org.apache.syncope.client.console.panels.PlainAttrsPanel;
-import org.apache.syncope.client.console.panels.VirAttrsPanel;
-import org.apache.syncope.common.lib.to.MembershipTO;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.ResourceModel;
-
-public class MembershipModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -4360802478081432549L;
-
-    private final AjaxButton submit;
-
-    public MembershipModalPage(final PageReference pageRef, final ModalWindow 
window, final MembershipTO membershipTO,
-            final Mode mode) {
-
-        final Form<MembershipTO> form = new 
Form<MembershipTO>("MembershipForm");
-
-        final UserTO userTO = ((UserModalPage) pageRef.getPage()).getUserTO();
-
-        form.setModel(new CompoundPropertyModel<MembershipTO>(membershipTO));
-
-        submit = new AjaxButton(SUBMIT, new ResourceModel(SUBMIT)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form 
form) {
-                userTO.getMemberships().remove(membershipTO);
-                userTO.getMemberships().add(membershipTO);
-
-                ((UserModalPage) pageRef.getPage()).setUserTO(userTO);
-
-                window.close(target);
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final 
Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-
-        form.add(submit);
-        form.setDefaultButton(submit);
-
-        final IndicatingAjaxButton cancel = new IndicatingAjaxButton(CANCEL, 
new ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                ((UserModalPage) pageRef.getPage()).setUserTO(userTO);
-                window.close(target);
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final 
Form<?> form) {
-            }
-        };
-
-        cancel.setDefaultFormProcessing(false);
-        form.add(cancel);
-
-        //--------------------------------
-        // Attributes panel
-        //--------------------------------
-        form.add(new PlainAttrsPanel("plainAttrs", membershipTO, form, mode));
-        form.add(new AnnotatedBeanPanel("systeminformation", membershipTO));
-        //--------------------------------
-
-        //--------------------------------
-        // Derived attributes container
-        //--------------------------------
-        form.add(new DerAttrsPanel("derAttrs", membershipTO));
-        //--------------------------------
-
-        //--------------------------------
-        // Virtual attributes container
-        //--------------------------------
-        form.add(new VirAttrsPanel("virAttrs", membershipTO, mode == 
Mode.TEMPLATE));
-        //--------------------------------
-
-        add(form);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java
deleted file mode 100644
index 98d8862..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationModalPage.java
+++ /dev/null
@@ -1,441 +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.pages;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.List;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.panels.LoggerCategoryPanel;
-import org.apache.syncope.client.console.panels.GroupSearchPanel;
-import org.apache.syncope.client.console.panels.UserSearchPanel;
-import org.apache.syncope.client.console.rest.LoggerRestClient;
-import org.apache.syncope.client.console.rest.NotificationRestClient;
-import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
-import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
-import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import 
org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.NotificationTO;
-import org.apache.syncope.common.lib.types.AttributableType;
-import org.apache.syncope.common.lib.types.IntMappingType;
-import org.apache.syncope.common.lib.types.TraceLevel;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import 
org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.apache.wicket.validation.validator.EmailAddressValidator;
-
-class NotificationModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -1975312550059578553L;
-
-    @SpringBean
-    private NotificationRestClient restClient;
-
-    @SpringBean
-    private LoggerRestClient loggerRestClient;
-
-    public NotificationModalPage(final PageReference pageRef, final 
ModalWindow window,
-            final NotificationTO notificationTO, final boolean createFlag) {
-
-        final Form<NotificationTO> form =
-                new Form<NotificationTO>(FORM, new 
CompoundPropertyModel<NotificationTO>(notificationTO));
-
-        final AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", 
getString("sender"),
-                new PropertyModel<String>(notificationTO, "sender"));
-        sender.addRequiredLabel();
-        sender.addValidator(EmailAddressValidator.getInstance());
-        form.add(sender);
-
-        final AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", 
getString("subject"),
-                new PropertyModel<String>(notificationTO, "subject"));
-        subject.addRequiredLabel();
-        form.add(subject);
-
-        final AjaxDropDownChoicePanel<String> template = new 
AjaxDropDownChoicePanel<String>(
-                "template", getString("template"),
-                new PropertyModel<String>(notificationTO, "template"));
-        template.setChoices(confRestClient.getMailTemplates());
-        template.addRequiredLabel();
-        form.add(template);
-
-        final AjaxDropDownChoicePanel<TraceLevel> traceLevel = new 
AjaxDropDownChoicePanel<TraceLevel>(
-                "traceLevel", getString("traceLevel"),
-                new PropertyModel<TraceLevel>(notificationTO, "traceLevel"));
-        traceLevel.setChoices(Arrays.asList(TraceLevel.values()));
-        traceLevel.addRequiredLabel();
-        form.add(traceLevel);
-
-        final AjaxCheckBoxPanel isActive = new AjaxCheckBoxPanel("isActive",
-                getString("isActive"), new 
PropertyModel<Boolean>(notificationTO, "active"));
-        if (createFlag) {
-            isActive.getField().setDefaultModelObject(Boolean.TRUE);
-        }
-        form.add(isActive);
-
-        final WebMarkupContainer aboutContainer = new 
WebMarkupContainer("aboutContainer");
-        aboutContainer.setOutputMarkupId(true);
-
-        form.add(aboutContainer);
-
-        final AjaxCheckBoxPanel checkAbout = new 
AjaxCheckBoxPanel("checkAbout", "checkAbout", new Model<Boolean>(
-                notificationTO.getUserAbout() == null && 
notificationTO.getGroupAbout() == null));
-        aboutContainer.add(checkAbout);
-
-        final AjaxCheckBoxPanel checkUserAbout = new 
AjaxCheckBoxPanel("checkUserAbout", "checkUserAbout",
-                new Model<Boolean>(notificationTO.getUserAbout() != null));
-        aboutContainer.add(checkUserAbout);
-
-        final AjaxCheckBoxPanel checkGroupAbout = new 
AjaxCheckBoxPanel("checkGroupAbout", "checkGroupAbout",
-                new Model<Boolean>(notificationTO.getGroupAbout() != null));
-        aboutContainer.add(checkGroupAbout);
-
-        final UserSearchPanel userAbout =
-                new 
UserSearchPanel.Builder("userAbout").fiql(notificationTO.getUserAbout()).build();
-        aboutContainer.add(userAbout);
-        userAbout.setEnabled(checkUserAbout.getModelObject());
-
-        final GroupSearchPanel groupAbout =
-                new 
GroupSearchPanel.Builder("groupAbout").fiql(notificationTO.getGroupAbout()).build();
-        aboutContainer.add(groupAbout);
-        groupAbout.setEnabled(checkGroupAbout.getModelObject());
-
-        checkAbout.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (checkAbout.getModelObject()) {
-                    checkUserAbout.setModelObject(Boolean.FALSE);
-                    checkGroupAbout.setModelObject(Boolean.FALSE);
-                    userAbout.setEnabled(Boolean.FALSE);
-                    groupAbout.setEnabled(Boolean.FALSE);
-                } else {
-                    checkAbout.setModelObject(Boolean.TRUE);
-                }
-                target.add(aboutContainer);
-            }
-        });
-
-        checkUserAbout.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (checkUserAbout.getModelObject()) {
-                    
checkAbout.setModelObject(!checkUserAbout.getModelObject());
-                    
checkGroupAbout.setModelObject(!checkUserAbout.getModelObject());
-                    groupAbout.setEnabled(Boolean.FALSE);
-                } else {
-                    checkUserAbout.setModelObject(Boolean.TRUE);
-                }
-                userAbout.setEnabled(Boolean.TRUE);
-                target.add(aboutContainer);
-            }
-        });
-
-        checkGroupAbout.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (checkGroupAbout.getModelObject()) {
-                    checkAbout.setModelObject(Boolean.FALSE);
-                    checkUserAbout.setModelObject(Boolean.FALSE);
-                    userAbout.setEnabled(Boolean.FALSE);
-                } else {
-                    checkGroupAbout.setModelObject(Boolean.TRUE);
-                }
-                groupAbout.setEnabled(Boolean.TRUE);
-                target.add(aboutContainer);
-            }
-        });
-
-        final AjaxDropDownChoicePanel<IntMappingType> recipientAttrType = new 
AjaxDropDownChoicePanel<IntMappingType>(
-                "recipientAttrType", new ResourceModel("recipientAttrType", 
"recipientAttrType").getObject(),
-                new PropertyModel<IntMappingType>(notificationTO, 
"recipientAttrType"));
-        recipientAttrType.setChoices(new ArrayList<IntMappingType>(
-                IntMappingType.getAttributeTypes(AttributableType.USER,
-                        EnumSet.of(IntMappingType.UserId, 
IntMappingType.Password))));
-        recipientAttrType.addRequiredLabel();
-        form.add(recipientAttrType);
-
-        final AjaxDropDownChoicePanel<String> recipientAttrName = new 
AjaxDropDownChoicePanel<String>(
-                "recipientAttrName", new ResourceModel("recipientAttrName", 
"recipientAttrName").getObject(),
-                new PropertyModel<String>(notificationTO, 
"recipientAttrName"));
-        
recipientAttrName.setChoices(getSchemaNames(recipientAttrType.getModelObject()));
-        recipientAttrName.addRequiredLabel();
-        form.add(recipientAttrName);
-
-        recipientAttrType.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                
recipientAttrName.setChoices(getSchemaNames(recipientAttrType.getModelObject()));
-                target.add(recipientAttrName);
-            }
-        });
-
-        form.add(new LoggerCategoryPanel(
-                "eventSelection",
-                loggerRestClient.listEvents(),
-                new PropertyModel<List<String>>(notificationTO, "events"),
-                getPageReference(),
-                "Notification") {
-
-                    private static final long serialVersionUID = 
6429053774964787735L;
-
-                    @Override
-                    protected String[] getListRoles() {
-                        return new String[] {};
-                    }
-
-                    @Override
-                    protected String[] getChangeRoles() {
-                        return new String[] {};
-                    }
-                });
-
-        final WebMarkupContainer recipientsContainer = new 
WebMarkupContainer("recipientsContainer");
-        recipientsContainer.setOutputMarkupId(true);
-
-        form.add(recipientsContainer);
-
-        final AjaxCheckBoxPanel checkStaticRecipients = new 
AjaxCheckBoxPanel("checkStaticRecipients",
-                "recipients", new 
Model<Boolean>(!notificationTO.getStaticRecipients().isEmpty()));
-        form.add(checkStaticRecipients);
-
-        if (createFlag) {
-            
checkStaticRecipients.getField().setDefaultModelObject(Boolean.FALSE);
-        }
-
-        final AjaxTextFieldPanel staticRecipientsFieldPanel =
-                new AjaxTextFieldPanel("panel", "staticRecipients", new 
Model<String>(null));
-        
staticRecipientsFieldPanel.addValidator(EmailAddressValidator.getInstance());
-        
staticRecipientsFieldPanel.setRequired(checkStaticRecipients.getModelObject());
-
-        if (notificationTO.getStaticRecipients().isEmpty()) {
-            notificationTO.getStaticRecipients().add(null);
-        }
-
-        final MultiFieldPanel<String> staticRecipients = new 
MultiFieldPanel<String>("staticRecipients",
-                new PropertyModel<List<String>>(notificationTO, 
"staticRecipients"), staticRecipientsFieldPanel);
-        staticRecipients.setEnabled(checkStaticRecipients.getModelObject());
-        form.add(staticRecipients);
-
-        final AjaxCheckBoxPanel checkRecipients =
-                new AjaxCheckBoxPanel("checkRecipients", "checkRecipients",
-                        new Model<Boolean>(notificationTO.getRecipients() == 
null ? false : true));
-        recipientsContainer.add(checkRecipients);
-
-        if (createFlag) {
-            checkRecipients.getField().setDefaultModelObject(Boolean.TRUE);
-        }
-
-        final UserSearchPanel recipients =
-                new 
UserSearchPanel.Builder("recipients").fiql(notificationTO.getRecipients()).build();
-
-        recipients.setEnabled(checkRecipients.getModelObject());
-        recipientsContainer.add(recipients);
-
-        final AjaxCheckBoxPanel selfAsRecipient = new 
AjaxCheckBoxPanel("selfAsRecipient",
-                getString("selfAsRecipient"), new 
PropertyModel<Boolean>(notificationTO, "selfAsRecipient"));
-        form.add(selfAsRecipient);
-
-        if (createFlag) {
-            selfAsRecipient.getField().setDefaultModelObject(Boolean.FALSE);
-        }
-
-        selfAsRecipient.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (!selfAsRecipient.getModelObject()
-                        && !checkRecipients.getModelObject()
-                        && !checkStaticRecipients.getModelObject()) {
-
-                    
checkRecipients.getField().setDefaultModelObject(Boolean.TRUE);
-                    target.add(checkRecipients);
-                    recipients.setEnabled(checkRecipients.getModelObject());
-                    target.add(recipients);
-                    target.add(recipientsContainer);
-                }
-            }
-        });
-
-        checkRecipients.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (!checkRecipients.getModelObject()
-                        && !selfAsRecipient.getModelObject()
-                        && !checkStaticRecipients.getModelObject()) {
-
-                    
checkStaticRecipients.getField().setDefaultModelObject(Boolean.TRUE);
-                    target.add(checkStaticRecipients);
-                    staticRecipients.setEnabled(Boolean.TRUE);
-                    target.add(staticRecipients);
-                    staticRecipientsFieldPanel.setRequired(Boolean.TRUE);
-                    target.add(staticRecipientsFieldPanel);
-                }
-                recipients.setEnabled(checkRecipients.getModelObject());
-                target.add(recipients);
-                target.add(recipientsContainer);
-            }
-        });
-
-        checkStaticRecipients.getField().add(new 
AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                if (!checkStaticRecipients.getModelObject()
-                        && !selfAsRecipient.getModelObject()
-                        && !checkRecipients.getModelObject()) {
-                    
checkRecipients.getField().setDefaultModelObject(Boolean.TRUE);
-                    checkRecipients.setEnabled(Boolean.TRUE);
-                    target.add(checkRecipients);
-                }
-                
staticRecipients.setEnabled(checkStaticRecipients.getModelObject());
-                
staticRecipientsFieldPanel.setRequired(checkStaticRecipients.getModelObject());
-                recipients.setEnabled(checkRecipients.getModelObject());
-                target.add(staticRecipientsFieldPanel);
-                target.add(staticRecipients);
-                target.add(recipients);
-                target.add(recipientsContainer);
-            }
-        });
-
-        AjaxButton submit = new IndicatingAjaxButton(APPLY, new 
Model<String>(getString(SUBMIT))) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                notificationTO.setUserAbout(
-                        !checkAbout.getModelObject() && 
checkUserAbout.getModelObject() ? userAbout.buildFIQL() : null);
-                notificationTO.setGroupAbout(
-                        !checkAbout.getModelObject()
-                        && checkGroupAbout.getModelObject() ? 
groupAbout.buildFIQL() : null);
-                notificationTO.setRecipients(checkRecipients.getModelObject() 
? recipients.buildFIQL() : null);
-                
notificationTO.getStaticRecipients().removeAll(Collections.singleton(null));
-
-                try {
-                    if (createFlag) {
-                        restClient.create(notificationTO);
-                    } else {
-                        restClient.update(notificationTO);
-                    }
-                    info(getString(Constants.OPERATION_SUCCEEDED));
-
-                    Configuration callerPage = (Configuration) 
pageRef.getPage();
-                    callerPage.setModalResult(true);
-
-                    window.close(target);
-                } catch (SyncopeClientException scee) {
-                    error(getString(Constants.ERROR) + ": " + 
scee.getMessage());
-                    feedbackPanel.refresh(target);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final 
Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-
-        final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new 
ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                window.close(target);
-            }
-        };
-
-        cancel.setDefaultFormProcessing(false);
-
-        String allowedRoles = createFlag
-                ? xmlRolesReader.getEntitlement("Notification", "create")
-                : xmlRolesReader.getEntitlement("Notification", "update");
-        MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, 
allowedRoles);
-
-        form.add(submit);
-        form.setDefaultButton(submit);
-
-        form.add(cancel);
-
-        add(form);
-    }
-
-    private List<String> getSchemaNames(final IntMappingType type) {
-        final List<String> result;
-
-        if (type == null) {
-            result = Collections.<String>emptyList();
-        } else {
-            switch (type) {
-                case UserPlainSchema:
-                    result = 
schemaRestClient.getPlainSchemaNames(AttributableType.USER);
-                    break;
-
-                case UserDerivedSchema:
-                    result = 
schemaRestClient.getDerSchemaNames(AttributableType.USER);
-                    break;
-
-                case UserVirtualSchema:
-                    result = 
schemaRestClient.getVirSchemaNames(AttributableType.USER);
-                    break;
-
-                case Username:
-                    result = Collections.singletonList("Username");
-                    break;
-
-                default:
-                    result = Collections.<String>emptyList();
-            }
-        }
-
-        return result;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/39f8a069/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java
deleted file mode 100644
index 70f63d6..0000000
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/pages/NotificationTaskModalPage.java
+++ /dev/null
@@ -1,69 +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.pages;
-
-import java.util.ArrayList;
-import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
-import org.apache.syncope.common.lib.to.NotificationTaskTO;
-import org.apache.wicket.markup.html.form.ListMultipleChoice;
-import org.apache.wicket.markup.html.form.TextArea;
-import org.apache.wicket.model.PropertyModel;
-
-public class NotificationTaskModalPage extends TaskModalPage {
-
-    private static final long serialVersionUID = -4399606755452034216L;
-
-    public NotificationTaskModalPage(final AbstractTaskTO taskTO) {
-        super(taskTO);
-
-        final AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", 
getString("sender"),
-                new PropertyModel<String>(taskTO, "sender"));
-        sender.setEnabled(false);
-        profile.add(sender);
-
-        if (taskTO instanceof NotificationTaskTO) {
-            final ListMultipleChoice<String> recipients = new 
ListMultipleChoice<>("recipients",
-                    new ArrayList<>(((NotificationTaskTO) 
taskTO).getRecipients()));
-            recipients.setMaxRows(5);
-            recipients.setEnabled(false);
-            profile.add(recipients);
-        }
-
-        final AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", 
getString("subject"),
-                new PropertyModel<String>(taskTO, "subject"));
-        subject.setEnabled(false);
-        profile.add(subject);
-
-        final TextArea<String> textBody = new TextArea<String>("textBody",
-                new PropertyModel<String>(taskTO, "textBody"));
-        textBody.setEnabled(false);
-        profile.add(textBody);
-
-        final TextArea<String> htmlBody = new TextArea<String>("htmlBody",
-                new PropertyModel<String>(taskTO, "htmlBody"));
-        htmlBody.setEnabled(false);
-        profile.add(htmlBody);
-
-        final AjaxTextFieldPanel traceLevel = new 
AjaxTextFieldPanel("traceLevel", getString("traceLevel"),
-                new PropertyModel<String>(taskTO, "traceLevel"));
-        traceLevel.setEnabled(false);
-        profile.add(traceLevel);
-    }
-}

Reply via email to