You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2020/02/26 11:42:46 UTC

[syncope] 03/03: [SYNCOPE-1544] Also removed readonly attributes from showing in the list of plain attributes for linkedaccounts

This is an automated email from the ASF dual-hosted git repository.

skylark17 pushed a commit to branch SYNCOPE-1537
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 7aefff395d612da6831bfbf1e66d48b432800d64
Author: skylark17 <sk...@apache.org>
AuthorDate: Wed Feb 26 12:33:26 2020 +0100

    [SYNCOPE-1544] Also removed readonly attributes from showing in the list of plain attributes for linkedaccounts
---
 .../wizards/any/LinkedAccountCredentialsPanel.java | 15 +++++++-
 .../wizards/any/LinkedAccountPlainAttrsPanel.java  | 43 ++++++++++++++--------
 2 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
index 089968b..b8d0d89 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
@@ -42,6 +42,10 @@ public class LinkedAccountCredentialsPanel extends WizardStep {
 
     private static final long serialVersionUID = 5116461957402341603L;
 
+    private String usernameValue;
+
+    private String passwordValue;
+
     private final LinkedAccountTO linkedAccountTO;
 
     public LinkedAccountCredentialsPanel(final EntityWrapper<LinkedAccountTO> modelObject) {
@@ -68,7 +72,6 @@ public class LinkedAccountCredentialsPanel extends WizardStep {
                 new PropertyModel<>(linkedAccountTO, "password"),
                 false);
         passwordField.setMarkupId("password");
-        passwordField.setPlaceholder("password");
         passwordField.setRequired(true);
         FieldPanel.class.cast(passwordField).setReadOnly(StringUtils.isBlank(linkedAccountTO.getPassword()));
         LinkedAccountPlainAttrProperty passwordProperty = new LinkedAccountPlainAttrProperty();
@@ -102,10 +105,18 @@ public class LinkedAccountCredentialsPanel extends WizardStep {
                     @Override
                     protected void onUpdate(final AjaxRequestTarget target) {
                         FieldPanel.class.cast(panel).setReadOnly(!model.getObject());
-                        if (!model.getObject()) {
+                        if (model.getObject()) {
+                            if (property.getSchema().equals("password")) {
+                                linkedAccountTO.setPassword(passwordValue);
+                            } else if (property.getSchema().equals("username")) {
+                                linkedAccountTO.setUsername(usernameValue);
+                            }
+                        } else {
                             if (property.getSchema().equals("password")) {
+                                passwordValue = linkedAccountTO.getPassword();
                                 linkedAccountTO.setPassword(null);
                             } else if (property.getSchema().equals("username")) {
+                                usernameValue = linkedAccountTO.getUsername();
                                 linkedAccountTO.setUsername(null);
                             }
                         }
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
index fec7bfa..61c45e6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
@@ -81,9 +81,12 @@ public class LinkedAccountPlainAttrsPanel extends AbstractAttrsWizardStep<PlainS
                 new AnyTypeRestClient().read(userTO.getType()).getClasses(),
                 AnyLayoutUtils.fetch(Arrays.asList(userTO.getType())).getUser().getWhichPlainAttrs(),
                 modelObject);
+        System.out.println("CCCCCCCCCCC");
 
         this.linkedAccountTO = modelObject.getInnerObject();
-        this.fixedAttrs.addAll(this.linkedAccountTO.getPlainAttrs());
+        this.fixedAttrs.addAll(this.linkedAccountTO.getPlainAttrs().stream().
+                filter(attrTO -> checkIsReadonlyAttr(attrTO.getSchema())).
+                collect(Collectors.toList()));
         this.userTO = userTO;
 
         add(new Accordion("plainSchemas", Collections.<ITab>singletonList(new AbstractTab(
@@ -166,11 +169,12 @@ public class LinkedAccountPlainAttrsPanel extends AbstractAttrsWizardStep<PlainS
     }
 
     private void updateAccountPlainSchemas(final LinkedAccountPlainAttrProperty property, final Boolean modelObject) {
-        Set<AttrTO> withoutCurrentSChema = new HashSet<>(linkedAccountTO.getPlainAttrs().stream().
-                filter(attr -> !attr.getSchema().equals(property.getSchema())).
+        Set<AttrTO> withoutCurrentSchema = new HashSet<>(linkedAccountTO.getPlainAttrs().stream().
+                filter(attrTO -> !attrTO.getSchema().equals(property.getSchema())
+                && checkIsReadonlyAttr(attrTO.getSchema())).
                 collect(Collectors.toSet()));
         linkedAccountTO.getPlainAttrs().clear();
-        linkedAccountTO.getPlainAttrs().addAll(withoutCurrentSChema);
+        linkedAccountTO.getPlainAttrs().addAll(withoutCurrentSchema);
         if (modelObject) {
             linkedAccountTO.getPlainAttrs().add(
                     fixedAttrs.stream().filter(attrTO -> attrTO.getSchema().equals(property.getSchema())).findFirst().
@@ -187,19 +191,24 @@ public class LinkedAccountPlainAttrsPanel extends AbstractAttrsWizardStep<PlainS
     @Override
     protected void setAttrs() {
         List<AttrTO> attrs = new ArrayList<>();
-        setFixedAttr(schemas.values());
+        List<PlainSchemaTO> notReadonlyValues = schemas.values().stream().
+                filter(schema -> checkIsReadonlyAttr(schema.getKey())).
+                collect(Collectors.toList());
+        setFixedAttr(notReadonlyValues);
         Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(fixedAttrs);
 
-        attrs.addAll(schemas.values().stream().map(schema -> {
-            AttrTO attrTO = new AttrTO();
-            attrTO.setSchema(schema.getKey());
-            if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
-                attrTO.getValues().add("");
-            } else {
-                attrTO = attrMap.get(schema.getKey());
-            }
-            return attrTO;
-        }).collect(Collectors.toList()));
+        attrs.addAll(notReadonlyValues.stream().
+                map(schema -> {
+                    AttrTO attrTO = new AttrTO();
+                    attrTO.setSchema(schema.getKey());
+                    if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
+                        attrTO.getValues().add("");
+                    } else {
+                        attrTO = attrMap.get(schema.getKey());
+                    }
+                    return attrTO;
+                }).
+                collect(Collectors.toList()));
 
         fixedAttrs.clear();
         fixedAttrs.addAll(attrs);
@@ -220,6 +229,10 @@ public class LinkedAccountPlainAttrsPanel extends AbstractAttrsWizardStep<PlainS
         });
     }
 
+    private boolean checkIsReadonlyAttr(final String schema) {
+        return schemas.isEmpty() ? true : !schemas.get(schema).isReadonly();
+    }
+
     private class PlainSchemasOwn extends PlainSchemas<List<AttrTO>> {
 
         private static final long serialVersionUID = -4730563859116024676L;