Jivka: looks like a good plan. Here's a few notes about the points you make...
1. Using a real group for "public" has the disadvantage that we would have to
keep it up to date with all current users. This would be an onerous task.
Instead, I think that metacat should treat the "public" principal as a special,
virtual group -- all LDAP user's would by default be a member of the "virtual"
group public, no maintenance needed.
2. I don't understand the goal of your point #2. If it is simply to
distinguish between users from different LDAP servers, I think that is best
accomplished by clients passing the entire distinguished name to metacat.
Metcat can then use the DN to determine the subtree for that user, and therefore
which LDAP server should be used for authentication (based on a redirect in the
LDAP tree). We need to make this change (pass the whole DN) in Metacat and in
Morpho.
3. Multiple group membership is needed.
4. The new EML 2.0 eml-access module depends on triples to do the association.
Metacat will need to read the access rules by parsing the triples first.
5. I don't understand point 5 at all.
6. Although we need to enable multiple owners for a document, I'm not convinced
it needs to be in a separate table. If the submitter and all responsible
parties with a role code of 'owner' are granted 'all' permission (stored in the
xml_access table), then they are effectively owners. I actually think this
should be the job of the client to submit an appropriate access policy, rather
than have the server enforce some arbitrary rule. So, I guess I would say to
leave Metacat as is, and make any needed changes in Morpho.
7. There are several new format differences in the new eml-access that will
need to be accomodated.