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/06/14 16:00:03 UTC
[12/15] syncope git commit: [SYNCOPE-862] Features complete
[SYNCOPE-862] Features complete
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8e162494
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8e162494
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8e162494
Branch: refs/heads/SYNCOPE-862
Commit: 8e162494e707c3279f4bc43f951a7c87d869daef
Parents: a4afd4a
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Jun 14 17:57:42 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Jun 14 17:59:30 2016 +0200
----------------------------------------------------------------------
.../client/console/commons/Constants.java | 34 +-
.../NotificationWizardBuilder.java | 103 +--
.../client/console/panels/BeanPanel.java | 60 +-
.../console/panels/ConnObjectListViewPanel.java | 2 +-
.../client/console/rest/SchemaRestClient.java | 1 +
.../client/console/wizards/any/Groups.java | 11 +-
.../console/wizards/any/Relationships.java | 10 +-
.../wizards/resources/ResourceMappingPanel.java | 317 ++++------
.../SyncopeConsoleApplication.properties | 1 +
.../SyncopeConsoleApplication_it.properties | 1 +
.../SyncopeConsoleApplication_pt_BR.properties | 1 +
.../SyncopeConsoleApplication_ru.properties | 1 +
.../NotificationWizardBuilder$Details.html | 3 -
...NotificationWizardBuilder$Details.properties | 3 +-
...ificationWizardBuilder$Details_it.properties | 3 +-
...cationWizardBuilder$Details_pt_BR.properties | 3 +-
...ificationWizardBuilder$Details_ru.properties | 14 +-
.../NotificationWizardBuilder$Events.properties | 2 -
...tificationWizardBuilder$Events_it.properties | 2 -
...icationWizardBuilder$Events_pt_BR.properties | 2 -
...tificationWizardBuilder$Events_ru.properties | 52 +-
.../console/pages/Notifications.properties | 2 -
.../console/pages/Notifications_it.properties | 2 -
.../pages/Notifications_pt_BR.properties | 2 -
.../console/pages/Notifications_ru.properties | 50 +-
.../wizards/resources/ResourceMappingPanel.html | 19 +-
.../resources/ResourceProvisionPanel.properties | 5 +-
.../ResourceProvisionPanel_it.properties | 5 +-
.../ResourceProvisionPanel_pt_BR.properties | 5 +-
.../ResourceProvisionPanel_ru.properties | 6 +-
.../syncope/common/lib/to/AnyObjectTO.java | 2 +-
.../common/lib/to/GroupableRelatableTO.java | 36 ++
.../syncope/common/lib/to/GroupableTO.java | 31 -
.../syncope/common/lib/to/RelatableTO.java | 30 -
.../apache/syncope/common/lib/to/UserTO.java | 2 +-
.../syncope/core/logic/ResourceLogic.java | 6 +-
.../logic/report/ReconciliationReportlet.java | 6 +-
.../core/persistence/api/dao/SchemaDAO.java | 2 +-
.../persistence/jpa/entity/JPAAnyUtils.java | 11 +-
.../jpa/entity/resource/JPAMappingItem.java | 4 +-
.../entity/ExternalResourceValidator.java | 102 +--
.../persistence/jpa/inner/ResourceTest.java | 65 +-
.../persistence/jpa/outer/ResourceTest.java | 1 +
.../test/resources/domains/MasterContent.xml | 13 +-
.../src/test/resources/domains/TwoContent.xml | 4 +-
.../core/provisioning/api/IntAttrName.java | 103 +++
.../provisioning/api/IntAttrNameParser.java | 140 -----
.../core/provisioning/api/MappingManager.java | 7 +-
.../api/data/MappingItemTransformer.java | 4 +-
.../provisioning/java/ConnectorFacadeProxy.java | 5 +-
.../provisioning/java/IntAttrNameParser.java | 120 ++++
.../provisioning/java/MappingManagerImpl.java | 623 +++++++------------
.../provisioning/java/VirAttrHandlerImpl.java | 5 +-
.../java/data/AbstractAnyDataBinder.java | 37 +-
.../data/DefaultMappingItemTransformer.java | 2 +-
.../java/data/JEXLMappingItemTransformer.java | 46 +-
.../java/data/NotificationDataBinderImpl.java | 7 +-
.../java/data/ResourceDataBinderImpl.java | 60 +-
.../java/data/UserDataBinderImpl.java | 5 +-
.../notification/NotificationManagerImpl.java | 30 +-
.../AbstractPropagationTaskExecutor.java | 6 +-
.../propagation/PropagationManagerImpl.java | 4 +-
.../pushpull/AbstractPushResultHandler.java | 4 +-
.../pushpull/PlainAttrsPullCorrelationRule.java | 6 +-
.../java/pushpull/PullJobDelegate.java | 10 +-
.../provisioning/java/pushpull/PullUtils.java | 22 +-
.../java/utils/ConnObjectUtils.java | 3 +-
.../provisioning/java/utils/MappingUtils.java | 239 +++++++
.../src/main/resources/provisioningContext.xml | 1 +
.../java/IntAttrNameParserTest.java | 161 +++++
.../core/provisioning/java/MappingTest.java | 5 +-
.../reference/PrefixMappingItemTransformer.java | 4 +-
.../fit/console/NotificationsITCase.java | 12 +-
.../syncope/fit/console/TopologyITCase.java | 13 +-
.../apache/syncope/fit/core/GroupITCase.java | 31 +-
.../syncope/fit/core/MembershipITCase.java | 112 ++++
.../syncope/fit/core/MigrationITCase.java | 4 +-
.../apache/syncope/fit/core/ResourceITCase.java | 36 +-
78 files changed, 1491 insertions(+), 1413 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
index 19b1ce1..7157c09 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/Constants.java
@@ -23,7 +23,6 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.components.PopoverConfig
import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
public final class Constants {
@@ -164,27 +163,9 @@ public final class Constants {
*/
public static final String GUARDED_BYTE_ARRAY = "org.identityconnectors.common.security.GuardedByteArray";
- public static Component getPopover(
- final String id,
- final IModel<String> msg,
- final Component caller,
- final TooltipConfig.Placement placement) {
- return new Label(id, Model.of()).add(new PopoverBehavior(
- Model.<String>of(),
- msg,
- new PopoverConfig().withHtml(true).withPlacement(placement)) {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected String createRelAttribute() {
- return id;
- }
- });
- }
-
public static Component getJEXLPopover(final Component caller, final TooltipConfig.Placement placement) {
- return getPopover("jexlInfo",
+ return new Label("jexlInfo", Model.of()).add(new PopoverBehavior(
+ Model.<String>of(),
Model.of(caller.getString("jexl_info")
+ "<ul>"
+ "<li>" + caller.getString("jexl_ex1") + "</li>"
@@ -192,8 +173,15 @@ public final class Constants {
+ "</ul>"
+ "<a href='https://commons.apache.org/proper/commons-jexl/reference/index.html' "
+ "target='_blank'>" + caller.getString("jexl_syntax_url") + "</a>"),
- caller,
- placement);
+ new PopoverConfig().withHtml(true).withPlacement(placement)) {
+
+ private static final long serialVersionUID = -7867802555691605021L;
+
+ @Override
+ protected String createRelAttribute() {
+ return "jexlInfo";
+ }
+ });
}
private Constants() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/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 4bc8478..cf97161 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
@@ -23,7 +23,6 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
@@ -52,7 +51,6 @@ import org.apache.syncope.common.lib.to.NotificationTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.to.VirSchemaTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.IntMappingType;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.syncope.common.lib.types.TraceLevel;
import org.apache.wicket.PageReference;
@@ -119,50 +117,34 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
private static final long serialVersionUID = -7709805590497687958L;
public Details(final NotificationWrapper modelObject) {
- final NotificationTO notificationTO = modelObject.getInnerObject();
- final boolean createFlag = notificationTO.getKey() == null;
+ NotificationTO notificationTO = modelObject.getInnerObject();
+ boolean createFlag = notificationTO.getKey() == null;
- final AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", getString("sender"),
+ AjaxTextFieldPanel sender = new AjaxTextFieldPanel("sender", getString("sender"),
new PropertyModel<String>(notificationTO, "sender"));
sender.addRequiredLabel();
sender.addValidator(EmailAddressValidator.getInstance());
add(sender);
- final AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", getString("subject"),
+ AjaxTextFieldPanel subject = new AjaxTextFieldPanel("subject", getString("subject"),
new PropertyModel<String>(notificationTO, "subject"));
subject.addRequiredLabel();
add(subject);
- final AjaxDropDownChoicePanel<IntMappingType> recipientAttrType =
- new AjaxDropDownChoicePanel<>(
- "recipientAttrType",
- new ResourceModel("recipientAttrType", "recipientAttrType").getObject(),
- new PropertyModel<IntMappingType>(notificationTO, "recipientAttrType"));
- recipientAttrType.setChoices(
- new ArrayList<>(IntMappingType.getAttributeTypes(AnyTypeKind.USER,
- EnumSet.of(IntMappingType.UserKey, IntMappingType.Password))));
- recipientAttrType.addRequiredLabel();
- add(recipientAttrType);
-
- final AjaxDropDownChoicePanel<String> recipientAttrName = new AjaxDropDownChoicePanel<>(
+ AjaxTextFieldPanel recipientAttrName = new AjaxTextFieldPanel(
"recipientAttrName", new ResourceModel("recipientAttrName", "recipientAttrName").getObject(),
new PropertyModel<String>(notificationTO, "recipientAttrName"));
- recipientAttrName.setChoices(getSchemaNames(recipientAttrType.getModelObject()));
+ recipientAttrName.setChoices(getSchemaNames());
recipientAttrName.addRequiredLabel();
+ recipientAttrName.setTitle(getString("intAttrNameInfo.help")
+ + "<div style=\"font-size: 10px;\">"
+ + "<code>groups[groupName].attribute</code>\n"
+ + "<code>anyObjects[anyObjectName].attribute</code>\n"
+ + "<code>memberships[groupName].attribute</code>\n"
+ + "</div>", true);
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);
- }
- });
-
- final AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<>(
+ AjaxDropDownChoicePanel<String> template = new AjaxDropDownChoicePanel<>(
"template", getString("template"),
new PropertyModel<String>(notificationTO, "template"));
template.setChoices(CollectionUtils.collect(
@@ -177,7 +159,7 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
template.addRequiredLabel();
add(template);
- final AjaxDropDownChoicePanel<TraceLevel> traceLevel = new AjaxDropDownChoicePanel<>(
+ AjaxDropDownChoicePanel<TraceLevel> traceLevel = new AjaxDropDownChoicePanel<>(
"traceLevel", getString("traceLevel"),
new PropertyModel<TraceLevel>(notificationTO, "traceLevel"));
traceLevel.setChoices(Arrays.asList(TraceLevel.values()));
@@ -228,7 +210,7 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
super(id, model);
setOutputMarkupId(true);
- final List<String> anyTypeTOs = CollectionUtils.collect(
+ List<String> anyTypeTOs = CollectionUtils.collect(
new AnyTypeRestClient().list(),
EntityTOUtils.<AnyTypeTO>keyTransformer(), new ArrayList<String>());
@@ -289,22 +271,24 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
private AbstractSearchPanel.Builder<?> getClauseBuilder(
final String type, final ListModel<SearchClause> clauseModel) {
+
AbstractSearchPanel.Builder<?> clause;
switch (type) {
case "USER":
clause = new UserSearchPanel.Builder(clauseModel);
break;
+
case "GROUP":
clause = new GroupSearchPanel.Builder(clauseModel);
break;
+
default:
clause = new AnyObjectSearchPanel.Builder(type, clauseModel);
- break;
}
+
return clause;
}
-
}
public class Abouts extends WizardStep {
@@ -389,40 +373,21 @@ public class NotificationWizardBuilder extends AjaxWizardBuilder<NotificationWra
}
- private List<String> getSchemaNames(final IntMappingType type) {
- final List<String> result;
-
- if (type == null) {
- result = Collections.<String>emptyList();
- } else {
- switch (type) {
- case UserPlainSchema:
- result = CollectionUtils.collect(
- schemaRestClient.<PlainSchemaTO>getSchemas(SchemaType.PLAIN, AnyTypeKind.USER.name()),
- EntityTOUtils.<PlainSchemaTO>keyTransformer(), new ArrayList<String>());
- break;
-
- case UserDerivedSchema:
- result = CollectionUtils.collect(
- schemaRestClient.<DerSchemaTO>getSchemas(SchemaType.DERIVED, AnyTypeKind.USER.name()),
- EntityTOUtils.<DerSchemaTO>keyTransformer(), new ArrayList<String>());
- break;
-
- case UserVirtualSchema:
- result = CollectionUtils.collect(
- schemaRestClient.<VirSchemaTO>getSchemas(SchemaType.VIRTUAL, AnyTypeKind.USER.name()),
- EntityTOUtils.<VirSchemaTO>keyTransformer(), new ArrayList<String>());
- break;
-
- case Username:
- result = Collections.singletonList("Username");
- break;
-
- default:
- result = Collections.<String>emptyList();
- }
- }
-
+ private List<String> getSchemaNames() {
+ List<String> result = new ArrayList<>();
+ result.add("username");
+
+ CollectionUtils.collect(
+ schemaRestClient.<PlainSchemaTO>getSchemas(SchemaType.PLAIN, AnyTypeKind.USER.name()),
+ EntityTOUtils.<PlainSchemaTO>keyTransformer(), result);
+ CollectionUtils.collect(
+ schemaRestClient.<DerSchemaTO>getSchemas(SchemaType.DERIVED, AnyTypeKind.USER.name()),
+ EntityTOUtils.<DerSchemaTO>keyTransformer(), result);
+ CollectionUtils.collect(
+ schemaRestClient.<VirSchemaTO>getSchemas(SchemaType.VIRTUAL, AnyTypeKind.USER.name()),
+ EntityTOUtils.<VirSchemaTO>keyTransformer(), result);
+
+ Collections.sort(result);
return result;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
index fe09351..6da40f0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
@@ -50,8 +50,6 @@ import org.apache.syncope.common.lib.report.Schema;
import org.apache.syncope.common.lib.report.SearchCondition;
import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
-import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.IntMappingType;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
@@ -102,7 +100,7 @@ public class BeanPanel<T extends Serializable> extends Panel {
@Override
protected List<String> load() {
- List<String> result = new ArrayList<String>();
+ List<String> result = new ArrayList<>();
if (BeanPanel.this.getDefaultModelObject() != null) {
for (Field field : BeanPanel.this.getDefaultModelObject().getClass().getDeclaredFields()) {
@@ -160,18 +158,18 @@ public class BeanPanel<T extends Serializable> extends Panel {
switch (scondAnnot.type()) {
case "USER":
panel = new UserSearchPanel.Builder(
- new ListModel<SearchClause>(clauses)).required(false).build("value");
+ new ListModel<>(clauses)).required(false).build("value");
builder = SyncopeClient.getUserSearchConditionBuilder();
break;
case "GROUP":
panel = new GroupSearchPanel.Builder(
- new ListModel<SearchClause>(clauses)).required(false).build("value");
+ new ListModel<>(clauses)).required(false).build("value");
builder = SyncopeClient.getGroupSearchConditionBuilder();
break;
default:
panel = new AnyObjectSearchPanel.Builder(
scondAnnot.type(),
- new ListModel<SearchClause>(clauses)).required(false).build("value");
+ new ListModel<>(clauses)).required(false).build("value");
builder = SyncopeClient.getAnyObjectSearchConditionBuilder(null);
}
@@ -190,51 +188,21 @@ public class BeanPanel<T extends Serializable> extends Panel {
final List<AbstractSchemaTO> choices = new ArrayList<>();
- for (IntMappingType type : schemaAnnot.type()) {
+ for (SchemaType type : schemaAnnot.type()) {
switch (type) {
- case UserPlainSchema:
+ case PLAIN:
choices.addAll(
- schemaRestClient.getSchemas(SchemaType.PLAIN, AnyTypeKind.USER));
+ schemaRestClient.getSchemas(SchemaType.PLAIN, schemaAnnot.anyTypeKind()));
break;
- case UserDerivedSchema:
+ case DERIVED:
choices.addAll(
- schemaRestClient.getSchemas(SchemaType.DERIVED, AnyTypeKind.USER));
+ schemaRestClient.getSchemas(SchemaType.DERIVED, schemaAnnot.anyTypeKind()));
break;
- case UserVirtualSchema:
+ case VIRTUAL:
choices.addAll(
- schemaRestClient.getSchemas(SchemaType.VIRTUAL, AnyTypeKind.USER));
- break;
-
- case GroupPlainSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.PLAIN, AnyTypeKind.GROUP));
- break;
-
- case GroupDerivedSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.DERIVED, AnyTypeKind.GROUP));
- break;
-
- case GroupVirtualSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.VIRTUAL, AnyTypeKind.GROUP));
- break;
-
- case AnyObjectPlainSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.PLAIN, AnyTypeKind.ANY_OBJECT));
- break;
-
- case AnyObjectDerivedSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.DERIVED, AnyTypeKind.ANY_OBJECT));
- break;
-
- case AnyObjectVirtualSchema:
- choices.addAll(
- schemaRestClient.getSchemas(SchemaType.VIRTUAL, AnyTypeKind.ANY_OBJECT));
+ schemaRestClient.getSchemas(SchemaType.VIRTUAL, schemaAnnot.anyTypeKind()));
break;
default:
@@ -244,7 +212,7 @@ public class BeanPanel<T extends Serializable> extends Panel {
panel = new AjaxPalettePanel.Builder<String>().setName(fieldName).build(
"value",
new PropertyModel<List<String>>(bean.getObject(), fieldName),
- new ListModel<String>(
+ new ListModel<>(
CollectionUtils.collect(
choices, new Transformer<AbstractSchemaTO, String>() {
@@ -263,7 +231,7 @@ public class BeanPanel<T extends Serializable> extends Panel {
((List) wrapper.getPropertyValue(fieldName)).add(null);
}
- panel = new MultiFieldPanel.Builder<String>(
+ panel = new MultiFieldPanel.Builder<>(
new PropertyModel<List<String>>(bean.getObject(), fieldName)).build(
"value",
fieldName,
@@ -287,7 +255,7 @@ public class BeanPanel<T extends Serializable> extends Panel {
if (ClassUtils.isAssignable(Boolean.class, type)) {
result = new AjaxCheckBoxPanel(id, fieldName, model);
} else if (ClassUtils.isAssignable(Number.class, type)) {
- result = new AjaxSpinnerFieldPanel.Builder<Number>().build(
+ result = new AjaxSpinnerFieldPanel.Builder<>().build(
id, fieldName, (Class<Number>) ClassUtils.resolvePrimitiveIfNecessary(type), model);
} else if (Date.class.equals(type)) {
result = new DateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
index 53e2c69..45ddb35 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
@@ -68,7 +68,7 @@ public abstract class ConnObjectListViewPanel extends Panel {
@Override
protected Component getValueComponent(final String key, final ConnObjectTO bean) {
- final AttrTO attrTO = IterableUtils.find(bean.getPlainAttrs(), new Predicate<AttrTO>() {
+ final AttrTO attrTO = IterableUtils.find(bean.getAttrs(), new Predicate<AttrTO>() {
@Override
public boolean evaluate(final AttrTO object) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
index a6ad2eb..d38091b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/SchemaRestClient.java
@@ -54,6 +54,7 @@ public class SchemaRestClient extends BaseRestClient {
classes.addAll(type.getClasses());
}
break;
+
default:
for (AnyTypeTO anyTypeTO : getService(AnyTypeService.class).list()) {
if (anyTypeTO.getKind() != AnyTypeKind.USER && anyTypeTO.getKind() != AnyTypeKind.GROUP) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
index 401f8e0..8935ef3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -32,7 +32,6 @@ import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.GroupableTO;
import org.apache.syncope.common.lib.to.MembershipTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -41,6 +40,7 @@ import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.util.ListModel;
import org.apache.wicket.util.lang.Args;
+import org.apache.syncope.common.lib.to.GroupableRelatableTO;
public class Groups extends WizardStep {
@@ -83,8 +83,8 @@ public class Groups extends WizardStep {
}
});
- add(builder.setAllowOrder(true).withFilter().build(
- "groups", new ListModel<>(GroupableTO.class.cast(anyTO).getMemberships()),
+ add(builder.setAllowOrder(true).withFilter().build("groups",
+ new ListModel<>(GroupableRelatableTO.class.cast(anyTO).getMemberships()),
new AjaxPalettePanel.Builder.Query<MembershipTO>() {
private static final long serialVersionUID = -7223078772249308813L;
@@ -116,9 +116,8 @@ public class Groups extends WizardStep {
for (GroupTO group : allGroups) {
allGroupsByKey.put(group.getKey(), group);
}
- add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build(
- "dyngroups",
- new ListModel<>(CollectionUtils.collect(GroupableTO.class.cast(anyTO).getDynGroups(),
+ add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build("dyngroups",
+ new ListModel<>(CollectionUtils.collect(GroupableRelatableTO.class.cast(anyTO).getDynGroups(),
new Transformer<String, String>() {
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/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 e41cdea..20f054c 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
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.client.console.wizards.any;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -55,7 +54,7 @@ import org.apache.syncope.common.lib.EntityTOUtils;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.lib.to.RelatableTO;
+import org.apache.syncope.common.lib.to.GroupableRelatableTO;
import org.apache.syncope.common.lib.to.RelationshipTO;
import org.apache.syncope.common.lib.to.RelationshipTypeTO;
import org.apache.syncope.common.lib.types.AnyEntitlement;
@@ -135,8 +134,7 @@ public class Relationships extends WizardStep {
public void onClick(
final AjaxRequestTarget target, final RelationshipTO modelObject) {
removeRelationships(relationships, modelObject);
- send(Relationships.this, Broadcast.DEPTH,
- new ListViewReload<Serializable>(target));
+ send(Relationships.this, Broadcast.DEPTH, new ListViewReload<>(target));
}
}, ActionType.DELETE, AnyEntitlement.UPDATE.getFor(anyTO.getType())).
build(panelId);
@@ -175,8 +173,8 @@ public class Relationships extends WizardStep {
}
private List<RelationshipTO> getCurrentRelationships() {
- return anyTO instanceof RelatableTO
- ? RelatableTO.class.cast(anyTO).getRelationships()
+ return anyTO instanceof GroupableRelatableTO
+ ? GroupableRelatableTO.class.cast(anyTO).getRelationships()
: Collections.<RelationshipTO>emptyList();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
index 06ea7c8..de90660 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
@@ -18,17 +18,24 @@
*/
package org.apache.syncope.client.console.wizards.resources;
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.PopoverBehavior;
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.PopoverConfig;
import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
+import org.apache.commons.lang3.ClassUtils;
import org.apache.syncope.client.console.commons.ConnIdSpecialAttributeName;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
@@ -38,22 +45,23 @@ import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormCompo
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
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.MappingPurposePanel;
import org.apache.syncope.client.console.widgets.JEXLTransformerWidget;
import org.apache.syncope.client.console.widgets.MappingItemTransformerWidget;
+import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.AnyTypeTO;
import org.apache.syncope.common.lib.to.ConnIdObjectClassTO;
import org.apache.syncope.common.lib.to.ConnInstanceTO;
+import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.syncope.common.lib.to.MappingItemTO;
import org.apache.syncope.common.lib.to.MappingTO;
import org.apache.syncope.common.lib.to.ProvisionTO;
import org.apache.syncope.common.lib.to.ResourceTO;
+import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ConnConfProperty;
-import org.apache.syncope.common.lib.types.IntMappingType;
import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -76,10 +84,32 @@ public class ResourceMappingPanel extends Panel {
private static final long serialVersionUID = -7982691107029848579L;
- /**
- * Mapping field style sheet.
- */
- private static final String DEF_FIELD_STYLE = "";
+ private static final Set<String> USER_FIELD_NAMES = new HashSet<>();
+
+ private static final Set<String> GROUP_FIELD_NAMES = new HashSet<>();
+
+ private static final Set<String> ANY_OBJECT_FIELD_NAMES = new HashSet<>();
+
+ static {
+ initFieldNames(UserTO.class, USER_FIELD_NAMES);
+ initFieldNames(GroupTO.class, GROUP_FIELD_NAMES);
+ initFieldNames(AnyObjectTO.class, ANY_OBJECT_FIELD_NAMES);
+ }
+
+ private static void initFieldNames(final Class<?> entityClass, final Set<String> keys) {
+ List<Class<?>> classes = ClassUtils.getAllSuperclasses(entityClass);
+ classes.add(entityClass);
+ for (Class<?> clazz : classes) {
+ for (Field field : clazz.getDeclaredFields()) {
+ if (!Modifier.isStatic(field.getModifiers())
+ && !Collection.class.isAssignableFrom(field.getType())
+ && !Map.class.isAssignableFrom(field.getType())) {
+
+ keys.add(field.getName());
+ }
+ }
+ }
+ }
/**
* Any type rest client.
@@ -157,6 +187,24 @@ public class ResourceMappingPanel extends Panel {
this.mappingContainer.setVisible(provisionTO != null);
add(this.mappingContainer);
+ mappingContainer.add(new Label("intAttrNameInfo", Model.of()).add(new PopoverBehavior(
+ Model.<String>of(),
+ Model.of(getString("intAttrNameInfo.help")
+ + "<div style=\"font-size: 10px;\">"
+ + "<code>groups[groupName].attribute</code>\n"
+ + "<code>anyObjects[anyObjectName].attribute</code>\n"
+ + "<code>memberships[groupName].attribute</code>\n"
+ + "</div>"),
+ new PopoverConfig().withHtml(true).withPlacement(TooltipConfig.Placement.bottom)) {
+
+ private static final long serialVersionUID = -7867802555691605021L;
+
+ @Override
+ protected String createRelAttribute() {
+ return "intAttrNameInfo";
+ }
+ }));
+
mappingContainer.add(Constants.getJEXLPopover(this, TooltipConfig.Placement.bottom));
passwordLabel = new Label("passwordLabel", new ResourceModel("password"));
@@ -216,77 +264,32 @@ public class ResourceMappingPanel extends Panel {
mapItem.setPurpose(MappingPurpose.BOTH);
}
- AnyTypeKind entity = null;
- if (provisionTO.getAnyType().equals(AnyTypeKind.GROUP.name())) {
- // support for clone
- entity = AnyTypeKind.GROUP;
- } else if (mapItem.getIntMappingType() != null) {
- entity = mapItem.getIntMappingType().getAnyTypeKind();
- }
-
- // it will happen just in case of clone to create a new mapping for group object
- if (mapItem.getIntMappingType() != null && mapItem.getIntMappingType().getAnyTypeKind() != entity) {
- mapItem.setIntMappingType(null);
- mapItem.setIntAttrName(null);
- }
-
- //--------------------------------
- // Entity
- // -------------------------------
- final AjaxDropDownChoicePanel<AnyTypeKind> entitiesPanel = new AjaxDropDownChoicePanel<>(
- "entities",
- new ResourceModel("entities", "entities").getObject(),
- new Model<>(entity));
-
- entitiesPanel.hideLabel();
- entitiesPanel.setChoices(provisionTO.getAnyType().equals(AnyTypeKind.GROUP.name())
- ? Collections.<AnyTypeKind>singletonList(AnyTypeKind.GROUP)
- : Arrays.asList(AnyTypeKind.values()));
-
- entitiesPanel.setStyleSheet(false, DEF_FIELD_STYLE);
- item.add(entitiesPanel);
- // -------------------------------
-
- //--------------------------------
- // Internal attribute type
- // -------------------------------
- final List<IntMappingType> attrTypes = new ArrayList<>(getAttributeTypes(entity));
- final AjaxDropDownChoicePanel<IntMappingType> intMappingTypes = new AjaxDropDownChoicePanel<>(
- "intMappingTypes",
- new ResourceModel("intMappingTypes", "intMappingTypes").getObject(),
- new PropertyModel<IntMappingType>(mapItem, "intMappingType"),
- false);
- intMappingTypes.setNullValid(true).setRequired(true).hideLabel();
- intMappingTypes.setChoices(attrTypes);
- item.add(intMappingTypes);
- // -------------------------------
-
//--------------------------------
// Internal attribute
// -------------------------------
- final AjaxTextFieldPanel intAttrNames = new AjaxTextFieldPanel(
- "intAttrNames",
- getString("intAttrNames"),
+ AjaxTextFieldPanel intAttrName = new AjaxTextFieldPanel(
+ "intAttrName",
+ getString("intAttrName"),
new PropertyModel<String>(mapItem, "intAttrName"),
false);
- intAttrNames.setChoices(Collections.<String>emptyList());
- intAttrNames.setRequired(true).hideLabel();
- item.add(intAttrNames);
+ intAttrName.setChoices(Collections.<String>emptyList());
+ intAttrName.setRequired(true).hideLabel();
+ item.add(intAttrName);
// -------------------------------
//--------------------------------
// External attribute
// -------------------------------
- final AjaxTextFieldPanel extAttrNames = new AjaxTextFieldPanel(
+ final AjaxTextFieldPanel extAttrName = new AjaxTextFieldPanel(
"extAttrName",
- new ResourceModel("extAttrNames", "extAttrNames").getObject(),
+ getString("extAttrName"),
new PropertyModel<String>(mapItem, "extAttrName"));
- extAttrNames.setChoices(getExtAttrNames(resourceTO.getConnector(), resourceTO.getConfOverride()));
+ extAttrName.setChoices(getExtAttrNames(resourceTO.getConnector(), resourceTO.getConfOverride()));
boolean required = !mapItem.isPassword();
- extAttrNames.setRequired(required).hideLabel();
- extAttrNames.setEnabled(required);
- item.add(extAttrNames);
+ extAttrName.setRequired(required).hideLabel();
+ extAttrName.setEnabled(required);
+ item.add(extAttrName);
// -------------------------------
//--------------------------------
@@ -339,7 +342,7 @@ public class ResourceMappingPanel extends Panel {
//--------------------------------
// Purpose
// -------------------------------
- final WebMarkupContainer purpose = new WebMarkupContainer("purpose");
+ WebMarkupContainer purpose = new WebMarkupContainer("purpose");
purpose.setOutputMarkupId(Boolean.TRUE);
final MappingPurposePanel panel = new MappingPurposePanel(
@@ -376,38 +379,7 @@ public class ResourceMappingPanel extends Panel {
item.add(actions.build("toRemove"));
// -------------------------------
- entitiesPanel.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- attrTypes.clear();
- attrTypes.addAll(getAttributeTypes(entitiesPanel.getModelObject()));
- intMappingTypes.setChoices(attrTypes);
-
- intAttrNames.setChoices(Collections.<String>emptyList());
-
- target.add(intMappingTypes);
- target.add(intAttrNames);
- }
- });
-
- intMappingTypes.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- setAttrNames(intMappingTypes.getModelObject(), intAttrNames);
- target.add(intAttrNames);
-
- setConnObjectKey(intMappingTypes.getModelObject(), connObjectKey, password);
- target.add(connObjectKey);
- }
- });
-
- intAttrNames.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ intAttrName.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@@ -439,28 +411,28 @@ public class ResourceMappingPanel extends Panel {
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- extAttrNames.setEnabled(!mapItem.isConnObjectKey() && !password.getModelObject());
- extAttrNames.setModelObject(password.getModelObject()
- ? ConnIdSpecialAttributeName.PASSWORD : extAttrNames.getModelObject());
- extAttrNames.setRequired(!password.getModelObject());
- target.add(extAttrNames);
+ extAttrName.setEnabled(!mapItem.isConnObjectKey() && !password.getModelObject());
+ extAttrName.setModelObject(password.getModelObject()
+ ? ConnIdSpecialAttributeName.PASSWORD : extAttrName.getModelObject());
+ extAttrName.setRequired(!password.getModelObject());
+ target.add(extAttrName);
- setConnObjectKey(intMappingTypes.getModelObject(), connObjectKey, password);
+ setConnObjectKey(connObjectKey, password);
target.add(connObjectKey);
}
});
- setAttrNames(mapItem.getIntMappingType(), intAttrNames);
- setConnObjectKey(mapItem.getIntMappingType(), connObjectKey, password);
+ setAttrNames(intAttrName);
+ setConnObjectKey(connObjectKey, password);
if (!AnyTypeKind.USER.name().equals(provisionTO.getAnyType())) {
password.setVisible(false);
// Changes required by clone ....
- extAttrNames.setEnabled(!mapItem.isConnObjectKey());
+ extAttrName.setEnabled(!mapItem.isConnObjectKey());
if (mapItem.isPassword()) {
// re-enable if and only if cloned objec mapping item was a password
- intAttrNames.setEnabled(true);
+ intAttrName.setEnabled(true);
}
mapItem.setPassword(false);
}
@@ -517,118 +489,55 @@ public class ResourceMappingPanel extends Panel {
* @param type attribute type.
* @param toBeUpdated drop down choice to be updated.
*/
- private void setAttrNames(final IntMappingType type, final AjaxTextFieldPanel toBeUpdated) {
+ private void setAttrNames(final AjaxTextFieldPanel toBeUpdated) {
toBeUpdated.setRequired(true);
toBeUpdated.setEnabled(true);
- if (type == null || type.getAnyTypeKind() == null) {
- toBeUpdated.setChoices(Collections.<String>emptyList());
- } else {
- AnyTypeTO anyTypeTO = anyTypeRestClient.read(provisionTO.getAnyType());
+ AnyTypeTO anyTypeTO = anyTypeRestClient.read(provisionTO.getAnyType());
- List<AnyTypeClassTO> anyTypeClassTOs = new ArrayList<>();
- anyTypeClassTOs.addAll(anyTypeClassRestClient.list(anyTypeTO.getClasses()));
- for (String auxClass : provisionTO.getAuxClasses()) {
- anyTypeClassTOs.add(anyTypeClassRestClient.read(auxClass));
- }
+ List<AnyTypeClassTO> anyTypeClassTOs = new ArrayList<>();
+ anyTypeClassTOs.addAll(anyTypeClassRestClient.list(anyTypeTO.getClasses()));
+ for (String auxClass : provisionTO.getAuxClasses()) {
+ anyTypeClassTOs.add(anyTypeClassRestClient.read(auxClass));
+ }
- List<String> choices;
- switch (type) {
- case UserPlainSchema:
- case GroupPlainSchema:
- case AnyObjectPlainSchema:
- final Set<String> plains = new HashSet<>();
- for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) {
- plains.addAll(anyTypeClassTO.getPlainSchemas());
- }
- choices = new ArrayList<>(plains);
- break;
-
- case UserDerivedSchema:
- case GroupDerivedSchema:
- case AnyObjectDerivedSchema:
- final Set<String> deriveds = new HashSet<>();
- for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) {
- deriveds.addAll(anyTypeClassTO.getDerSchemas());
- }
- choices = new ArrayList<>(deriveds);
- break;
-
- case UserVirtualSchema:
- case GroupVirtualSchema:
- case AnyObjectVirtualSchema:
- final Set<String> virtuals = new HashSet<>();
- for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) {
- virtuals.addAll(anyTypeClassTO.getVirSchemas());
- }
- choices = new ArrayList<>(virtuals);
- break;
-
- case UserKey:
- case Password:
- case Username:
- case GroupKey:
- case GroupName:
- case AnyObjectKey:
- case AnyObjectName:
- default:
- toBeUpdated.setRequired(false);
- toBeUpdated.setEnabled(false);
- choices = Collections.<String>emptyList();
- }
- Collections.sort(choices);
- toBeUpdated.setChoices(choices);
+ List<String> choices = new ArrayList<>();
+
+ switch (provisionTO.getAnyType()) {
+ case "USER":
+ choices.addAll(USER_FIELD_NAMES);
+ break;
+
+ case "GROUP":
+ choices.addAll(GROUP_FIELD_NAMES);
+ break;
+
+ default:
+ choices.addAll(ANY_OBJECT_FIELD_NAMES);
+ }
+
+ for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) {
+ choices.addAll(anyTypeClassTO.getPlainSchemas());
+ choices.addAll(anyTypeClassTO.getDerSchemas());
+ choices.addAll(anyTypeClassTO.getVirSchemas());
}
+
+ Collections.sort(choices);
+ toBeUpdated.setChoices(choices);
}
/**
* Enable/Disable connObjectKey checkbox.
*
- * @param type attribute type.
* @param connObjectKey connObjectKey checkbox.
* @param password password checkbox.
*/
- private void setConnObjectKey(
- final IntMappingType type, final AjaxCheckBoxPanel connObjectKey, final AjaxCheckBoxPanel password) {
-
- if (type != null && type.getAnyTypeKind() != null) {
- switch (type) {
- case UserVirtualSchema:
- case GroupVirtualSchema:
- case AnyObjectVirtualSchema:
- // Virtual connObjectKey is not permitted
- case Password:
- // connObjectKey cannot be derived from password.
- connObjectKey.setReadOnly(true);
- connObjectKey.setModelObject(false);
- break;
-
- default:
- if (password.getModelObject()) {
- connObjectKey.setReadOnly(true);
- connObjectKey.setModelObject(false);
- } else {
- connObjectKey.setReadOnly(false);
- }
- }
- }
- }
-
- /**
- * Get all attribute types from a selected attribute type.
- *
- * @param kind entity.
- * @return all attribute types.
- */
- private List<IntMappingType> getAttributeTypes(final AnyTypeKind kind) {
- final List<IntMappingType> res = new ArrayList<>();
-
- if (kind != null) {
- res.addAll(IntMappingType.getAttributeTypes(kind));
+ private void setConnObjectKey(final AjaxCheckBoxPanel connObjectKey, final AjaxCheckBoxPanel password) {
+ if (password.getModelObject()) {
+ connObjectKey.setReadOnly(true);
+ connObjectKey.setModelObject(false);
+ } else {
+ connObjectKey.setReadOnly(false);
}
-
- Collections.sort(res);
-
- return res;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication.properties b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication.properties
index 0214cf6..c8f42ad 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication.properties
@@ -73,3 +73,4 @@ OrderByLink.CSS.none=sorting
entitlements=Entitlements
audit=Audit
connectors.confirm.reload=This request is potentially dangerous for running operations, continue?
+intAttrNameInfo.help=Besides auto-completed attributes, you can also refer to groups, any objects or memberships (if applicable); for example:
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_it.properties
index abc0782..a17d3d8 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_it.properties
@@ -72,3 +72,4 @@ OrderByLink.CSS.none=sorting
entitlements=Entitlement
audit=Audit
connectors.confirm.reload=Questa richiesta \u00e8 potenzialmente dannosa per le operazioni in corso, proseguire?
+intAttrNameInfo.help=Oltre agli attributi auto-completati, \u00e8 possibile fare riferimento anche a gruppi, any object e membership (se applicabile); ad esempio:
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_pt_BR.properties
index 9214454..b0abf0d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_pt_BR.properties
@@ -72,3 +72,4 @@ OrderByLink.CSS.none=sorting
entitlements=Entitlement
audit=Audit
connectors.confirm.reload=Esta requis\u00e7\u00e3o \u00e9 potencialmente perigosa para opera\u00e7\u00f5es em execu\u00e7\u00e3o, prosseguir?
+intAttrNameInfo.help=Besides auto-completed attributes, you can also refer to groups, any objects or memberships (if applicable); for example:
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_ru.properties
index 0b76c8a..2b03a61 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/SyncopeConsoleApplication_ru.properties
@@ -123,3 +123,4 @@ OrderByLink.CSS.none=\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043
entitlements=\u041f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f
audit=Audit
connectors.confirm.reload=This request is potentially dangerous for running operations, continue?
+intAttrNameInfo.help=Besides auto-completed attributes, you can also refer to groups, any objects or memberships (if applicable); for example:
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
index 1ceee21..05ce8cf 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.html
@@ -27,9 +27,6 @@ under the License.
<span wicket:id="subject">[subject]</span>
</div>
<div class="form-group">
- <span wicket:id="recipientAttrType">[recipientAttrType]</span>
- </div>
- <div class="form-group">
<span wicket:id="recipientAttrName">[recipientAttrName]</span>
</div>
<div class="form-group">
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
index 4021981..72f0e85 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details.properties
@@ -18,6 +18,5 @@ subject=Subject
sender=Sender
template=Template
traceLevel=Trace level
-recipientAttrType=Recipients e-mail attribute type
-recipientAttrName=Recipients e-mail attribute schema
+recipientAttrName=Recipients e-mail attribute
isActive=Enabled
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
index 6b7a1ca..85ee48f 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_it.properties
@@ -18,6 +18,5 @@ subject=Oggetto
sender=Mittente
template=Modello
traceLevel=Livello di tracciamento
-recipientAttrType=Tipo attributo e-mail destinatari
-recipientAttrName=Schema attributo e-mail destinatari
+recipientAttrName=Attributo e-mail destinatari
isActive=Abilitata
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
index d2ffaf6..7838db0 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_pt_BR.properties
@@ -18,6 +18,5 @@ subject=Assunto
sender=Remetente
template=Template
traceLevel=N\u00edvel de Trace
-recipientAttrType=Tipo de atributo de destinat\u00e1rio de email.
-recipientAttrName=Destinat\u00e1rios de e-mail para atributos de esquema
+recipientAttrName=Destinat\u00e1rios de e-mail para atributos
isActive=Ativada
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_ru.properties
index 48aa402..75a3fd8 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Details_ru.properties
@@ -16,17 +16,15 @@
# under the License.
#
#
-# subject=\u0422\u0435\u043c\u0430
+# subject=\u00d0\u00a2\u00d0\u00b5\u00d0\u00bc\u00d0\u00b0
subject=\u0422\u0435\u043c\u0430
-# sender=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c
+# sender=\u00d0\u009e\u00d1\u0082\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008c
sender=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c
-# template=\u0428\u0430\u0431\u043b\u043e\u043d
+# template=\u00d0\u00a8\u00d0\u00b0\u00d0\u00b1\u00d0\u00bb\u00d0\u00be\u00d0\u00bd
template=\u0428\u0430\u0431\u043b\u043e\u043d
-# traceLevel=\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+# traceLevel=\u00d0\u00a3\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d0\u00bd\u00d1\u008c \u00d0\u00bb\u00d0\u00be\u00d0\u00b3\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
traceLevel=\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
-# recipientAttrType=\u0422\u0438\u043f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-recipientAttrType=\u0422\u0438\u043f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-# recipientAttrName=\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
+# recipientAttrName=\u00d0\u009d\u00d0\u00b0\u00d0\u00b8\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00b0\u00d1\u0082\u00d1\u0080\u00d0\u00b8\u00d0\u00b1\u00d1\u0083\u00d1\u0082\u00d0\u00b0 \u00d1\u0081 \u00d0\u00b0\u00d0\u00b4\u00d1\u0080\u00d0\u00b5\u00d1\u0081\u00d0\u00be\u00d0\u00bc \u00d1\u008d\u00d0\u00bb\u00d0\u00b5\u00d0\u00ba\u00d1\u0082\u00d1\u0080\u00d0\u00be\u00d0\u00bd\u00d0\u00bd\u00d0\u00be\u00d0\u00b9 \u00d0\u00bf\u00d0\u00be\u00d1\u0087\u00d1\u0082\u00d1\u008b \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0083\u00d1\u0087\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
recipientAttrName=\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-# isActive=\u0410\u043a\u0442\u0438\u0432\u043d\u043e
+# isActive=\u00d0\u0090\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d0\u00b2\u00d0\u00bd\u00d0\u00be
isActive=\u0410\u043a\u0442\u0438\u0432\u043d\u043e
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
index 690ae7e..879b380 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events.properties
@@ -25,8 +25,6 @@ about=About
events=Events
recipients=Recipients
selfAsRecipient=Include users matching About
-recipientAttrType=Recipients e-mail attribute type
-recipientAttrName=Recipients e-mail attribute schema
checkRecipients=Search recipients
checkAbout=All
userFilter=User filter
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
index db3bb59..ae80bb2 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_it.properties
@@ -25,8 +25,6 @@ about=Soggetti
events=Eventi
recipients=Destinatari
selfAsRecipient=Includi i soggetti
-recipientAttrType=Tipo attributo e-mail destinatari
-recipientAttrName=Schema attributo e-mail destinatari
checkRecipients=Cerca i destinatari
checkAbout=Tutto
userFilter=Filtro utenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
index 9b13d12..5c70e66 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_pt_BR.properties
@@ -25,8 +25,6 @@ about=Sobre
events=Eventos
recipients=Destinat\u00e1rios
selfAsRecipient=Incluir usu\u00e1rios relacionados Sobre
-recipientAttrType=Tipo de atributo de destinat\u00e1rio de email.
-recipientAttrName=Destinat\u00e1rios de e-mail para atributos de esquema
checkRecipients=Buscar Destinat\u00e1rios
checkAbout=Todos
userFilter=Filtro usu\u00e1rio
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_ru.properties
index 6b08f78..2d461d5 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/notifications/NotificationWizardBuilder$Events_ru.properties
@@ -15,55 +15,51 @@
# specific language governing permissions and limitations
# under the License.
#
-# title=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
+# title=\u00d0\u0098\u00d0\u00b7\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0083\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
title=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
-# submit=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
+# submit=\u00d0\u00a1\u00d0\u00be\u00d1\u0085\u00d1\u0080\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u0082\u00d1\u008c
submit=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
-# subject=\u0422\u0435\u043c\u0430
+# subject=\u00d0\u00a2\u00d0\u00b5\u00d0\u00bc\u00d0\u00b0
subject=\u0422\u0435\u043c\u0430
-# sender=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c
+# sender=\u00d0\u009e\u00d1\u0082\u00d0\u00bf\u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008c
sender=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c
-# template=\u0428\u0430\u0431\u043b\u043e\u043d
+# template=\u00d0\u00a8\u00d0\u00b0\u00d0\u00b1\u00d0\u00bb\u00d0\u00be\u00d0\u00bd
template=\u0428\u0430\u0431\u043b\u043e\u043d
-# traceLevel=\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+# traceLevel=\u00d0\u00a3\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d0\u00bd\u00d1\u008c \u00d0\u00bb\u00d0\u00be\u00d0\u00b3\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f
traceLevel=\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
-# notification=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
+# notification=\u00d0\u00a3\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
notification=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
-# about=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e
+# about=\u00d0\u00a3\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00be
about=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e
-# events=\u0421\u043e\u0431\u044b\u0442\u0438\u044f
+# events=\u00d0\u00a1\u00d0\u00be\u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d0\u00b8\u00d1\u008f
events=\u0421\u043e\u0431\u044b\u0442\u0438\u044f
-# recipients=\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438
+# recipients=\u00d0\u009f\u00d0\u00be\u00d0\u00bb\u00d1\u0083\u00d1\u0087\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b8
recipients=\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438
-# selfAsRecipient=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
+# selfAsRecipient=\u00d0\u0092\u00d0\u00ba\u00d0\u00bb\u00d1\u008e\u00d1\u0087\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d0\u00b2 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0083\u00d1\u0087\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b8 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9, \u00d0\u00be \u00d0\u00ba\u00d0\u00be\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d1\u008b\u00d1\u0085 \u00d1\u0080\u00d0\u00b0\u00d1\u0081\u00d1\u0081\u00d1\u008b\u00d0\u00bb\u00d0\u00b0\u00d0\u00b5\u00d1\u0082\u00d1\u0081\u00d1\u008f \u00d1\u0083\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5
selfAsRecipient=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435
-# recipientAttrType=\u0422\u0438\u043f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-recipientAttrType=\u0422\u0438\u043f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-# recipientAttrName=\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-recipientAttrName=\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-# checkRecipients=\u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
+# checkRecipients=\u00d0\u009f\u00d0\u00be\u00d0\u00b8\u00d1\u0081\u00d0\u00ba \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0083\u00d1\u0087\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
checkRecipients=\u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439
-# checkAbout=\u041e\u0431\u043e \u0432\u0441\u0451\u043c
+# checkAbout=\u00d0\u009e\u00d0\u00b1\u00d0\u00be \u00d0\u00b2\u00d1\u0081\u00d1\u0091\u00d0\u00bc
checkAbout=\u041e\u0431\u043e \u0432\u0441\u0451\u043c
-# userFilter=\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
+# userFilter=\u00d0\u00a4\u00d0\u00b8\u00d0\u00bb\u00d1\u008c\u00d1\u0082\u00d1\u0080 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
userFilter=\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
-# userFilterWarning=\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
+# userFilterWarning=\u00d0\u009d\u00d0\u00b5 \u00d0\u00b8\u00d1\u0081\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d1\u0083\u00d0\u00b9\u00d1\u0082\u00d0\u00b5 \u00d1\u008d\u00d1\u0082\u00d0\u00be\u00d1\u0082 \u00d1\u0084\u00d0\u00b8\u00d0\u00bb\u00d1\u008c\u00d1\u0082\u00d1\u0080, \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00be\u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bd\u00d0\u00b5 \u00d0\u00bf\u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00bd\u00d0\u00b0\u00d0\u00b7\u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
userFilterWarning=\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
-# userNotifications=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
+# userNotifications=\u00d0\u00a3\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
userNotifications=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
-# userNotificationsWarning=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0436\u043e\u043a, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
+# userNotificationsWarning=\u00d0\u009d\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b8\u00d0\u00b2\u00d0\u00b0\u00d0\u00b9\u00d1\u0082\u00d0\u00b5 \u00d1\u008d\u00d1\u0082\u00d0\u00be\u00d1\u0082 \u00d1\u0084\u00d0\u00bb\u00d0\u00b0\u00d0\u00b6\u00d0\u00be\u00d0\u00ba, \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00be\u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bd\u00d0\u00b5 \u00d0\u00bf\u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00bd\u00d0\u00b0\u00d0\u00b7\u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
userNotificationsWarning=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
-# roleFilter=\u0424\u0438\u043b\u044c\u0442\u0440 \u0440\u043e\u043b\u0435\u0439
+# roleFilter=\u00d0\u00a4\u00d0\u00b8\u00d0\u00bb\u00d1\u008c\u00d1\u0082\u00d1\u0080 \u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
roleFilter=\u0424\u0438\u043b\u044c\u0442\u0440 \u0440\u043e\u043b\u0435\u0439
-# roleFilterWarning=\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0440\u043e\u043b\u0435\u0439
+# roleFilterWarning=\u00d0\u009d\u00d0\u00b5 \u00d0\u00b8\u00d1\u0081\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d1\u0083\u00d0\u00b9\u00d1\u0082\u00d0\u00b5 \u00d1\u008d\u00d1\u0082\u00d0\u00be\u00d1\u0082 \u00d1\u0084\u00d0\u00b8\u00d0\u00bb\u00d1\u008c\u00d1\u0082\u00d1\u0080, \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00be\u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bd\u00d0\u00b5 \u00d0\u00bf\u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00bd\u00d0\u00b0\u00d0\u00b7\u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
roleFilterWarning=\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0440\u043e\u043b\u0435\u0439
-# roleNotifications=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u043e\u043b\u0435\u0439
+# roleNotifications=\u00d0\u00a3\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00be\u00d0\u00bc\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00bd\u00d0\u00b0 \u00d0\u00be\u00d1\u0081\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00b5 \u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
roleNotifications=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u043e\u043b\u0435\u0439
-# roleNotificationsWarning=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0436\u043e\u043a, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0440\u043e\u043b\u0435\u0439
+# roleNotificationsWarning=\u00d0\u009d\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00b0\u00d0\u00b2\u00d0\u00bb\u00d0\u00b8\u00d0\u00b2\u00d0\u00b0\u00d0\u00b9\u00d1\u0082\u00d0\u00b5 \u00d1\u008d\u00d1\u0082\u00d0\u00be\u00d1\u0082 \u00d1\u0084\u00d0\u00bb\u00d0\u00b0\u00d0\u00b6\u00d0\u00be\u00d0\u00ba, \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00be\u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bd\u00d0\u00b5 \u00d0\u00bf\u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00bd\u00d0\u00b0\u00d0\u00b7\u00d0\u00bd\u00d0\u00b0\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d1\u0080\u00d0\u00be\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9
roleNotificationsWarning=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433, \u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0440\u043e\u043b\u0435\u0439
-# isActive=\u0410\u043a\u0442\u0438\u0432\u043d\u043e
+# isActive=\u00d0\u0090\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d0\u00b2\u00d0\u00bd\u00d0\u00be
isActive=\u0410\u043a\u0442\u0438\u0432\u043d\u043e
-# checkUserAbout=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438
+# checkUserAbout=\u00d0\u009f\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b8
checkUserAbout=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438
-# checkRoleAbout=\u0420\u043e\u043b\u0438
+# checkRoleAbout=\u00d0\u00a0\u00d0\u00be\u00d0\u00bb\u00d0\u00b8
checkRoleAbout=\u0420\u043e\u043b\u0438
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications.properties
index 3456c87..c8b5711 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications.properties
@@ -24,8 +24,6 @@ notification=Notification
about=About
events=Events
selfAsRecipient=Include users matching About
-recipientAttrType=Recipients e-mail attribute type
-recipientAttrName=Recipients e-mail attribute schema
checkRecipients=Search recipients
checkAbout=All
userFilter=User filter
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_it.properties
index 8b8a257..94113c6 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_it.properties
@@ -24,8 +24,6 @@ notification=Notifica
about=Soggetti
events=Eventi
selfAsRecipient=Includi i soggetti
-recipientAttrType=Tipo attributo e-mail destinatari
-recipientAttrName=Schema attributo e-mail destinatari
checkRecipients=Cerca i destinatari
checkAbout=Tutto
userFilter=Filtro utenti
http://git-wip-us.apache.org/repos/asf/syncope/blob/8e162494/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_pt_BR.properties
index 97483b8..8ac31ef 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Notifications_pt_BR.properties
@@ -24,8 +24,6 @@ notification=Notifica\u00e7\u00e3o
about=Sobre
events=Eventos
selfAsRecipient=Incluir usu\u00e1rios relacionados Sobre
-recipientAttrType=Tipo de atributo de destinat\u00e1rio de email.
-recipientAttrName=Destinat\u00e1rios de e-mail para atributos de esquema
checkRecipients=Buscar Destinat\u00e1rios
checkAbout=Todos
userFilter=Filtro usu\u00e1rio