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