You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2012/03/09 14:55:57 UTC
svn commit: r1298826 - in
/incubator/syncope/trunk/core/src/main/java/org/syncope/core: propagation/
rest/controller/ rest/data/ util/
Author: fmartelli
Date: Fri Mar 9 13:55:56 2012
New Revision: 1298826
URL: http://svn.apache.org/viewvc?rev=1298826&view=rev
Log:
SYNCOPE-33 #comment virtual attributes were not valued from TO
Modified:
incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java
incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/UserController.java
incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/AbstractAttributableDataBinder.java
incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/UserDataBinder.java
incubator/syncope/trunk/core/src/main/java/org/syncope/core/util/ConnObjectUtil.java
Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java?rev=1298826&r1=1298825&r2=1298826&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/propagation/PropagationManager.java Fri Mar 9 13:55:56 2012
@@ -160,7 +160,8 @@ public class PropagationManager {
*/
public List<PropagationTask> getCreateTaskIds(
final WorkflowResult<Map.Entry<Long, Boolean>> wfResult,
- final String password, final List<AttributeTO> vAttrs)
+ final String password,
+ final List<AttributeTO> vAttrs)
throws NotFoundException {
return getCreateTaskIds(wfResult, password, vAttrs, null);
Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/UserController.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/UserController.java?rev=1298826&r1=1298825&r2=1298826&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/UserController.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/controller/UserController.java Fri Mar 9 13:55:56 2012
@@ -153,9 +153,11 @@ public class UserController {
value = "/list")
@Transactional(readOnly = true, rollbackFor = {Throwable.class})
public List<UserTO> list() {
- List<SyncopeUser> users = userDAO.findAll(EntitlementUtil.getRoleIds(
- EntitlementUtil.getOwnedEntitlementNames()));
+ List<SyncopeUser> users =
+ userDAO.findAll(EntitlementUtil.getRoleIds(EntitlementUtil.getOwnedEntitlementNames()));
+
List<UserTO> userTOs = new ArrayList<UserTO>(users.size());
+
for (SyncopeUser user : users) {
userTOs.add(userDataBinder.getUserTO(user));
}
Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/AbstractAttributableDataBinder.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/AbstractAttributableDataBinder.java?rev=1298826&r1=1298825&r2=1298826&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/AbstractAttributableDataBinder.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/AbstractAttributableDataBinder.java Fri Mar 9 13:55:56 2012
@@ -557,8 +557,7 @@ public abstract class AbstractAttributab
// 5. derived attributes to be removed
for (String derivedAttributeToBeRemoved : attributableMod.getDerivedAttributesToBeRemoved()) {
- derivedSchema = getDerivedSchema(derivedAttributeToBeRemoved,
- attributableUtil.derivedSchemaClass());
+ derivedSchema = getDerivedSchema(derivedAttributeToBeRemoved, attributableUtil.derivedSchemaClass());
if (derivedSchema != null) {
derivedAttribute = attributable.getDerivedAttribute(
@@ -643,22 +642,37 @@ public abstract class AbstractAttributab
return propByRes;
}
+ /**
+ * Add virtual attributes and specify values to be propagated.
+ *
+ * @param attributable attributable.
+ * @param vAttrs virtual attributes to be added.
+ * @param attributableUtil attributable util.
+ */
public void fillVirtual(
final AbstractAttributable attributable,
final List<AttributeTO> vAttrs,
final AttributableUtil attributableUtil) {
for (AttributeTO attributeTO : vAttrs) {
- AbstractVirSchema virtualSchema =
- getVirtualSchema(attributeTO.getSchema(), attributableUtil.virtualSchemaClass());
+ AbstractVirAttr virtualAttribute = attributable.getVirtualAttribute(attributeTO.getSchema());
- if (virtualSchema != null) {
- AbstractVirAttr virtualAttribute = attributableUtil.newVirtualAttribute();
- virtualAttribute.setVirtualSchema(virtualSchema);
- virtualAttribute.setOwner(attributable);
+ if (virtualAttribute == null) {
+ AbstractVirSchema virtualSchema =
+ getVirtualSchema(attributeTO.getSchema(), attributableUtil.virtualSchemaClass());
+
+ if (virtualSchema != null) {
+ virtualAttribute = attributableUtil.newVirtualAttribute();
+ virtualAttribute.setVirtualSchema(virtualSchema);
+ virtualAttribute.setOwner(attributable);
+ attributable.addVirtualAttribute(virtualAttribute);
+ virtualAttribute.setValues(attributeTO.getValues());
+ }
+
+ } else {
virtualAttribute.setValues(attributeTO.getValues());
- attributable.addVirtualAttribute(virtualAttribute);
}
+
}
}
@@ -708,8 +722,7 @@ public abstract class AbstractAttributab
compositeErrorException.addException(invalidValues);
}
- SyncopeClientException requiredValuesMissing =
- checkMandatory(attributableUtil, attributable);
+ SyncopeClientException requiredValuesMissing = checkMandatory(attributableUtil, attributable);
if (!requiredValuesMissing.isEmpty()) {
compositeErrorException.addException(requiredValuesMissing);
}
@@ -719,8 +732,7 @@ public abstract class AbstractAttributab
AbstractDerAttr derivedAttribute;
for (AttributeTO attributeTO : attributableTO.getDerivedAttributes()) {
- derivedSchema = getDerivedSchema(attributeTO.getSchema(),
- attributableUtil.derivedSchemaClass());
+ derivedSchema = getDerivedSchema(attributeTO.getSchema(), attributableUtil.derivedSchemaClass());
if (derivedSchema != null) {
derivedAttribute = attributableUtil.newDerivedAttribute();
@@ -730,11 +742,23 @@ public abstract class AbstractAttributab
}
}
- // 3. virtual attributes: for users this is delegated to PropagationManager
- if (AttributableType.USER != attributableUtil.getType()) {
- fillVirtual(attributable, attributableTO.getVirtualAttributes(), attributableUtil);
+ // 3. user virtual attributes will be valued by the propagation manager only (if needed).
+ if (AttributableType.USER == attributableUtil.getType()) {
+ for (AttributeTO vattrTO : attributableTO.getVirtualAttributes()) {
+ AbstractVirSchema uVirSchema =
+ getVirtualSchema(vattrTO.getSchema(), attributableUtil.virtualSchemaClass());
+
+ if (uVirSchema != null) {
+ AbstractVirAttr vattr = attributableUtil.newVirtualAttribute();
+ vattr.setVirtualSchema(uVirSchema);
+ vattr.setOwner(attributable);
+ attributable.addVirtualAttribute(vattr);
+ }
+ }
}
+ fillVirtual(attributable, attributableTO.getVirtualAttributes(), attributableUtil);
+
// 4. resources
ExternalResource resource;
for (String resourceName : attributableTO.getResources()) {
Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/UserDataBinder.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/UserDataBinder.java?rev=1298826&r1=1298825&r2=1298826&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/UserDataBinder.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/rest/data/UserDataBinder.java Fri Mar 9 13:55:56 2012
@@ -162,8 +162,7 @@ public class UserDataBinder extends Abst
Membership membership = null;
if (user.getId() != null) {
membership = user.getMembership(role.getId()) == null
- ? membershipDAO.find(user, role)
- : user.getMembership(role.getId());
+ ? membershipDAO.find(user, role) : user.getMembership(role.getId());
}
if (membership == null) {
membership = new Membership();
Modified: incubator/syncope/trunk/core/src/main/java/org/syncope/core/util/ConnObjectUtil.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/core/src/main/java/org/syncope/core/util/ConnObjectUtil.java?rev=1298826&r1=1298825&r2=1298826&view=diff
==============================================================================
--- incubator/syncope/trunk/core/src/main/java/org/syncope/core/util/ConnObjectUtil.java (original)
+++ incubator/syncope/trunk/core/src/main/java/org/syncope/core/util/ConnObjectUtil.java Fri Mar 9 13:55:56 2012
@@ -99,7 +99,8 @@ public class ConnObjectUtil {
attributeTO = new AttributeTO();
attributeTO.setSchema(mapping.getIntAttrName());
- for (Object value : attribute == null ? Collections.EMPTY_LIST : attribute.getValue()) {
+ for (Object value : attribute == null || attribute.getValue() == null
+ ? Collections.EMPTY_LIST : attribute.getValue()) {
attributeTO.addValue(value.toString());
}
@@ -115,6 +116,12 @@ public class ConnObjectUtil {
case UserVirtualSchema:
attributeTO = new AttributeTO();
attributeTO.setSchema(mapping.getIntAttrName());
+
+ for (Object value : attribute == null || attribute.getValue() == null
+ ? Collections.EMPTY_LIST : attribute.getValue()) {
+ attributeTO.addValue(value.toString());
+ }
+
userTO.addVirtualAttribute(attributeTO);
break;