On 21/10/2014 13:44, Guido Wimmel wrote:
Hi,
I had a closer look at the solution of using role memberships to store
composite values.
However, if I understand it correctly, Syncope does *not* allow a user to have
more than one membership (with different attributes) to a given role. Thus one
cannot store multiple composite values for a user using memberships to the same
role.
So in the example, I would have to create multiple
"TermsAndConditions_<XXX>"-Roles, one for each terms and conditions document,
with the same membership schemas (e.g. date of acceptance).
Is this correct or did I misunderstand the suggestion?
Hi Guido,
yes, there can be a single membership at most for any given <user, role>
pair.
Do you have different terms and conditions for different services? If
so, you are right, you will need as many roles as the number of services
you need users to accept terms and conditions of.
Regards.
Gesendet: Montag, 13. Oktober 2014 um 16:17 Uhr
Von: "Guido Wimmel" <[email protected]>
An: [email protected]
Betreff: Re: storing composite values in Syncope
Hi Francesco,
thanks for the helpful suggestions.
I was thinking of the possibility to use role memberships for this as well, but
not about the possibility to use multiple memberships to the same role.
I'll investigate further into this solution.
Cheers,
Guido
Gesendet: Samstag, 11. Oktober 2014 um 07:44 Uhr
Von: "Francesco Chicchiriccò" <[email protected]>
An: [email protected]
Betreff: Re: storing composite values in Syncope
On 10/10/2014 14:06, Guido Wimmel wrote:
Hi,
I understand that Syncope schemas only support simple types (String, Enum,
Boolean, Long, Double, Date) and byte arrays.
Is there a best practice for storing composite values?
We're thinking of managing acknowledgements of terms&conditions documents in our
idm instance (is this usually done?) - which could be a multivalue attribute having a
set of (reference to terms&conditions-document, date of acceptance) as values.
One way would be to use String types and serialize the values e.g. to JSON,
which would work if one doesn't need to support efficient searches for values
of the components of a composite value.
HI Guido,
"composite" values in Syncope is indeed a nice use case.
Certainly, using String + JSON (de)serialization could work, but it
would require some considerable customization.
With Syncope 1.2.0 (SYNCOPE-131) the concept of "attribute template" is
introduced for membership and roles, e.g. when you define a membership
or role schema, such schema is not immediately available for all
memberships and roles (as it used to be up to Syncope 1.1.X), instead,
you will need to "enable" such schema for usage with a certain
membership / role (e.g. you will need to create an attribute template
those membership / role can instantiate).
An idea could be to implement the "composite values" use case above by
creating a TermsAndConditions role (with no attributes) and to define
several memberhisp schemas for all the items you need to store in the
composite value; finally, to enable such membership schemas only for the
new TermsAndConditions role.
WDYT?
Regards.
--
Francesco Chicchiriccò
Tirasa - Open Source Excellence
http://www.tirasa.net/
Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC
http://people.apache.org/~ilgrosso/