Hi Vinay,

please see my answers below:

Thanks a lot Elena for the response.

PS: I've replaced the dev mailing list user mailing list in this email Thread.

I have a couple of questions on the solutions for the 2 options listed above. I have marked them in orange background. Please review.

1.  We are currently considering the design of treating a realm/sub-realm
    each for a business and putting all users of that business/organization     under that realm/sub-realm and thinking of attaching a set of attributes.
    to the realm so that they can be inherited to all the users under that
    realm. Is that even possible?

[Elena] This approach is not feasible using only Realms, as they are not
intended for holding specific attributes to the belonging entities. It
could be possible, though, by using the Realms with the LogicTemplate,
which are classes that allow to define a logic during the create/update
phase: this logic, for instance, could add some specific attributes.
This approach would be recommended in case those properties are not
subject to change in time, as it would be difficult to maintain.For
more information regarding Realms and Logic Templates, please refer to
the specific section in the Apache Syncope Reference Guide:
http://syncope.apache.org/docs/reference-guide.html#realms//// <http://syncope.apache.org/docs/reference-guide.html#realms////>

*Question: **Is it like we need to update the Interface as well as the associated Impl classes often when there's any addition or deletion of the attributes to the Realm.(Via Logic Template?) or Is there any other maintenance issues? Please elaborate if you can.*
Correct. You may need to modify the implementation of Java interfaces and classes whenever there is any addition or deletion of those attributes.

2. As a plan-B, We are thinking of creating a Custom AnyObject Business
    and add all the properties/attributes to that business object and associate
    it to all the users under a realm to inherit the properties from a
    business. Is that feasible?

[Elena] This is feasible by defining a custom "Business" Relationship
between the object User and an AnyObject, which we can call Business,
created in Syncope and associated to a specific AnyTypeClass which will
hold the specific business attributes you want the user to inherit.
Please also consider that you can achieve a similar result by using the
Syncope Group entity, having a Group containing all Users that need to
inherit those specific business attributes. Again, the last approach
recommendation strictly depends on the nature of your solution: if you
are already handling a large amount of Groups it may not be recommended.

*Question 1:   How do I associate the new Relationship to the User Object?*

It can be done through the Syncope Web UI or via REST API.

For the WebUI approach, follow these steps:

1) create the Business Any Object and the AnyType class that will hold the business attributes;

2) define the Business relationship;

3) create a Business entity in Syncope;

4) create or modify an existing User in Syncope, add the Relationship in the specific section and select the available Entity;

For the REST API, you can have a look at the method :PATCH/users/{key}
<https://syncope-vm.apache.org/syncope/swagger/#/Users/update_31>  the relationship can be specified in the payload of the request, please see an extract below:

.|..||||
|

|  "relationships": [|||
||

|    {||
||      "operation": "ADD_REPLACE",||
||      "relationshipTO": {||
||        "type": "string",||
||        "otherEndType": "string",||
||        "otherEndKey": "string",||
||        "otherEndName": "string"||
||      }||
||    }||
||  ],||
||
|

|...|

reference: https://syncope-vm.apache.org/syncope/swagger/|
|

*Question 2: Let's say if we have 1000 users under a realm ACME and I have a relationship "Business Relation" between User and an AnyObject "Business". How do I make sure all the attributes within the Business object goes to all 1000 users under the ACME realm? Do I need to associate all the 1000 users to the Business AnyObject? or Can I do it in a batch for all the 1000 users at a time?*
Yes, all the 1000 users should be associated to the Business AnyObject and the operation can be done in batch as well.
||

**

**Question 3: Also if I have to associate a user to multiple Business, will the Association be the only way to do it?*
*
**

Yes, you can use another Relationship.*
*



BR,

Elena



Il 25/10/21 19:34, Vinay Kumar ha scritto:
Thanks a lot Elena for the response.

PS: I've replaced the dev mailing list user mailing list in this email Thread.

I have a couple of questions on the solutions for the 2 options listed above. I have marked them in orange background. Please review.

1.  We are currently considering the design of treating a realm/sub-realm
    each for a business and putting all users of that business/organization     under that realm/sub-realm and thinking of attaching a set of attributes.
    to the realm so that they can be inherited to all the users under that
    realm. Is that even possible?

