Open Source Content Management System

mRFC 0034: General Membership

  1. Revision history
  2. Background
  3. Member owner type
  4. Member type
  5. Membership type
  6. MidgardSchema definition
    1. Example
  7. Membership introspection
    1. Member owner type
    2. Member type
  8. Member creation and deletion

Revision history

2007-07-05 Created by Piotr Pokora

Background

Generic membership describes the basic way to group any MidgardSchema ( MgdSchema ) type ( class ) as an member of any other type registered in Midgard application. This mRFC also describes known Midgard functionality to group midgard_persons objects as a members of midgard_group one, and capabilities of membership introspection.

Member owner type

The type which groups other types. One type ( class ) can not group objects of the same type.

Member type

The type which belongs to owner group. One type ( class ) can not belongs to group of the same type.

Membership type

The type which holds required information ( like owner or member identifier ) for members and owners.

MidgardSchema definition

Membership information shall be defined in xml schema file as a type properties and attributes and particular introspection capabilities shall be implemented on API level. Membership shall be always defined for member type and never for owner type.

Minimal information should contain:

  • Member owner type name
  • Membership type name
  • Property and (or) field names which should be used for membership links

Example

<type name="midgard_person" table="person" parentfield="creator">
    <membership name="midgard_member" owner="midgard_group" >

Membership introspection

Membership implementation should allow to retrieve following information:

Member owner type

  • If type has members
  • What type name(s) are members of owner type
  • Fetch all members

Member type

  • If type is a member
  • What type is an owner of member type's

Member creation and deletion

In general, members should be created with particular membership type implementation, to avoid direct and random database access. Membership type should always create or delete member for given member and owner type.

Back

Designed by Nemein, hosted by Anykey