xref: /plugin/davcal/principalBackendDokuwiki.php (revision cb71a62a32c9da24e9fd44e8cf1e3b9946e1dec2)
1a1a3b679SAndreas Boehler<?php
2a1a3b679SAndreas Boehler
3*cb71a62aSAndreas Boehler/**
4*cb71a62aSAndreas Boehler * Principal backend for DokuWiki - some functions are not implemented, as they
5*cb71a62aSAndreas Boehler * are currently not needed. Only the bare minimum is present.
6*cb71a62aSAndreas Boehler */
7*cb71a62aSAndreas Boehler
8a1a3b679SAndreas Boehlerclass DokuWikiSabrePrincipalBackend extends Sabre\DAVACL\PrincipalBackend\AbstractBackend {
9a1a3b679SAndreas Boehler
10a1a3b679SAndreas Boehler    public function getPrincipalsByPrefix($prefixPath)
11a1a3b679SAndreas Boehler    {
12a1a3b679SAndreas Boehler        global $auth;
13a1a3b679SAndreas Boehler        $users = $auth->retrieveUsers();
14a1a3b679SAndreas Boehler        $principals = array();
15a1a3b679SAndreas Boehler        foreach($users as $user => $info)
16a1a3b679SAndreas Boehler        {
17a1a3b679SAndreas Boehler            $principal = 'principals/'.$user;
18a1a3b679SAndreas Boehler            if(strpos($principal, $prefixPath) === 0)
19a1a3b679SAndreas Boehler                $data = $this->getPrincipalByPath($user);
20a1a3b679SAndreas Boehler                if(!empty($data))
21a1a3b679SAndreas Boehler                    $principals[] = $data;
22a1a3b679SAndreas Boehler        }
23a1a3b679SAndreas Boehler        return $principals;
24a1a3b679SAndreas Boehler    }
25a1a3b679SAndreas Boehler
26a1a3b679SAndreas Boehler    public function getPrincipalByPath($path)
27a1a3b679SAndreas Boehler    {
28a1a3b679SAndreas Boehler        global $auth;
29a1a3b679SAndreas Boehler        $user = str_replace('principals/', '', $path);
30a1a3b679SAndreas Boehler        $userData = $auth->getUserData($user);
31a1a3b679SAndreas Boehler        if($userData === false)
32a1a3b679SAndreas Boehler            return array();
33a1a3b679SAndreas Boehler
34a1a3b679SAndreas Boehler        return array('uri' => 'principals/'.$user,
35a1a3b679SAndreas Boehler            'email' => $userData['mail'],
36a1a3b679SAndreas Boehler            'displayname' => $userData['name'],
37a1a3b679SAndreas Boehler            'id' => 0);
38a1a3b679SAndreas Boehler    }
39a1a3b679SAndreas Boehler
40a1a3b679SAndreas Boehler    public function updatePrincipal($path, \Sabre\DAV\PropPatch $propPatch)
41a1a3b679SAndreas Boehler    {
42a1a3b679SAndreas Boehler
43a1a3b679SAndreas Boehler    }
44a1a3b679SAndreas Boehler
45a1a3b679SAndreas Boehler    public function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof')
46a1a3b679SAndreas Boehler    {
47a1a3b679SAndreas Boehler
48a1a3b679SAndreas Boehler    }
49a1a3b679SAndreas Boehler
50a1a3b679SAndreas Boehler
51a1a3b679SAndreas Boehler    public function getGroupMemberSet($principal)
52a1a3b679SAndreas Boehler    {
53a1a3b679SAndreas Boehler        return array();
54a1a3b679SAndreas Boehler    }
55a1a3b679SAndreas Boehler
56a1a3b679SAndreas Boehler    public function getGroupMemberShip($principal)
57a1a3b679SAndreas Boehler    {
58a1a3b679SAndreas Boehler        return array();
59a1a3b679SAndreas Boehler    }
60a1a3b679SAndreas Boehler
61a1a3b679SAndreas Boehler    public function setGroupMemberSet($principal, array $members)
62a1a3b679SAndreas Boehler    {
63a1a3b679SAndreas Boehler        throw new Exception\NotImplemented('Not Implemented');
64a1a3b679SAndreas Boehler    }
65a1a3b679SAndreas Boehler
66a1a3b679SAndreas Boehler}
67