[Elena] This approach is not feasible using only Realms, as they are not
intended for holding specific attributes to the belonging entities. It
could be possible, though, by using the Realms with the LogicTemplate,
which are classes that allow to define a logic during the create/update
phase: this logic, for instance, could add some specific attributes.
This approach would be recommended in case those properties are not
subject to change in time, as it would be difficult to maintain. For
more information regarding Realms and Logic Templates, please refer to
the specific section in the Apache Syncope Reference Guide:
http://syncope.apache.org/docs/reference-guide.html#realms//// <http://syncope.apache.org/docs/reference-guide.html#realms////>

*Question: **Is it like we need to update the Interface as well as the associated Impl classes often when there's any addition or deletion of the attributes to the Realm.(Via Logic Template?) or Is there any other maintenance issues? Please elaborate if you can.*

2. As a plan-B, We are thinking of creating a Custom AnyObject Business
    and add all the properties/attributes to that business object and associate
    it to all the users under a realm to inherit the properties from a
    business. Is that feasible?

[Elena] This is feasible by defining a custom "Business" Relationship
between the object User and an AnyObject, which we can call Business,
created in Syncope and associated to a specific AnyTypeClass which will
hold the specific business attributes you want the user to inherit.
Please also consider that you can achieve a similar result by using the
Syncope Group entity, having a Group containing all Users that need to
inherit those specific business attributes. Again, the last approach
recommendation strictly depends on the nature of your solution: if you
are already handling a large amount of Groups it may not be recommended.

*Question 1:   How do I associate the new Relationship to the User Object?* *Question 2:   Let's say if we have 1000 users under a realm ACME and I have a relationship "Business Relation" between User and an AnyObject "Business". How do I make sure all the attributes within the Business object goes to all 1000 users under the ACME realm? Do I need to associate all the 1000 users to the Business AnyObject? or Can I do it in a batch for all the 1000 users at a time?
*
*Question 3:   Also if I have to associate a user to multiple Business, will the Association be the only way to do it?*

Thanks a lot in advance!!

Regards,
Vinay


On Mon, Oct 25, 2021 at 6:00 AM Elena Renzi <elena.re...@tirasa.net <mailto:elena.re...@tirasa.net>> wrote:

    Hi Vinay,

    Please check our answers directly in your email for both the
    suggested
    approach.

    For any further request on this topic we kindly invite you to use the
    user@syncope.apache.org <mailto:user@syncope.apache.org> mailing list.

    Thanks!


    Best Regards,

    Elena



    On 2021/10/22 15:31:23, Vinay Kumar <v...@gmail.com
    <mailto:v...@gmail.com>> wrote:

    Hi Team,

    We have a use case in our project where we need to inherit
    properties of a
    business/organization to all of the users under that business account.

    Is there a way in syncope on how we can implement this?

    We are thinking of 2 designs mentioned below, please see and let
    me know if
    the thought process is correct.


        1. We are currently considering the design of treating a
    realm/sub-realm
        each for a business and putting all users of that
    business/organization
        under that realm/sub-realm and thinking of attaching a set of
    attributes.
        to the realm so that they can be inherited to all the users
    under that
        realm. Is that even possible?

    [Elena] This approach is not feasible using only Realms, as they
    are not
    intended for holding specific attributes to the belonging
    entities. It
    could be possible, though, by using the Realms with the
    LogicTemplate,
    which are classes that allow to define a logic during the
    create/update
    phase: this logic, for instance, could add some specific attributes.
    This approach would be recommended in case those properties are not
    subject to change in time, as it would be difficult to maintain. For
    more information regarding Realms and Logic Templates, please
    refer to
    the specific section in the Apache Syncope Reference Guide:
    http://syncope.apache.org/docs/reference-guide.html#realms////
    <http://syncope.apache.org/docs/reference-guide.html#realms////>
      2. As a plan-B, We are thinking of creating a Custom AnyObject
    Business
        and add all the properties/attributes to that business object
    and associate
        it to all the users under a realm to inherit the properties from a
        business. Is that feasible?

    [Elena] This is feasible by defining a custom "Business" Relationship
    between the object User and an AnyObject, which we can call Business,
    created in Syncope and associated to a specific AnyTypeClass which
    will
    hold the specific business attributes you want the user to inherit.
    Please also consider that you can achieve a similar result by
    using the
    Syncope Group entity, having a Group containing all Users that
    need to
    inherit those specific business attributes. Again, the last approach
    recommendation strictly depends on the nature of your solution: if
    you
    are already handling a large amount of Groups it may not be
    recommended.


    Please let me know your thoughts.

    Thanks in advance!

    Regards,
    Vinay

Reply via email to