<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Caldav for -system- shares</title> 
  <pubDate>Fri, 10 Apr 2026 09:04:31 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/12342</link> 
  <atom:link rel="self" type="application/rss+xml" title="Caldav for -system- shares" href="https://bugs.horde.org/ticket/12342/rss" /> 
  <description>Caldav for -system- shares</description> 
 
   
   
  <item> 
   <title>Hi, I&#039;m currently at B1 hack week. I noticed the caldav inte</title> 
   <description>Hi, I&#039;m currently at B1 hack week. I noticed the caldav interface does not support -system- shares.
Is there any technical intricacy preventing this?
Otherwise I&#039;d go for a simple patch tonight.</description> 
   <pubDate>Wed, 12 Jun 2013 08:57:39 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t78636</link> 
  </item> 
   
  <item> 
   <title>Bug #12325</title> 
   <description>Bug #12325</description> 
   <pubDate>Wed, 12 Jun 2013 21:36:28 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t78687</link> 
  </item> 
   
  <item> 
   <title>Not exactly. There&#039;s more to Caldav not knowing -system-.
</title> 
   <description>Not exactly. There&#039;s more to Caldav not knowing -system-.

I&#039;ve been looking around for where to patch in -system- support for Dav
shares. (kronolith, nag, turba).

The Horde_Dav system expects -system- to be a user existing in
Horde_Auth and having an Identity. I&#039;m not sure if I should provide a
static fake identity and always have a user -system- in the dav library
or if I should promote -system- to a first class special user. I&#039;m more
leaning to the former (less invasive).

All the converting between shares owned by &quot;&quot; (system) and the -system-
tag seems already to be handled by kronolith/nag themselves in browse()
and friends.</description> 
   <pubDate>Fri, 05 Jul 2013 14:14:33 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79148</link> 
  </item> 
   
  <item> 
   <title>On 06.07.2013 07:05, Ralf Lang wrote:&gt; On 05.07.2013 17:32, </title> 
   <description>On 06.07.2013 07:05, Ralf Lang wrote:&gt; On 05.07.2013 17:32, Jan Schneider wrote:
