Personal Client Access Control

Version: Bedework 3.5

Access to calendars and events for a personal client user is represented in the XML as follows:

<currentAccess>
  <current-user-privilege-set>
    <privilege><all/></privilege>
    <privilege><read/></privilege>
    <privilege><read-acl/></privilege>
    <privilege><read-current-user-privilege-set/></privilege>
    <privilege><read-free-busy/></privilege>
    <privilege><write/></privilege>
    <privilege><write-acl/></privilege>
    <privilege><write-properties/></privilege>
    <privilege><write-content/></privilege>
    <privilege><bind/></privilege>
    <privilege><unbind/></privilege>
    <privilege><unlock/></privilege>
  </current-user-privilege-set>
</currentAccess>

These flags are used in the interface to reveal or hide the actions a user can take on an event or calendar.

Setting access on events and calendars is done through a form in the edit calendar or edit event pages. The form accepts a "how" request parameter that accepts the following values:

/** Single char encoding
   */
  public final static char[] privEncoding = {
    'A',     // privAll

    'R',     // privRead
    'r',     // privReadAcl
    'P',     // privReadCurrentUserPrivilegeSet
    'F',     // privReadFreeBusy

    'W',     // privWrite
    'a',     // privWriteAcl
    'p',     // privWriteProperties
    'c',     // privWriteContent
    'b',     // privBind
    'u',     // privUnbind

    'U',     // privUnlock

    'N',     // privNone
  };