summaryrefslogtreecommitdiffstats
path: root/comm/calendar/base/public/calICalendarACLManager.idl
diff options
context:
space:
mode:
Diffstat (limited to 'comm/calendar/base/public/calICalendarACLManager.idl')
-rw-r--r--comm/calendar/base/public/calICalendarACLManager.idl86
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;
+};