【问题标题】:is there support to mark events as read-only either in CalDAV or ical (icalendar)是否支持在 CalDAV 或 ical (icalendar) 中将事件标记为只读
【发布时间】:2012-08-17 06:16:59
【问题描述】:
我搜索了 iCalendar 规范 https://www.rfc-editor.org/rfc/rfc5545 和 CalDAV 规范 https://www.rfc-editor.org/rfc/rfc4791 寻找有关如何将从我们的日历服务器发送到 iPhone 的事件标记为“只读”(不可编辑)的见解当 iPhone 使用 CalDAV 协议连接到我们的服务器时。但答案不是突然出现在我身上。
换句话说,iPhone 用户正在通过 CalDAV 帐户接收一系列事件。通常,他们可以编辑任何这些事件。但是,我们希望能够将一些标记为只读。我知道我们可以使用 iPhone 的功能添加 .ics 订阅帐户,但我们并不想这样做,因为它需要 iPhone 用户同时添加 CalDAV 和 .ics 订阅帐户。
我们使用 SabreDAV 作为我们的 CalDAV 服务器。
我的技术同事要求我对此进行调查,因此我向 Stackoverflow 社区寻求帮助。
任何帮助或提示将不胜感激。
【问题讨论】:
标签:
ios
webdav
icalendar
caldav
rfc5545
【解决方案1】:
一旦您将文件发送给用户,就由他们来处理......
我想说没有办法保护约会/活动不被修改。
但是,您可以自己托管整个日历,如果用户有 Outlook 或类似设备,则可以订阅该 RSS 源。
这是一个想法……但是为了保护你发送给他们的东西?高度怀疑。请放心,他们只是在修改他们的数据副本,而不是源数据本身。
【解决方案2】:
1/您可以使用共享日历并以只读方式邀请用户。但是,用户将有 2 个日历:它自己的日历和共享日历。尽管如此,它仍然是同一个 CalDAV 帐户,因此用户只需单击一个复选框即可选择加入。
2/我没有尝试过 ACL,但也许你可以玩一下。
3/ 作为最后的手段,您可以编辑Sabre\CalDAV\Backend\PDO::updateCalendarObject 和deleteCalendarObject 并添加您的条件。但在这一点上这是非常低级的(这个类甚至不知道谁在做改变)。不推荐。