mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-30 16:40:28 +01:00
102 lines
2.1 KiB
PHP
102 lines
2.1 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Sabre\CalDAV\Notifications;
|
||
|
|
||
|
use Sabre\CalDAV;
|
||
|
use Sabre\DAV;
|
||
|
use Sabre\DAVACL;
|
||
|
|
||
|
/**
|
||
|
* This node represents a list of notifications.
|
||
|
*
|
||
|
* It provides no additional functionality, but you must implement this
|
||
|
* interface to allow the Notifications plugin to mark the collection
|
||
|
* as a notifications collection.
|
||
|
*
|
||
|
* This collection should only return Sabre\CalDAV\Notifications\INode nodes as
|
||
|
* its children.
|
||
|
*
|
||
|
* @copyright Copyright (C) fruux GmbH (https://fruux.com/)
|
||
|
* @author Evert Pot (http://evertpot.com/)
|
||
|
* @license http://sabre.io/license/ Modified BSD License
|
||
|
*/
|
||
|
class Collection extends DAV\Collection implements ICollection, DAVACL\IACL {
|
||
|
|
||
|
use DAVACL\ACLTrait;
|
||
|
|
||
|
/**
|
||
|
* The notification backend
|
||
|
*
|
||
|
* @var CalDAV\Backend\NotificationSupport
|
||
|
*/
|
||
|
protected $caldavBackend;
|
||
|
|
||
|
/**
|
||
|
* Principal uri
|
||
|
*
|
||
|
* @var string
|
||
|
*/
|
||
|
protected $principalUri;
|
||
|
|
||
|
/**
|
||
|
* Constructor
|
||
|
*
|
||
|
* @param CalDAV\Backend\NotificationSupport $caldavBackend
|
||
|
* @param string $principalUri
|
||
|
*/
|
||
|
function __construct(CalDAV\Backend\NotificationSupport $caldavBackend, $principalUri) {
|
||
|
|
||
|
$this->caldavBackend = $caldavBackend;
|
||
|
$this->principalUri = $principalUri;
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns all notifications for a principal
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
function getChildren() {
|
||
|
|
||
|
$children = [];
|
||
|
$notifications = $this->caldavBackend->getNotificationsForPrincipal($this->principalUri);
|
||
|
|
||
|
foreach ($notifications as $notification) {
|
||
|
|
||
|
$children[] = new Node(
|
||
|
$this->caldavBackend,
|
||
|
$this->principalUri,
|
||
|
$notification
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $children;
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the name of this object
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
function getName() {
|
||
|
|
||
|
return 'notifications';
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the owner principal
|
||
|
*
|
||
|
* This must be a url to a principal, or null if there's no owner
|
||
|
*
|
||
|
* @return string|null
|
||
|
*/
|
||
|
function getOwner() {
|
||
|
|
||
|
return $this->principalUri;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|