&gt;&gt;
&gt;&gt; Zitat von Ralf Lang &lt;lang@b1-systems.de&gt;:
&gt;&gt;
&gt;&gt;&gt; If&#039;ve been looking around for where to patch in -system- support for Dav
&gt;&gt;&gt; shares. (kronolith, nag, turban).
&gt;&gt;&gt;
&gt;&gt;&gt; The Horde_Dav system expects -system- to be a user existing in
&gt;&gt;&gt; Horde_Auth and having an Identity. I&#039;m not sure if I should provide a
&gt;&gt;&gt; static fake identity and always have a user -system- in the dav library
&gt;&gt;&gt; or if I should promote -system- to a first class special user. I&#039;m more
&gt;&gt;&gt; leaning to the former (less invasive).
&gt;&gt;
&gt;&gt; Can you point to the code where this is required? Generally the former
&gt;&gt; sounds indeed like a better solution.
&gt; 
&gt; I did a quick draft yesterday
&gt; 
&gt; 1) Horde_Dav_Principals::getPrincipalsByPrefix
&gt; - $users = array(&#039;-system-&#039;)
&gt; + $users = array(&#039;-system-&#039;)
&gt; 
&gt; 2) Horde_Dav_Principals::getPrincipalsByPath
&gt; --        if ($this-&gt;_auth-&gt;hasCapability(&#039;list&#039;) &amp;&amp;
&gt; --            !$this-&gt;_auth-&gt;exists($user)) {
&gt; ++       if ($this-&gt;_auth-&gt;hasCapability(&#039;list&#039;) &amp;&amp;
&gt; ++            !$this-&gt;_auth-&gt;exists($user) &amp;&amp;
&gt; ++            $user != &#039;-system-&#039;) {
&gt; 
&gt; 
&gt; 3) Horde_Dav_Principals::_getUserInfo
&gt; {
&gt; ++  if ($user == &#039;-system-&#039;) {
&gt; ++      return array(
&gt; ++          &#039;uri&#039; =&gt; &#039;principals/-system-&#039;,
&gt; ++          &#039;{DAV:}displayname&#039; =&gt; &#039;-systems-&#039;,
&gt; ++          &#039;{http://sabredav.org/ns}email-address&#039; =&gt; &#039;&#039;
&gt; ++	/* Can we leave email empty, set something static or
&gt; ++           pull something from a fake identity? */
&gt; ++  }
&gt;     $identitiy = $this-&gt;_identities-&gt;create(user);
&gt; 
&gt; This was enough for making system appear and list credentials under it
&gt; (together with the kronolith patch from
&gt; http://bugs.horde.org/ticket/12325 which was for WebDAV -- may need to
&gt; amend callDavFoo too to make it actually crud events from calendars )

4) Horde_Dav_Principals

Give access to the calendars/-system- and principals/-system- level to all users. This probably needs more configuration. 


    public function getGroupMembership($principal)
    {
        // All users should have access to the -system- share.
        // Needs reimplementation when horde finally implements group acls as share groups
        return array(&#039;principals/-system-&#039;);
    }

5) patch Kronolith_Application::davGetCollections to user &#039;&#039; in query but &#039;-system-&#039; in building structures.
We probably need this in nag to

    public function davGetCollections($user)
    {
++        $queryUser = $user == &#039;-system-&#039; ? &#039;&#039; : $user;

...

            -&gt;listShares(
                $GLOBALS[&#039;registry&#039;]-&gt;getAuth(),
                array(&#039;perm&#039; =&gt; Horde_Perms::SHOW,
--                        &#039;attributes&#039; =&gt; $user)
++                      &#039;attributes&#039; =&gt; $queryUser)
            );

6) Same show for nag

    public function davGetCollections($user)
    {
++    $queryUser = $user == &#039;-system-&#039; ? &#039;&#039; : $user;
        $shares = $GLOBALS[&#039;nag_shares&#039;]
            -&gt;listShares(
                $GLOBALS[&#039;registry&#039;]-&gt;getAuth(),
                array(&#039;perm&#039; =&gt; Horde_Perms::SHOW,
--                      &#039;attributes&#039; =&gt; $user)
++                    &#039;attributes&#039; =&gt; $queryUser)
            );


TODO: either implement filters for listSystemShares or add a systemShares filter option for listShares. listShares with permission::SHOW and empty user may return unrelated non-system 3rd party shares the user has SHOW access for.

Next: push a patch to master.</description> 
   <pubDate>Thu, 11 Jul 2013 11:29:08 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79234</link> 
  </item> 
   
  <item> 
   <title>
&gt; TODO: either implement filters for listSystemShares or a</title> 
   <description>
&gt; TODO: either implement filters for listSystemShares or add a 
&gt; systemShares filter option for listShares. listShares with 
&gt; permission::SHOW and empty user may return unrelated non-system 3rd 
&gt; party shares the user has SHOW access for.

Workaround: after fetching the listShares, filter if share has an owner:

        foreach ($shares as $id =&gt; $share) {
++            if (empty($queryUser) &amp;&amp; $share-&gt;get(&#039;owner&#039;)) {
++                continue;
++            }



&gt;
&gt; Next: push a patch to master.
</description> 
   <pubDate>Thu, 11 Jul 2013 11:37:25 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79235</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in Git (master):

commit 1e332785107f</title> 
   <description>Changes have been made in Git (master):

commit 1e332785107f7373a987145eafdae8cb3fa30a51
Author: Ralf Lang &lt;lang@b1-systems.de&gt;
Date:   Thu Jul 11 15:03:30 2013 +0300

    Add CalDAV Support for system shares in nag and kronolith for Request #12342.
    This does not address CardDAV and Turba yet, but it is probably very similar.
    Note I have not a very deep understanding of CardDAV or CalDAV protocol.

 framework/Dav/lib/Horde/Dav/Principals.php |   19 ++++++++++++++++---
 framework/Dav/package.xml                  |    2 ++
 kronolith/docs/CHANGES                     |    1 +
 kronolith/lib/Application.php              |    6 +++++-
 kronolith/package.xml                      |    2 ++
 nag/docs/CHANGES                           |    1 +
 nag/lib/Application.php                    |    6 +++++-
 nag/package.xml                            |    2 ++
 8 files changed, 34 insertions(+), 5 deletions(-)

http://git.horde.org/horde-git/-/commit/1e332785107f7373a987145eafdae8cb3fa30a51</description> 
   <pubDate>Thu, 11 Jul 2013 12:05:31 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79236</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in Git (master):

commit 6c47f32326f8</title> 
   <description>Changes have been made in Git (master):

commit 6c47f32326f85c4ce1b9339862015b5f29fd7e0b
Author: Jan Schneider &lt;jan@horde.org&gt;
Date:   Tue Jul 16 14:56:35 2013 +0200

    [jan] Display CalDAV URL of system calendars and tasklists (Bug #12342).

 kronolith/docs/CHANGES                    |    1 +
 kronolith/js/kronolith.js                 |    4 +-
 kronolith/lib/Calendar/External/Tasks.php |   10 +++-----
 kronolith/lib/Calendar/Internal.php       |   10 +++-----
 kronolith/lib/Form/EditCalendar.php       |   30 ++++++++++++++--------------
 kronolith/package.xml                     |    2 +
 kronolith/templates/chunks/calendar.php   |    4 +-
 7 files changed, 30 insertions(+), 31 deletions(-)

http://git.horde.org/horde-git/-/commit/6c47f32326f85c4ce1b9339862015b5f29fd7e0b</description> 
   <pubDate>Tue, 16 Jul 2013 13:46:29 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79349</link> 
  </item> 
   
  <item> 
   <title>Changes have been made in Git (master):

commit 6d75378fdaa2</title> 
   <description>Changes have been made in Git (master):

commit 6d75378fdaa271b8952e9819f42415cbac9e5f4c
Author: Jan Schneider &lt;jan@horde.org&gt;
Date:   Tue Jul 16 15:16:26 2013 +0200

    [jan] Display CalDAV URL of system tasklists (Bug #12342).

 nag/docs/CHANGES              |    1 +
 nag/lib/Form/EditTaskList.php |   30 +++++++++++++++---------------
 nag/package.xml               |    2 ++
 3 files changed, 18 insertions(+), 15 deletions(-)

http://git.horde.org/horde-git/-/commit/6d75378fdaa271b8952e9819f42415cbac9e5f4c</description> 
   <pubDate>Tue, 16 Jul 2013 13:46:33 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/12342#t79350</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
