http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/persistence-jpa/src/test/resources/content.xml ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/test/resources/content.xml b/core/persistence-jpa/src/test/resources/content.xml index 3b74dbc..6c6e527 100644 --- a/core/persistence-jpa/src/test/resources/content.xml +++ b/core/persistence-jpa/src/test/resources/content.xml @@ -81,9 +81,9 @@ under the License. mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> <CPlainSchema name="self.user.layout" type="String" mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> - <CPlainSchema name="admin.role.layout" type="String" + <CPlainSchema name="admin.group.layout" type="String" mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> - <CPlainSchema name="self.role.layout" type="String" + <CPlainSchema name="self.group.layout" type="String" mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> <CPlainSchema name="admin.membership.layout" type="String" mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> @@ -92,11 +92,11 @@ under the License. <!-- sample policies --> <Policy DTYPE="SyncPolicy" id="1" description="global sync policy" type="GLOBAL_SYNC" - specification='{"userJavaRule":null,"roleJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"roleAltSearchSchemas":[]}'/> + specification='{"userJavaRule":null,"groupJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"groupAltSearchSchemas":[]}'/> <Policy DTYPE="PasswordPolicy" id="2" description="global password policy" type="GLOBAL_PASSWORD" specification='{"historyLength":1,"maxLength":0,"minLength":8,"nonAlphanumericRequired":false,"alphanumericRequired":false,"digitRequired":false,"lowercaseRequired":false,"uppercaseRequired":false,"mustStartWithDigit":false,"mustntStartWithDigit":false,"mustEndWithDigit":false,"mustntEndWithDigit":false,"mustStartWithNonAlpha":false,"mustStartWithAlpha":false,"mustntStartWithNonAlpha":false,"mustntStartWithAlpha":false,"mustEndWithNonAlpha":false,"mustEndWithAlpha":false,"mustntEndWithNonAlpha":false,"mustntEndWithAlpha":false,"wordsNotPermitted":[],"schemasNotPermitted":[],"prefixesNotPermitted":["notpermitted1","notpermitted2"],"suffixesNotPermitted":[],"allowNullPassword":true}'/> <Policy DTYPE="SyncPolicy" id="3" description="sync policy 2" type="SYNC" - specification='{"userJavaRule":null,"roleJavaRule":null,"conflictResolutionAction":"ALL","userAltSearchSchemas":["username","firstname"],"roleAltSearchSchemas":[]}'/> + specification='{"userJavaRule":null,"groupJavaRule":null,"conflictResolutionAction":"ALL","userAltSearchSchemas":["username","firstname"],"groupAltSearchSchemas":[]}'/> <Policy DTYPE="PasswordPolicy" id="4" description="sample password policy" type="PASSWORD" specification='{"historyLength":0,"maxLength":0,"minLength":10,"nonAlphanumericRequired":false,"alphanumericRequired":false,"digitRequired":true,"lowercaseRequired":false,"uppercaseRequired":false,"mustStartWithDigit":false,"mustntStartWithDigit":false,"mustEndWithDigit":false,"mustntEndWithDigit":false,"mustStartWithNonAlpha":false,"mustStartWithAlpha":false,"mustntStartWithNonAlpha":false,"mustntStartWithAlpha":false,"mustEndWithNonAlpha":false,"mustEndWithAlpha":false,"mustntEndWithNonAlpha":false,"mustntEndWithAlpha":false,"wordsNotPermitted":[],"schemasNotPermitted":[],"prefixesNotPermitted":["notpermitted1","notpermitted2"],"suffixesNotPermitted":[], "allowNullPassword":false}'/> <Policy DTYPE="AccountPolicy" id="5" description="global account policy" type="GLOBAL_ACCOUNT" @@ -104,11 +104,11 @@ under the License. <Policy DTYPE="AccountPolicy" id="6" description="sample account policy" type="ACCOUNT" specification='{"maxLength":0,"minLength":4,"pattern":null,"allUpperCase":false,"allLowerCase":false,"propagateSuspension":false,"permittedLoginRetries":3,"wordsNotPermitted":[],"schemasNotPermitted":[],"prefixesNotPermitted":["notpermitted1","notpermitted2"],"suffixesNotPermitted":[]}'/> <Policy DTYPE="SyncPolicy" id="7" description="sync policy 1" type="SYNC" - specification='{"userJavaRule":null,"roleJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"roleAltSearchSchemas":[]}'/> + specification='{"userJavaRule":null,"groupJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"groupAltSearchSchemas":[]}'/> <Policy DTYPE="PasswordPolicy" id="8" description="sample password policy" type="PASSWORD" specification='{"historyLength":0,"maxLength":0,"minLength":10,"nonAlphanumericRequired":true,"alphanumericRequired":false,"digitRequired":true,"lowercaseRequired":true,"uppercaseRequired":true,"mustStartWithDigit":true,"mustntStartWithDigit":false,"mustEndWithDigit":true,"mustntEndWithDigit":false,"mustStartWithNonAlpha":false,"mustStartWithAlpha":false,"mustntStartWithNonAlpha":false,"mustntStartWithAlpha":false,"mustEndWithNonAlpha":false,"mustEndWithAlpha":false,"mustntEndWithNonAlpha":false,"mustntEndWithAlpha":false,"wordsNotPermitted":[],"schemasNotPermitted":[],"prefixesNotPermitted":["notpermitted1","notpermitted2"],"suffixesNotPermitted":[],"allowNullPassword":false}'/> <Policy DTYPE="SyncPolicy" id="9" description="sync policy for java rule" type="SYNC" - specification='{"userJavaRule":null,"roleJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"roleAltSearchSchemas":[]}'/> + specification='{"userJavaRule":null,"groupJavaRule":null,"conflictResolutionAction":"IGNORE","userAltSearchSchemas":[],"groupAltSearchSchemas":[]}'/> <SyncopeUser id="1" workflowId="4" status="active" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1" username="rossini" creator="admin" lastModifier="admin" @@ -126,22 +126,22 @@ under the License. username="puccini" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/> - <SyncopeRole id="1" name="root" + <SyncopeGroup id="1" name="root" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="2" name="child" parent_id="1" + <SyncopeGroup id="2" name="child" parent_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="3" name="citizen" + <SyncopeGroup id="3" name="citizen" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="4" name="employee" parent_id="3" + <SyncopeGroup id="4" name="employee" parent_id="3" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="5" name="secretary" parent_id="4" + <SyncopeGroup id="5" name="secretary" parent_id="4" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="6" + <SyncopeGroup id="6" name="director" parent_id="4" userOwner_id="5" inheritPlainAttrs="1" inheritDerAttrs="1" inheritVirAttrs="1" inheritPasswordPolicy="0" inheritAccountPolicy="0" @@ -149,37 +149,37 @@ under the License. accountPolicy_id="6" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="7" + <SyncopeGroup id="7" name="managingDirector" parent_id="6" inheritPlainAttrs="1" inheritDerAttrs="1" inheritVirAttrs="1" inheritPasswordPolicy="1" inheritAccountPolicy="1" inheritOwner="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="8" + <SyncopeGroup id="8" name="otherchild" parent_id="1" inheritVirAttrs="1" passwordPolicy_id="4" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="9" name="roleForWorkflowApproval" parent_id="1" + <SyncopeGroup id="9" name="groupForWorkflowApproval" parent_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="10" + <SyncopeGroup id="10" name="managingConsultant" parent_id="6" inheritPlainAttrs="1" inheritDerAttrs="1" inheritVirAttrs="1" inheritPasswordPolicy="1" inheritAccountPolicy="1" inheritOwner="0" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="11" name="roleForWorkflowOptIn" parent_id="1" + <SyncopeGroup id="11" name="groupForWorkflowOptIn" parent_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="12" name="aRoleForPropagation" parent_id="1" + <SyncopeGroup id="12" name="aGroupForPropagation" parent_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="13" name="bRoleForPropagation" parent_id="1" + <SyncopeGroup id="13" name="bGroupForPropagation" parent_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <SyncopeRole id="14" + <SyncopeGroup id="14" name="artDirector" parent_id="4" inheritPlainAttrs="1" inheritDerAttrs="1" inheritVirAttrs="1" inheritPasswordPolicy="0" inheritAccountPolicy="0" @@ -188,25 +188,25 @@ under the License. creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="1" user_id="1" role_id="1" + <Membership id="1" user_id="1" group_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="2" user_id="2" role_id="1" + <Membership id="2" user_id="2" group_id="1" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="3" user_id="2" role_id="2" + <Membership id="3" user_id="2" group_id="2" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="4" user_id="4" role_id="7" + <Membership id="4" user_id="4" group_id="7" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="5" user_id="1" role_id="8" + <Membership id="5" user_id="1" group_id="8" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="6" user_id="2" role_id="3" + <Membership id="6" user_id="2" group_id="3" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> - <Membership id="7" user_id="5" role_id="14" + <Membership id="7" user_id="5" group_id="14" creator="admin" lastModifier="admin" creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00"/> @@ -254,25 +254,25 @@ under the License. <UVirSchema name="virtualdata"/> - <RPlainSchema name="icon" type="String" + <GPlainSchema name="icon" type="String" mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/> - <RPlainSchema name="show" type="Boolean" + <GPlainSchema name="show" type="Boolean" mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/> - <RPlainSchema name="rderived_sx" type="String" + <GPlainSchema name="rderived_sx" type="String" mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/> - <RPlainSchema name="rderived_dx" type="String" + <GPlainSchema name="rderived_dx" type="String" mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/> - <RPlainSchema name="title" type="String" + <GPlainSchema name="title" type="String" mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"/> - <RDerSchema name="rderiveddata" expression="rderived_sx + '-' + rderived_dx"/> - <RDerSchema name="displayProperty" expression="icon + ': ' + show"/> - <RDerSchema name="rderToBePropagated" expression="rderived_sx + '-' + rderived_dx"/> + <GDerSchema name="rderiveddata" expression="rderived_sx + '-' + rderived_dx"/> + <GDerSchema name="displayProperty" expression="icon + ': ' + show"/> + <GDerSchema name="rderToBePropagated" expression="rderived_sx + '-' + rderived_dx"/> - <RVirSchema name="rvirtualdata"/> + <GVirSchema name="rvirtualdata"/> <!-- rderiveddata is used to verify der schema deletion --> - <RDerSchema name="rderivedschema" expression="rderived_sx + '-' + rderived_dx"/> + <GDerSchema name="rderivedschema" expression="rderived_sx + '-' + rderived_dx"/> <MPlainSchema name="subscriptionDate" type="Date" mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0" @@ -359,58 +359,58 @@ under the License. <UDerAttr id="100" derSchema_name="cn" owner_id="3"/> <UDerAttr id="101" derSchema_name="cn" owner_id="1"/> - <RPlainAttrTemplate id="600" owner_id="1" schema_name="icon"/> - <RPlainAttr id="600" owner_id="1" template_id="600"/> - <RPlainAttrValue attribute_id="600" id="40" stringValue="niceIcon"/> + <GPlainAttrTemplate id="600" owner_id="1" schema_name="icon"/> + <GPlainAttr id="600" owner_id="1" template_id="600"/> + <GPlainAttrValue attribute_id="600" id="40" stringValue="niceIcon"/> - <RPlainAttrTemplate id="700" owner_id="2" schema_name="icon"/> - <RPlainAttr id="700" owner_id="2" template_id="700"/> - <RPlainAttrValue attribute_id="700" id="41" stringValue="badIcon"/> + <GPlainAttrTemplate id="700" owner_id="2" schema_name="icon"/> + <GPlainAttr id="700" owner_id="2" template_id="700"/> + <GPlainAttrValue attribute_id="700" id="41" stringValue="badIcon"/> - <RPlainAttrTemplate id="800" owner_id="1" schema_name="show"/> - <RPlainAttr id="800" owner_id="1" template_id="800"/> - <RPlainAttrValue attribute_id="800" id="42" booleanValue="1"/> + <GPlainAttrTemplate id="800" owner_id="1" schema_name="show"/> + <GPlainAttr id="800" owner_id="1" template_id="800"/> + <GPlainAttrValue attribute_id="800" id="42" booleanValue="1"/> - <RPlainAttrTemplate id="900" owner_id="6" schema_name="icon"/> - <RPlainAttr id="900" owner_id="6" template_id="900"/> - <RPlainAttrValue attribute_id="900" id="43" stringValue="icon6"/> + <GPlainAttrTemplate id="900" owner_id="6" schema_name="icon"/> + <GPlainAttr id="900" owner_id="6" template_id="900"/> + <GPlainAttrValue attribute_id="900" id="43" stringValue="icon6"/> - <RPlainAttrTemplate id="950" owner_id="4" schema_name="icon"/> - <RPlainAttr id="950" owner_id="4" template_id="950"/> - <RPlainAttrValue attribute_id="950" id="44" stringValue="icon4"/> + <GPlainAttrTemplate id="950" owner_id="4" schema_name="icon"/> + <GPlainAttr id="950" owner_id="4" template_id="950"/> + <GPlainAttrValue attribute_id="950" id="44" stringValue="icon4"/> - <RPlainAttrTemplate id="992" owner_id="1" schema_name="rderived_sx"/> - <RPlainAttr id="992" owner_id="1" template_id="992"/> - <RPlainAttrValue attribute_id="992" id="92" stringValue="sx"/> + <GPlainAttrTemplate id="992" owner_id="1" schema_name="rderived_sx"/> + <GPlainAttr id="992" owner_id="1" template_id="992"/> + <GPlainAttrValue attribute_id="992" id="92" stringValue="sx"/> - <RPlainAttrTemplate id="993" owner_id="1" schema_name="rderived_dx"/> - <RPlainAttr id="993" owner_id="1" template_id="993"/> - <RPlainAttrValue attribute_id="993" id="93" stringValue="dx"/> + <GPlainAttrTemplate id="993" owner_id="1" schema_name="rderived_dx"/> + <GPlainAttr id="993" owner_id="1" template_id="993"/> + <GPlainAttrValue attribute_id="993" id="93" stringValue="dx"/> - <RPlainAttrTemplate id="994" owner_id="12" schema_name="title"/> - <RPlainAttr id="994" owner_id="12" template_id="994"/> - <RPlainAttrValue attribute_id="994" id="94" stringValue="r12"/> + <GPlainAttrTemplate id="994" owner_id="12" schema_name="title"/> + <GPlainAttr id="994" owner_id="12" template_id="994"/> + <GPlainAttrValue attribute_id="994" id="94" stringValue="r12"/> - <RPlainAttrTemplate id="995" owner_id="13" schema_name="title"/> - <RPlainAttr id="995" owner_id="13" template_id="995"/> - <RPlainAttrValue attribute_id="995" id="95" stringValue="r13"/> + <GPlainAttrTemplate id="995" owner_id="13" schema_name="title"/> + <GPlainAttr id="995" owner_id="13" template_id="995"/> + <GPlainAttrValue attribute_id="995" id="95" stringValue="r13"/> - <RDerAttrTemplate id="1000" owner_id="1" schema_name="rderiveddata"/> - <RDerAttr id="1000" owner_id="1" template_id="1000"/> + <GDerAttrTemplate id="1000" owner_id="1" schema_name="rderiveddata"/> + <GDerAttr id="1000" owner_id="1" template_id="1000"/> - <RDerAttrTemplate id="1001" owner_id="1" schema_name="displayProperty"/> - <RDerAttr id="1001" owner_id="1" template_id="1001"/> + <GDerAttrTemplate id="1001" owner_id="1" schema_name="displayProperty"/> + <GDerAttr id="1001" owner_id="1" template_id="1001"/> - <RDerAttrTemplate id="1002" owner_id="4" schema_name="displayProperty"/> - <RDerAttr id="1002" owner_id="4" template_id="1002"/> + <GDerAttrTemplate id="1002" owner_id="4" schema_name="displayProperty"/> + <GDerAttr id="1002" owner_id="4" template_id="1002"/> - <RDerAttrTemplate id="1003" owner_id="1" schema_name="rderToBePropagated"/> - <RDerAttr id="1003" owner_id="1" template_id="1003"/> + <GDerAttrTemplate id="1003" owner_id="1" schema_name="rderToBePropagated"/> + <GDerAttr id="1003" owner_id="1" template_id="1003"/> - <RVirAttrTemplate id="98" owner_id="4" schema_name="rvirtualdata"/> - <RVirAttr id="98" owner_id="4" template_id="98"/> + <GVirAttrTemplate id="98" owner_id="4" schema_name="rvirtualdata"/> + <GVirAttr id="98" owner_id="4" template_id="98"/> - <RVirAttrTemplate id="99" owner_id="3" schema_name="rvirtualdata"/> + <GVirAttrTemplate id="99" owner_id="3" schema_name="rvirtualdata"/> <MPlainAttrTemplate id="98" owner_id="1" schema_name="mderived_sx"/> @@ -497,7 +497,7 @@ under the License. bundleName="net.tirasa.connid.bundles.csvdir" connectorName="net.tirasa.connid.bundles.csvdir.CSVDirConnector" version="${connid.csvdir.version}" - jsonConf='[{"schema":{"name":"fields","displayName":"fields","helpMessage":"Column names separated by comma","type":"[Ljava.lang.String;","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["id","name","surname","email","password","role","membership","status","deleted"]},{"schema":{"name":"keyColumnNames","displayName":"Key column name","helpMessage":"Name of the column used to identify user uniquely","type":"[Ljava.lang.String;","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["name","surname"]},{"schema":{"name":"deleteColumnName","displayName":"Delete column name","helpMessage":"Name of the column used to specify users to be deleted","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["deleted"]},{"schema":{"name":"passwordColumnName","displayName":"Password column name","helpMessage":"Name of th e column used to specify user password","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["password"]},{"schema":{"name":"keyseparator","displayName":"Key separator","helpMessage":"Character used to separate keys in a multi-key scenario","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[","]},{"schema":{"name":"ignoreHeader","displayName":"Ignore header","helpMessage":"Specify it first line file must be ignored","type":"java.lang.Boolean","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[false]},{"schema":{"name":"fieldDelimiter","displayName":"fieldDelimiter","helpMessage":"fieldDelimiter","type":"char","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[","]},{"schema":{"name":"quotationRequired","displayName":"Value quotation required"," helpMessage":"Specify if value quotation is required","type":"java.lang.Boolean","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[false]},{"schema":{"name":"statusColumn","displayName":"statusColumn","helpMessage":"Status column","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["status"]},{"schema":{"name":"sourcePath","displayName":"Source path","helpMessage":"Absolute path of a directory where are located CSV files to be processed","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["${test.csvdir.path}"]},{"schema":{"name":"fileMask","displayName":"File mask","helpMessage":"Regular expression describing files to be processed","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["test.csv"]}]'/> + jsonConf='[{"schema":{"name":"fields","displayName":"fields","helpMessage":"Column names separated by comma","type":"[Ljava.lang.String;","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["id","name","surname","email","password","theirgroup","membership","status","deleted"]},{"schema":{"name":"keyColumnNames","displayName":"Key column name","helpMessage":"Name of the column used to identify user uniquely","type":"[Ljava.lang.String;","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["name","surname"]},{"schema":{"name":"deleteColumnName","displayName":"Delete column name","helpMessage":"Name of the column used to specify users to be deleted","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["deleted"]},{"schema":{"name":"passwordColumnName","displayName":"Password column name","helpMessage":"Name of the column used to specify user password","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["password"]},{"schema":{"name":"keyseparator","displayName":"Key separator","helpMessage":"Character used to separate keys in a multi-key scenario","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[","]},{"schema":{"name":"ignoreHeader","displayName":"Ignore header","helpMessage":"Specify it first line file must be ignored","type":"java.lang.Boolean","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[false]},{"schema":{"name":"fieldDelimiter","displayName":"fieldDelimiter","helpMessage":"fieldDelimiter","type":"char","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[","]},{"schema":{"name":"quotationRequired","displayName":"Value quotation requi red","helpMessage":"Specify if value quotation is required","type":"java.lang.Boolean","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":[false]},{"schema":{"name":"statusColumn","displayName":"statusColumn","helpMessage":"Status column","type":"java.lang.String","required":false,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["status"]},{"schema":{"name":"sourcePath","displayName":"Source path","helpMessage":"Absolute path of a directory where are located CSV files to be processed","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["${test.csvdir.path}"]},{"schema":{"name":"fileMask","displayName":"File mask","helpMessage":"Regular expression describing files to be processed","type":"java.lang.String","required":true,"order":0,"confidential":false,"defaultValues":null},"overridable":false,"values":["test.csv"]}]'/> <ConnInstance_capabilities ConnInstance_id="104" capabilities="ONE_PHASE_CREATE"/> <ConnInstance_capabilities ConnInstance_id="104" capabilities="ONE_PHASE_UPDATE"/> <ConnInstance_capabilities ConnInstance_id="104" capabilities="ONE_PHASE_DELETE"/> @@ -651,13 +651,13 @@ under the License. <SyncopeUser_ExternalResource user_id="3" resource_name="ws-target-resource-2"/> <SyncopeUser_ExternalResource user_id="3" resource_name="ws-target-resource-1"/> <SyncopeUser_ExternalResource user_id="5" resource_name="resource-testdb2"/> - <SyncopeRole_ExternalResource role_id="3" resource_name="ws-target-resource-list-mappings-1"/> - <SyncopeRole_ExternalResource role_id="8" resource_name="ws-target-resource-2"/> - <SyncopeRole_ExternalResource role_id="3" resource_name="ws-target-resource-list-mappings-2"/> - <SyncopeRole_ExternalResource role_id="7" resource_name="ws-target-resource-nopropagation"/> - <SyncopeRole_ExternalResource role_id="10" resource_name="ws-target-resource-nopropagation3"/> - <SyncopeRole_ExternalResource role_id="12" resource_name="resource-csv"/> - <SyncopeRole_ExternalResource role_id="13" resource_name="resource-csv"/> + <SyncopeGroup_ExternalResource group_id="3" resource_name="ws-target-resource-list-mappings-1"/> + <SyncopeGroup_ExternalResource group_id="8" resource_name="ws-target-resource-2"/> + <SyncopeGroup_ExternalResource group_id="3" resource_name="ws-target-resource-list-mappings-2"/> + <SyncopeGroup_ExternalResource group_id="7" resource_name="ws-target-resource-nopropagation"/> + <SyncopeGroup_ExternalResource group_id="10" resource_name="ws-target-resource-nopropagation3"/> + <SyncopeGroup_ExternalResource group_id="12" resource_name="resource-csv"/> + <SyncopeGroup_ExternalResource group_id="13" resource_name="resource-csv"/> <UMapping id="15" resource_name="ws-target-resource-1"/> <UMappingItem id="99" mapping_id="15" extAttrName="userId" @@ -787,8 +787,8 @@ under the License. <UMappingItem id="207" extAttrName="__NAME__" mapping_id="9" intAttrName="csvuserid" intMappingType="UserDerivedSchema" mandatoryCondition="true" accountid="1" password="0" purpose="BOTH"/> - <UMappingItem id="208" extAttrName="role" mapping_id="9" - intAttrName="rderToBePropagated" intMappingType="RoleDerivedSchema" mandatoryCondition="false" + <UMappingItem id="208" extAttrName="theirgroup" mapping_id="9" + intAttrName="rderToBePropagated" intMappingType="GroupDerivedSchema" mandatoryCondition="false" accountid="0" password="0" purpose="BOTH"/> <UMappingItem id="209" extAttrName="membership" mapping_id="9" intAttrName="mderToBePropagated" intMappingType="MembershipDerivedSchema" mandatoryCondition="false" @@ -820,7 +820,7 @@ under the License. extAttrName="mail" intAttrName="email" intMappingType="UserPlainSchema" mandatoryCondition="false" purpose="BOTH"/> <UMappingItem id="316" accountid="0" password="0" mapping_id="11" - extAttrName="title" intAttrName="title" intMappingType="RolePlainSchema" + extAttrName="title" intAttrName="title" intMappingType="GroupPlainSchema" mandatoryCondition="false" purpose="BOTH"/> <UMappingItem id="317" accountid="0" password="0" mapping_id="11" extAttrName="postalAddress" intAttrName="postalAddress" intMappingType="MembershipPlainSchema" @@ -838,19 +838,19 @@ under the License. extAttrName="jpegPhoto" intAttrName="photo" intMappingType="UserPlainSchema" mandatoryCondition="false" purpose="BOTH"/> - <RMapping id="1" resource_name="resource-ldap" + <GMapping id="1" resource_name="resource-ldap" accountlink="'cn=' + name + ',ou=groups,o=isp'"/> - <RMappingItem id="1" accountid="1" password="0" mapping_id="1" - extAttrName="cn" intAttrName="roleName" intMappingType="RoleName" + <GMappingItem id="1" accountid="1" password="0" mapping_id="1" + extAttrName="cn" intAttrName="groupName" intMappingType="GroupName" mandatoryCondition="true" purpose="BOTH"/> - <RMappingItem id="2" accountid="0" password="0" mapping_id="1" - extAttrName="owner" intAttrName="roleOwnerSchema" intMappingType="RoleOwnerSchema" + <GMappingItem id="2" accountid="0" password="0" mapping_id="1" + extAttrName="owner" intAttrName="groupOwnerSchema" intMappingType="GroupOwnerSchema" mandatoryCondition="false" purpose="BOTH"/> - <RMappingItem id="3" accountid="0" password="0" mapping_id="1" - extAttrName="description" intAttrName="title" intMappingType="RolePlainSchema" + <GMappingItem id="3" accountid="0" password="0" mapping_id="1" + extAttrName="description" intAttrName="title" intMappingType="GroupPlainSchema" mandatoryCondition="false" purpose="BOTH"/> - <RMappingItem id="4" extAttrName="businessCategory" mapping_id="1" - intAttrName="rvirtualdata" intMappingType="RoleVirtualSchema" mandatoryCondition="false" + <GMappingItem id="4" extAttrName="businessCategory" mapping_id="1" + intAttrName="rvirtualdata" intMappingType="GroupVirtualSchema" mandatoryCondition="false" accountid="0" password="0" purpose="BOTH"/> <UMapping id="16" resource_name="resource-db-sync"/> @@ -904,8 +904,8 @@ under the License. <Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="4" name="CSV (update matching; assign unmatching)" resource_name="resource-csv" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" fullReconciliation="0" jobClassName="org.apache.syncope.core.provisioning.api.job.SyncJob" unmatchingRule="ASSIGN" matchingRule="UPDATE" - userTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"password":null,"status":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"attributes":[{"schema":"type","readonly":false,"values":["email == '[email protected]'? 'TYPE_8': 'TYPE_OTHER'"]}],"derivedAttributes":[{"schema":"cn","readonly":false,"values":[null]}],"virtualAttributes":[],"resources":["resource-testdb"],"propagationStatuses":[],"memberships":[{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"roleId":8,"roleName":null,"attributes":[{"schema":"subscriptionDate","readonly":false,"values":["'2009-08-18T16:33:12.203+0200'"]}],"derivedAttributes":[],"virtualAttributes":[]}]}' - roleTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"roleOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"rPlainAttrTemplates":[],"rDerAttrTemplates":[],"rVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> + userTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"password":null,"status":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"attributes":[{"schema":"type","readonly":false,"values":["email == '[email protected]'? 'TYPE_8': 'TYPE_OTHER'"]}],"derivedAttributes":[{"schema":"cn","readonly":false,"values":[null]}],"virtualAttributes":[],"resources":["resource-testdb"],"propagationStatuses":[],"memberships":[{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"groupId":8,"groupName":null,"attributes":[{"schema":"subscriptionDate","readonly":false,"values":["'2009-08-18T16:33:12.203+0200'"]}],"derivedAttributes":[],"virtualAttributes":[]}]}' + groupTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"groupOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"gPlainAttrTemplates":[],"gDerAttrTemplates":[],"gVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> <Task DTYPE="SchedTask" type="SCHEDULED" id="5" name="SampleJob Task" jobClassName="org.apache.syncope.core.provisioning.java.job.SampleJob" cronExpression="0 0 0 1 * ?"/> <Task DTYPE="PropagationTask" type="PROPAGATION" id="6" propagationMode="TWO_PHASES" propagationOperation="UPDATE" objectClassName="__ACCOUNT__" resource_name="ws-target-resource-nopropagation" subjectType="USER" subjectId="1" @@ -915,7 +915,7 @@ under the License. performCreate="1" performUpdate="1" performDelete="0" syncStatus="1" fullReconciliation="1" jobClassName="org.apache.syncope.core.provisioning.api.job.SyncJob" unmatchingRule="PROVISION" matchingRule="UPDATE" userTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"password":null,"status":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"attributes":[{"schema":"type","readonly":false,"values":["'type a'"]},{"schema":"userId","readonly":false,"values":["'[email protected]'"]},{"schema":"fullname","readonly":false,"values":["'reconciled fullname'"]},{"schema":"surname","readonly":false,"values":["'surname'"]}],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"memberships":[]}' - roleTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"roleOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"rPlainAttrTemplates":[],"rDerAttrTemplates":[],"rVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> + groupTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"groupOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"gPlainAttrTemplates":[],"gDerAttrTemplates":[],"gVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> <Task DTYPE="NotificationTask" type="NOTIFICATION" id="8" sender="[email protected]" subject="Notification for SYNCOPE-81" textBody="NOTIFICATION-81" htmlBody="NOTIFICATION-81" traceLevel="ALL"/> <Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="9" name="TestDB2 Task" resource_name="resource-testdb2" @@ -928,7 +928,7 @@ under the License. fullReconciliation="1" performCreate="1" performDelete="1" performUpdate="1" syncStatus="0" jobClassName="org.apache.syncope.core.provisioning.api.job.SyncJob" unmatchingRule="PROVISION" matchingRule="UPDATE" userTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"password":null,"status":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[{"schema":"virtualReadOnly","readonly":false,"values":[""]}],"resources":["resource-ldap"],"propagationStatuses":[],"memberships":[]}' - roleTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":8,"userOwner":null,"roleOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[{"schema":"show","readonly":false,"values":["'true'"]}],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"rPlainAttrTemplates":["show"],"rDerAttrTemplates":[],"rVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> + groupTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":8,"userOwner":null,"groupOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[{"schema":"show","readonly":false,"values":["'true'"]}],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"gPlainAttrTemplates":["show"],"gDerAttrTemplates":[],"gVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> <SyncTask_actionsClassNames SyncTask_id="11" actionClassName="org.apache.syncope.core.provisioning.java.sync.LDAPMembershipSyncActions"/> <Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="12" name="VirAttrCache test" resource_name="resource-csv" performCreate="0" performUpdate="1" performDelete="0" syncStatus="0" fullReconciliation="1" @@ -936,52 +936,52 @@ under the License. <Task DTYPE="PushTask" type="PUSH" id="13" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="ASSIGN" matchingRule="IGNORE" - userFilter="surname==Vivaldi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Vivaldi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="14" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="PROVISION" matchingRule="IGNORE" - userFilter="surname==Bellini" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Bellini" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="15" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="UNLINK" matchingRule="IGNORE" - userFilter="surname==Puccini" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Puccini" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="16" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="IGNORE" - userFilter="surname==Verdi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Verdi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="17" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="ASSIGN" matchingRule="UPDATE" - userFilter="username==_NO_ONE_" roleFilter="name==_NO_ONE_"/> + userFilter="username==_NO_ONE_" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="18" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="DEPROVISION" - userFilter="surname==Verdi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Verdi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="19" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="UNASSIGN" - userFilter="surname==Rossini" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Rossini" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="20" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="LINK" - userFilter="surname==Verdi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Verdi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="21" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="UNLINK" - userFilter="surname==Verdi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Verdi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="22" name="Export on resource-testdb2" resource_name="resource-testdb2" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="IGNORE" matchingRule="UPDATE" - userFilter="surname==Verdi" roleFilter="name==_NO_ONE_"/> + userFilter="surname==Verdi" groupFilter="name==_NO_ONE_"/> <Task DTYPE="PushTask" type="PUSH" id="23" name="Export on resource-ldap" resource_name="resource-ldap" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" jobClassName="org.apache.syncope.core.provisioning.api.job.PushJob" unmatchingRule="ASSIGN" matchingRule="UNLINK" - userFilter="username==_NO_ONE_" roleFilter="name==citizen"/> + userFilter="username==_NO_ONE_" groupFilter="name==citizen"/> <Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="24" name="CSV Task (update matching; provision unmatching)" resource_name="resource-csv" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" fullReconciliation="0" jobClassName="org.apache.syncope.core.provisioning.api.job.SyncJob" unmatchingRule="PROVISION" matchingRule="UPDATE" userTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"password":null,"status":null,"token":null,"tokenExpireTime":null,"username":null,"lastLoginDate":null,"changePwdDate":null,"failedLogins":null,"attributes":[{"schema":"firstname","readonly":false,"values":[""]},{"schema":"userId","readonly":false,"values":["'test'"]},{"schema":"fullname","readonly":false,"values":["'test'"]},{"schema":"surname","readonly":false,"values":["'test'"]}],"derivedAttributes":[],"virtualAttributes":[],"resources":["resource-testdb"],"propagationStatuses":[],"memberships":[]}' - roleTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"roleOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"rPlainAttrTemplates":[],"rDerAttrTemplates":[],"rVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> + groupTemplate='{"creator":null,"creationDate":null,"lastModifier":null,"lastChangeDate":null,"key":0,"name":null,"parent":0,"userOwner":null,"groupOwner":null,"inheritOwner":false,"inheritTemplates":false,"inheritPlainAttrs":false,"inheritDerAttrs":false,"inheritVirAttrs":false,"inheritPasswordPolicy":false,"inheritAccountPolicy":false,"passwordPolicy":null,"accountPolicy":null,"attributes":[],"derivedAttributes":[],"virtualAttributes":[],"resources":[],"propagationStatuses":[],"entitlements":[],"gPlainAttrTemplates":[],"gDerAttrTemplates":[],"gVirAttrTemplates":[],"mPlainAttrTemplates":[],"mDerAttrTemplates":[],"mVirAttrTemplates":[]}'/> <Task DTYPE="SyncTask" type="SYNCHRONIZATION" id="25" name="CSV (unlink matching; ignore unmatching)" resource_name="resource-csv" performCreate="1" performUpdate="1" performDelete="1" syncStatus="1" fullReconciliation="0" jobClassName="org.apache.syncope.core.provisioning.api.job.SyncJob" unmatchingRule="IGNORE" matchingRule="UNLINK"/> @@ -1002,7 +1002,7 @@ under the License. <Notification id="10" sender="[email protected]" subject="Test subject" template="test" selfAsRecipient="0" traceLevel="FAILURES" userAbout="fullname==*o*;fullname==*i*" - recipients="$roles==7" + recipients="$groups==7" recipientAttrType="UserPlainSchema" recipientAttrName="email" active="1"/> <Notification_events Notification_id="10" events="[CUSTOM]:[]:[]:[unexisting1]:[FAILURE]"/> <Notification_events Notification_id="10" events="[CUSTOM]:[]:[]:[unexisting2]:[SUCCESS]"/> @@ -1030,11 +1030,11 @@ under the License. <Entitlement name="USER_UPDATE"/> <Entitlement name="USER_DELETE"/> <Entitlement name="USER_VIEW"/> - <Entitlement name="ROLE_LIST"/> - <Entitlement name="ROLE_CREATE"/> - <Entitlement name="ROLE_READ"/> - <Entitlement name="ROLE_UPDATE"/> - <Entitlement name="ROLE_DELETE"/> + <Entitlement name="GROUP_LIST"/> + <Entitlement name="GROUP_CREATE"/> + <Entitlement name="GROUP_READ"/> + <Entitlement name="GROUP_UPDATE"/> + <Entitlement name="GROUP_DELETE"/> <Entitlement name="RESOURCE_LIST"/> <Entitlement name="RESOURCE_CREATE"/> <Entitlement name="RESOURCE_READ"/> @@ -1089,37 +1089,37 @@ under the License. <Entitlement name="SECURITY_QUESTION_CREATE"/> <Entitlement name="SECURITY_QUESTION_UPDATE"/> <Entitlement name="SECURITY_QUESTION_DELETE"/> - <Entitlement name="ROLE_1"/> - <Entitlement name="ROLE_2"/> - <Entitlement name="ROLE_3"/> - <Entitlement name="ROLE_4"/> - <Entitlement name="ROLE_5"/> - <Entitlement name="ROLE_6"/> - <Entitlement name="ROLE_7"/> - <Entitlement name="ROLE_8"/> - <Entitlement name="ROLE_9"/> - <Entitlement name="ROLE_10"/> - <Entitlement name="ROLE_11"/> - <Entitlement name="ROLE_12"/> - <Entitlement name="ROLE_13"/> - <Entitlement name="ROLE_14"/> + <Entitlement name="GROUP_1"/> + <Entitlement name="GROUP_2"/> + <Entitlement name="GROUP_3"/> + <Entitlement name="GROUP_4"/> + <Entitlement name="GROUP_5"/> + <Entitlement name="GROUP_6"/> + <Entitlement name="GROUP_7"/> + <Entitlement name="GROUP_8"/> + <Entitlement name="GROUP_9"/> + <Entitlement name="GROUP_10"/> + <Entitlement name="GROUP_11"/> + <Entitlement name="GROUP_12"/> + <Entitlement name="GROUP_13"/> + <Entitlement name="GROUP_14"/> - <SyncopeRole_Entitlement entitlement_name="base" role_id="1"/> - <SyncopeRole_Entitlement entitlement_name="advanced" role_id="1"/> - <SyncopeRole_Entitlement entitlement_name="base" role_id="2"/> - <SyncopeRole_Entitlement entitlement_name="USER_READ" role_id="2"/> - <SyncopeRole_Entitlement entitlement_name="USER_LIST" role_id="2"/> - <SyncopeRole_Entitlement entitlement_name="USER_READ" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="USER_LIST" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="ROLE_8" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="ROLE_9" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="ROLE_7" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="ROLE_1" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="WORKFLOW_FORM_CLAIM" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="WORKFLOW_FORM_SUBMIT" role_id="7"/> - <SyncopeRole_Entitlement entitlement_name="SCHEMA_READ" role_id="8"/> - <SyncopeRole_Entitlement entitlement_name="ROLE_READ" role_id="8"/> - <SyncopeRole_Entitlement entitlement_name="WORKFLOW_FORM_CLAIM" role_id="8"/> + <SyncopeGroup_Entitlement entitlement_name="base" group_id="1"/> + <SyncopeGroup_Entitlement entitlement_name="advanced" group_id="1"/> + <SyncopeGroup_Entitlement entitlement_name="base" group_id="2"/> + <SyncopeGroup_Entitlement entitlement_name="USER_READ" group_id="2"/> + <SyncopeGroup_Entitlement entitlement_name="USER_LIST" group_id="2"/> + <SyncopeGroup_Entitlement entitlement_name="USER_READ" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="USER_LIST" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="GROUP_8" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="GROUP_9" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="GROUP_7" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="GROUP_1" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="WORKFLOW_FORM_CLAIM" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="WORKFLOW_FORM_SUBMIT" group_id="7"/> + <SyncopeGroup_Entitlement entitlement_name="SCHEMA_READ" group_id="8"/> + <SyncopeGroup_Entitlement entitlement_name="GROUP_READ" group_id="8"/> + <SyncopeGroup_Entitlement entitlement_name="WORKFLOW_FORM_CLAIM" group_id="8"/> <SecurityQuestion id="1" content="What's your mother's maiden name?"/> </dataset>
http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/pom.xml ---------------------------------------------------------------------- diff --git a/core/pom.xml b/core/pom.xml index 243b27f..bb61b7a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -33,6 +33,10 @@ under the License. <artifactId>syncope-core</artifactId> <packaging>pom</packaging> + <properties> + <rootpom.basedir>${basedir}/..</rootpom.basedir> + </properties> + <modules> <module>persistence-api</module> <module>persistence-jpa</module> http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/AttributableTransformer.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/AttributableTransformer.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/AttributableTransformer.java index bcbe900..5e8b9e7 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/AttributableTransformer.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/AttributableTransformer.java @@ -22,7 +22,7 @@ import org.apache.syncope.common.lib.mod.AbstractAttributableMod; import org.apache.syncope.common.lib.to.AbstractAttributableTO; /** - * Provides logic for transforming user or role, received as input by RESTful methods, before any internal + * Provides logic for transforming user or group, received as input by RESTful methods, before any internal * processing logic takes place. */ public interface AttributableTransformer { http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/Connector.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/Connector.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/Connector.java index 2715637..61ff143 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/Connector.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/Connector.java @@ -50,7 +50,7 @@ public interface Connector { Uid authenticate(String username, String password, OperationOptions options); /** - * Create user / role on a connector instance. + * Create user / group on a connector instance. * * @param propagationMode propagation mode * @param objectClass ConnId's object class @@ -64,7 +64,7 @@ public interface Connector { Set<String> propagationAttempted); /** - * Update user / role on a connector instance. + * Update user / group on a connector instance. * * @param propagationMode propagation mode * @param objectClass ConnId's object class @@ -79,7 +79,7 @@ public interface Connector { Set<String> propagationAttempted); /** - * Delete user / role on a connector instance. + * Delete user / group on a connector instance. * * @param propagationMode propagation mode * @param objectClass ConnId's object class @@ -91,7 +91,7 @@ public interface Connector { Uid uid, OperationOptions options, Set<String> propagationAttempted); /** - * Sync users / roles from a connector instance. + * Sync users / groups from a connector instance. * * @param objectClass ConnId's object class * @param token to be passed to the underlying connector http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/GroupProvisioningManager.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/GroupProvisioningManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/GroupProvisioningManager.java new file mode 100644 index 0000000..16ffc7c --- /dev/null +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/GroupProvisioningManager.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.core.provisioning.api; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.apache.syncope.common.lib.mod.GroupMod; +import org.apache.syncope.common.lib.to.PropagationStatus; +import org.apache.syncope.common.lib.to.GroupTO; + +public interface GroupProvisioningManager extends ProvisioningManager<GroupTO, GroupMod> { + + Map.Entry<Long, List<PropagationStatus>> create(GroupTO groupTO, Set<String> excludedResources); + + Map.Entry<Long, List<PropagationStatus>> create( + GroupTO groupTO, Map<Long, String> groupOwnerMap, Set<String> excludedResources); + + Map.Entry<Long, List<PropagationStatus>> update(GroupMod subjectMod, Set<String> excludedResources); + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/RoleProvisioningManager.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/RoleProvisioningManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/RoleProvisioningManager.java deleted file mode 100644 index 595af54..0000000 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/RoleProvisioningManager.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.syncope.core.provisioning.api; - -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.apache.syncope.common.lib.mod.RoleMod; -import org.apache.syncope.common.lib.to.PropagationStatus; -import org.apache.syncope.common.lib.to.RoleTO; - -public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod> { - - Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources); - - Map.Entry<Long, List<PropagationStatus>> create( - RoleTO roleTO, Map<Long, String> roleOwnerMap, Set<String> excludedResources); - - Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources); - -} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/WorkflowResult.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/WorkflowResult.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/WorkflowResult.java index e1964e5..1b3f2ab 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/WorkflowResult.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/WorkflowResult.java @@ -32,19 +32,18 @@ public class WorkflowResult<T> { private PropagationByResource propByRes; - private Set<String> performedTasks; + private final Set<String> performedTasks = new HashSet<>(); public WorkflowResult(final T result, final PropagationByResource propByRes, final String performedTask) { this.result = result; this.propByRes = propByRes; - this.performedTasks = new HashSet<>(); this.performedTasks.add(performedTask); } public WorkflowResult(final T result, final PropagationByResource propByRes, final Set<String> performedTasks) { this.result = result; this.propByRes = propByRes; - this.performedTasks = new HashSet<>(performedTasks); + this.performedTasks.addAll(performedTasks); } public T getResult() { http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCache.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCache.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCache.java index d9df1ef..45256e5 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCache.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCache.java @@ -28,8 +28,8 @@ public interface VirAttrCache { /** * Force entry expiring. * - * @param type user or role - * @param id user or role id + * @param type user or group + * @param id user or group id * @param schemaName virtual attribute schema name */ void expire(AttributableType type, Long id, String schemaName); @@ -37,8 +37,8 @@ public interface VirAttrCache { /** * Retrieve cached value. Return null in case of virtual attribute not cached. * - * @param type user or role - * @param id user or role id + * @param type user or group + * @param id user or group id * @param schemaName virtual attribute schema name. * @return cached values or null if virtual attribute is not cached. */ @@ -55,8 +55,8 @@ public interface VirAttrCache { /** * Cache virtual attribute values. * - * @param type user or role - * @param id user or role id + * @param type user or group + * @param id user or group id * @param schemaName virtual attribute name * @param value virtual attribute values */ http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCacheValue.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCacheValue.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCacheValue.java index 9d1bd84..0db95ac 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCacheValue.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/cache/VirAttrCacheValue.java @@ -47,11 +47,11 @@ public class VirAttrCacheValue { public VirAttrCacheValue() { this.creationDate = new Date(); this.lastAccessDate = new Date(); - values = new HashMap<>(); + this.values = new HashMap<>(); } - public void setResourceValues(final String resourceName, final Set<String> values) { - this.values.put(resourceName, values); + public void setResourceValues(final String resourceName, final Set<String> cached) { + this.values.put(resourceName, cached); } public Date getCreationDate() { @@ -80,7 +80,7 @@ public class VirAttrCacheValue { return lastAccessDate; } - void setLastAccessDate(final Date lastAccessDate) { + public void setLastAccessDate(final Date lastAccessDate) { this.lastAccessDate = lastAccessDate; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/GroupDataBinder.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/GroupDataBinder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/GroupDataBinder.java new file mode 100644 index 0000000..95df28a --- /dev/null +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/GroupDataBinder.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.core.provisioning.api.data; + +import org.apache.syncope.common.lib.mod.GroupMod; +import org.apache.syncope.common.lib.to.GroupTO; +import org.apache.syncope.common.lib.types.PropagationByResource; +import org.apache.syncope.core.persistence.api.entity.group.Group; + +public interface GroupDataBinder { + + GroupTO getGroupTO(Long key); + + GroupTO getGroupTO(Group group); + + Group create(Group group, GroupTO groupTO); + + PropagationByResource update(Group group, GroupMod groupMod); + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/RoleDataBinder.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/RoleDataBinder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/RoleDataBinder.java deleted file mode 100644 index b2da797..0000000 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/RoleDataBinder.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.syncope.core.provisioning.api.data; - -import org.apache.syncope.common.lib.mod.RoleMod; -import org.apache.syncope.common.lib.to.RoleTO; -import org.apache.syncope.common.lib.types.PropagationByResource; -import org.apache.syncope.core.persistence.api.entity.role.Role; - -public interface RoleDataBinder { - - RoleTO getRoleTO(Long key); - - RoleTO getRoleTO(Role role); - - Role create(Role role, RoleTO roleTO); - - PropagationByResource update(Role role, RoleMod roleMod); - -} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/job/TaskJob.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/job/TaskJob.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/job/TaskJob.java index 9820406..b6efd53 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/job/TaskJob.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/job/TaskJob.java @@ -27,7 +27,7 @@ import org.quartz.Job; @DisallowConcurrentExecution public interface TaskJob extends Job { - public static final String DRY_RUN_JOBDETAIL_KEY = "dryRun"; + String DRY_RUN_JOBDETAIL_KEY = "dryRun"; /** * Task execution status. http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java index 98281f2..391ab29 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java @@ -40,9 +40,8 @@ public interface NotificationManager { /** * Create notification tasks for each notification matching the given user id and (some of) tasks performed. */ - void createTasks(final AuditElements.EventCategoryType type, final String category, final String subcategory, - final String event, final AuditElements.Result condition, final Object before, final Object output, - final Object... input); + void createTasks(AuditElements.EventCategoryType type, String category, String subcategory, + String event, AuditElements.Result condition, Object before, Object output, Object... input); long getMaxRetries(); http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/propagation/PropagationManager.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/propagation/PropagationManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/propagation/PropagationManager.java index e11c5c8..277dfc9 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/propagation/PropagationManager.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/propagation/PropagationManager.java @@ -36,102 +36,102 @@ import org.apache.syncope.core.provisioning.api.WorkflowResult; public interface PropagationManager { /** - * Create the role on every associated resource. + * Create the group on every associated resource. * * @param wfResult user to be propagated (and info associated), as per result from workflow * @param vAttrs virtual attributes to be set * @return list of propagation tasks */ - List<PropagationTask> getRoleCreateTaskIds(WorkflowResult<Long> wfResult, List<AttrTO> vAttrs); + List<PropagationTask> getGroupCreateTaskIds(WorkflowResult<Long> wfResult, List<AttrTO> vAttrs); /** - * Create the role on every associated resource. + * Create the group on every associated resource. * - * @param wfResult role to be propagated (and info associated), as per result from workflow + * @param wfResult group to be propagated (and info associated), as per result from workflow * @param vAttrs virtual attributes to be set * @param noPropResourceNames external resources performing not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleCreateTaskIds( + List<PropagationTask> getGroupCreateTaskIds( WorkflowResult<Long> wfResult, Collection<AttrTO> vAttrs, Collection<String> noPropResourceNames); /** - * Create the role on every associated resource. + * Create the group on every associated resource. * - * @param key role id + * @param key group id * @param vAttrs virtual attributes to be set * @param propByRes operation to be performed per resource * @param noPropResourceNames external resources performing not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleCreateTaskIds(Long key, Collection<AttrTO> vAttrs, PropagationByResource propByRes, + List<PropagationTask> getGroupCreateTaskIds(Long key, Collection<AttrTO> vAttrs, PropagationByResource propByRes, Collection<String> noPropResourceNames); /** - * Perform delete on each resource associated to the role. It is possible to ask for a mandatory provisioning for + * Perform delete on each resource associated to the group. It is possible to ask for a mandatory provisioning for * some resources specifying a set of resource names. Exceptions won't be ignored and the process will be stopped if * the creation fails onto a mandatory resource. * - * @param roleId to be deleted + * @param groupId to be deleted * @return list of propagation tasks */ - List<PropagationTask> getRoleDeleteTaskIds(Long roleId); + List<PropagationTask> getGroupDeleteTaskIds(Long groupId); /** - * Perform delete on each resource associated to the role. It is possible to ask for a mandatory provisioning for + * Perform delete on each resource associated to the group. It is possible to ask for a mandatory provisioning for * some resources specifying a set of resource names. Exceptions won't be ignored and the process will be stopped if * the creation fails onto a mandatory resource. * - * @param roleId to be deleted + * @param groupId to be deleted * @param noPropResourceName name of external resource not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleDeleteTaskIds(Long roleId, String noPropResourceName); + List<PropagationTask> getGroupDeleteTaskIds(Long groupId, String noPropResourceName); /** * Perform delete on each resource associated to the user. It is possible to ask for a mandatory provisioning for * some resources specifying a set of resource names. Exceptions won't be ignored and the process will be stopped if * the creation fails onto a mandatory resource. * - * @param roleId to be deleted + * @param groupId to be deleted * @param noPropResourceNames name of external resources not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleDeleteTaskIds(Long roleId, Collection<String> noPropResourceNames); + List<PropagationTask> getGroupDeleteTaskIds(Long groupId, Collection<String> noPropResourceNames); /** * Perform delete on each resource associated to the user. It is possible to ask for a mandatory provisioning for * some resources specifying a set of resource names. Exceptions won't be ignored and the process will be stopped if * the creation fails onto a mandatory resource. * - * @param roleId to be deleted + * @param groupId to be deleted * @param noPropResourceNames name of external resources not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleDeleteTaskIds( - Long roleId, Set<String> resourceNames, Collection<String> noPropResourceNames); + List<PropagationTask> getGroupDeleteTaskIds( + Long groupId, Set<String> resourceNames, Collection<String> noPropResourceNames); /** - * Performs update on each resource associated to the role. + * Performs update on each resource associated to the group. * - * @param wfResult role to be propagated (and info associated), as per result from workflow + * @param wfResult group to be propagated (and info associated), as per result from workflow * @param vAttrsToBeRemoved virtual attributes to be removed * @param vAttrsToBeUpdated virtual attributes to be added * @return list of propagation tasks */ - List<PropagationTask> getRoleUpdateTaskIds(WorkflowResult<Long> wfResult, Set<String> vAttrsToBeRemoved, + List<PropagationTask> getGroupUpdateTaskIds(WorkflowResult<Long> wfResult, Set<String> vAttrsToBeRemoved, Set<AttrMod> vAttrsToBeUpdated); /** - * Performs update on each resource associated to the role. + * Performs update on each resource associated to the group. * - * @param wfResult role to be propagated (and info associated), as per result from workflow + * @param wfResult group to be propagated (and info associated), as per result from workflow * @param vAttrsToBeRemoved virtual attributes to be removed * @param vAttrsToBeUpdated virtual attributes to be added * @param noPropResourceNames external resource names not to be considered for propagation * @return list of propagation tasks */ - List<PropagationTask> getRoleUpdateTaskIds(WorkflowResult<Long> wfResult, Set<String> vAttrsToBeRemoved, + List<PropagationTask> getGroupUpdateTaskIds(WorkflowResult<Long> wfResult, Set<String> vAttrsToBeRemoved, Set<AttrMod> vAttrsToBeUpdated, Set<String> noPropResourceNames); List<PropagationTask> getUpdateTaskIds(Subject<?, ?, ?> subject, String password, boolean changePwd, http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupPushResultHandler.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupPushResultHandler.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupPushResultHandler.java new file mode 100644 index 0000000..d22d4e7 --- /dev/null +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupPushResultHandler.java @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.core.provisioning.api.sync; + +public interface GroupPushResultHandler extends SyncopePushResultHandler { + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupSyncResultHandler.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupSyncResultHandler.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupSyncResultHandler.java new file mode 100644 index 0000000..907c29c --- /dev/null +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/GroupSyncResultHandler.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.core.provisioning.api.sync; + +import java.util.Map; + +public interface GroupSyncResultHandler extends SyncopeSyncResultHandler { + + Map<Long, String> getGroupOwnerMap(); +} http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningProfile.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningProfile.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningProfile.java index 3f633a4..6bab515 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningProfile.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningProfile.java @@ -40,7 +40,7 @@ public class ProvisioningProfile<T extends ProvisioningTask, A extends Provision private ConflictResolutionAction resAct; - private List<A> actions = new ArrayList<>(); + private final List<A> actions = new ArrayList<>(); public ProvisioningProfile(final Connector connector, final T task) { this.connector = connector; http://git-wip-us.apache.org/repos/asf/syncope/blob/4095f1e8/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningResult.java ---------------------------------------------------------------------- diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningResult.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningResult.java index 8061dba..a1ccabe 100644 --- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningResult.java +++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/sync/ProvisioningResult.java @@ -133,7 +133,7 @@ public class ProvisioningResult { public static String produceReport(final Collection<ProvisioningResult> results, final TraceLevel level) { StringBuilder sb = new StringBuilder(); for (ProvisioningResult result : results) { - sb.append(result.getReportString(level)).append("\n"); + sb.append(result.getReportString(level)).append('\n'); } return sb.toString(); }
