Version 3.2.3
This commit is contained in:
1 parent
ae5c01cc78
commit
78706903a2
2641 files changed
+228363
-201264
No files matched your search
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Principal class
|
||||
*
|
||||
* This class represents a user in the directory tree.
|
||||
* Many WebDAV specs require a user to show up in the directory
|
||||
* structure. The principal is defined in RFC 3744.
|
||||
*
|
||||
* @package Sabre
|
||||
* @subpackage DAV
|
||||
* @copyright Copyright (C) 2007-2010 Rooftop Solutions. All rights reserved.
|
||||
* @author Evert Pot (http://www.rooftopsolutions.nl/)
|
||||
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
|
||||
*/
|
||||
class Sabre_DAV_Auth_Principal extends Sabre_DAV_Node implements Sabre_DAV_IProperties {
|
||||
|
||||
/**
|
||||
* Full uri for this principal resource
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $principalUri;/*noLibHook*/
|
||||
|
||||
/**
|
||||
* Struct with principal information.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $principalProperties;
|
||||
|
||||
/**
|
||||
* Creates the principal object
|
||||
*
|
||||
* @param string $principalUri Full uri to the principal resource
|
||||
* @param array $principalProperties
|
||||
*/
|
||||
public function __construct($principalUri,array $principalProperties = array()) {
|
||||
|
||||
$this->principalUri = $principalUri;
|
||||
$this->principalProperties = $principalProperties;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the element
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getName() {
|
||||
|
||||
list(, $name) = Sabre_DAV_URLUtil::splitPath($this->principalUri);
|
||||
return $name;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the user
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getDisplayName() {
|
||||
|
||||
if (isset($this->principalProperties['{DAV:}displayname'])) {
|
||||
return $this->principalProperties['{DAV:}displayname'];
|
||||
} else {
|
||||
return $this->getName();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of properties
|
||||
*
|
||||
* @param array $requestedProperties
|
||||
* @return void
|
||||
*/
|
||||
public function getProperties($requestedProperties) {
|
||||
|
||||
if (!count($requestedProperties)) {
|
||||
|
||||
// If all properties were requested
|
||||
// we will only returns properties from this list
|
||||
$requestedProperties = array(
|
||||
'{DAV:}resourcetype',
|
||||
'{DAV:}displayname',
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
// We need to always return the resourcetype
|
||||
// This is a bug in the core server, but it is easier to do it this way for now
|
||||
$newProperties = array(
|
||||
'{DAV:}resourcetype' => new Sabre_DAV_Property_ResourceType('{DAV:}principal')
|
||||
);
|
||||
foreach($requestedProperties as $propName) switch($propName) {
|
||||
|
||||
case '{DAV:}alternate-URI-set' :
|
||||
if (isset($this->principalProperties['{http://sabredav.org/ns}email-address'])) {
|
||||
$href = 'mailto:' . $this->principalProperties['{http://sabredav.org/ns}email-address'];
|
||||
$newProperties[$propName] = new Sabre_DAV_Property_Href($href);
|
||||
} else {
|
||||
$newProperties[$propName] = null;
|
||||
}
|
||||
break;
|
||||
case '{DAV:}group-member-set' :
|
||||
case '{DAV:}group-membership' :
|
||||
$newProperties[$propName] = null;
|
||||
break;
|
||||
|
||||
case '{DAV:}principal-URL' :
|
||||
$newProperties[$propName] = new Sabre_DAV_Property_Href($this->principalUri);
|
||||
break;
|
||||
|
||||
case '{DAV:}displayname' :
|
||||
$newProperties[$propName] = $this->getDisplayName();
|
||||
break;
|
||||
|
||||
default :
|
||||
if (isset($this->principalProperties[$propName])) {
|
||||
$newProperties[$propName] = $this->principalProperties[$propName];
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return $newProperties;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates this principals properties.
|
||||
*
|
||||
* Currently this is not supported
|
||||
*
|
||||
* @param array $properties
|
||||
* @see Sabre_DAV_IProperties::updateProperties
|
||||
* @return bool|array
|
||||
*/
|
||||
public function updateProperties($properties) {
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user