• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/principalshandler.php
  • Класс: CDavPrincipalsHandler
  • Вызов: CDavPrincipalsHandler::AddUser
protected function AddUser(&$arResources, $siteId, $arUser)
{
	$request = $this->groupdav->GetRequest();

	$resource = new CDavResource('/principals/user/'.$arUser['CODE'].'/');
	$resource->AddProperty('displayname', $arUser["NAME"]);
	$resource->AddProperty('getetag', $this->GetETag($arUser));
	$resource->AddProperty('resourcetype', array(array('principal', '', CDavGroupDav::DAV)));
	$resource->AddProperty('alternate-URI-set', array(array('href', 'MAILTO:'.$arUser['EMAIL'])));
	$resource->AddProperty('principal-URL', array(array('href', $request->GetBaseUri().'/principals/user/'.$arUser['CODE'].'/')));
	$resource->AddProperty('calendar-home-set', array(array('href', $request->GetBaseUri()."/".$siteId."/".$arUser["CODE"]."/calendar/")), CDavGroupDav::CALDAV);
	$resource->AddProperty('calendar-user-address-set',
		array(
			array('href', 'MAILTO:'.$arUser['EMAIL']),
			array('href', $request->GetBaseUri().'/principals/user/'.$arUser['CODE'].'/'),
			array('href', 'urn:uuid:'.$arUser['ID'])
		),
		CDavGroupDav::CALDAV
	);
	$resource->AddProperty('schedule-outbox-URL', array(array('href', $request->GetBaseUri()."/".$siteId."/".$arUser["CODE"]."/calendar/", CDavGroupDav::DAV)), CDavGroupDav::CALDAV);
	$resource->AddProperty('email-address-set', array(array('email-address', $arUser['EMAIL'], CDavGroupDav::CALENDARSERVER)), CDavGroupDav::CALENDARSERVER);
	$resource->AddProperty('last-name', $arUser['LAST_NAME'], CDavGroupDav::CALENDARSERVER);
	$resource->AddProperty('first-name', $arUser['FIRST_NAME'], CDavGroupDav::CALENDARSERVER);
	$resource->AddProperty('record-type', 'user', CDavGroupDav::CALENDARSERVER);
	$resource->AddProperty('calendar-user-type', 'INDIVIDUAL', CDavGroupDav::CALDAV);
	$resource->AddProperty('addressbook-home-set', array(array('href', $request->GetBaseUri()."/".$siteId."/".$arUser["CODE"]."/" . "addressbook/")), CDavGroupDav::CARDDAV);
	$resource->AddProperty('supported-report-set',
		array('supported-report',
			array(CDavResource::MakeProp('report', array(CDavResource::MakeProp('acl-principal-prop-set', ''))))
		)
	);

	//$memberships = array();
	//$arUserGroups = CUser::GetUserGroup($arUser["ID"]);
	//foreach ($arUserGroups as $groupId)
	//	$memberships[] = CDavWebDav::MakeProp('href', $this->baseUri.'/principals/groups/'.$groupId);
	//$resource->AddProperty('group-member-ship', $memberships);

	$arResources[] = $resource;
}