diff options
Diffstat (limited to 'comm/calendar/base/public/calICalendarACLManager.idl')
-rw-r--r-- | comm/calendar/base/public/calICalendarACLManager.idl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/comm/calendar/base/public/calICalendarACLManager.idl b/comm/calendar/base/public/calICalendarACLManager.idl new file mode 100644 index 0000000000..21499fa93e --- /dev/null +++ b/comm/calendar/base/public/calICalendarACLManager.idl @@ -0,0 +1,86 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface nsIMsgIdentity; +interface nsIURI; + +interface calICalendar; +interface calIItemBase; +interface calIOperationListener; + +interface calIItemACLEntry; + +/** + */ +[scriptable, uuid(a64bd8a0-e9f0-4f64-928a-1c98861e4703)] +interface calICalendarACLManager : nsISupports +{ + /* Gets the calICalendarACLEntry of the current user for the specified + calendar. */ + void getCalendarEntry(in calICalendar aCalendar, + in calIOperationListener aListener); + + /* Gets the calIItemACLEntry of the current user for the specified + calendar item. Depending on the implementation, each item can have + different permissions based on specific attributes. + (TODO: should be made asynchronous one day) */ + calIItemACLEntry getItemEntry(in calIItemBase aItem); +}; + +[scriptable, uuid(f3da7954-52a4-45a9-bd7d-96c518133d0c)] +interface calICalendarACLEntry : nsISupports +{ + /* The calICalendarACLManager instance that generated this entry. */ + readonly attribute calICalendarACLManager aclManager; + + /* Whether the underlying calendar does have access control. */ + readonly attribute boolean hasAccessControl; + + /* Whether the user accessing the calendar is its owner. */ + readonly attribute boolean userIsOwner; + + /* Whether the user accessing the calendar can add items to it. */ + readonly attribute boolean userCanAddItems; + + /* Whether the user accessing the calendar can remove items from it. */ + readonly attribute boolean userCanDeleteItems; + + /* Returns the list of user ids matching the user accessing the + calendar. */ + Array<AString> getUserAddresses(); + + /* Returns the list of instantiated identities for the user accessing the + calendar. */ + Array<nsIMsgIdentity> getUserIdentities(); + /* Returns the list of instantiated identities for the user representing + the calendar owner. */ + Array<nsIMsgIdentity> getOwnerIdentities(); + + /* Helper method that forces a cleanup of any cache and a reload of the + current entry. + (TODO: should be made asynchronous one day) */ + void refresh(); +}; + +[scriptable, uuid(4d0b7ced-8c57-4efa-87e7-8dd5b7481312)] +interface calIItemACLEntry : nsISupports +{ + /* The parent calICalendarACLEntry instance. */ + readonly attribute calICalendarACLEntry calendarEntry; + + /* Whether the active user can fully modify the item. */ + readonly attribute boolean userCanModify; + + /* Whether the active user can respond to this item, if it is an invitation. */ + readonly attribute boolean userCanRespond; + + /* Whether the active user can view all the item properties. */ + readonly attribute boolean userCanViewAll; + + /* Whether the active user can only see when this item occurs without + knowing any details. */ + readonly attribute boolean userCanViewDateAndTime; +}; |