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