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