%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/Principal/Backend/ |
| Current File : //www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/Principal/Backend/PDO.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
namespace afterlogic\DAV\Principal\Backend;
use afterlogic\DAV\Constants;
class PDO extends \Sabre\DAVACL\PrincipalBackend\PDO
{
/**
* Sets up the backend.
*/
public function __construct()
{
$oPdo = \CApi::GetPDO();
$dbPrefix = \CApi::GetSettings()->GetConf('Common/DBPrefix');
parent::__construct($oPdo, $dbPrefix.Constants::T_PRINCIPALS, $dbPrefix.Constants::T_GROUPMEMBERS);
}
/**
* @param string $uri
* @return bool
*/
public function existsPrincipal($uri) {
$stmt = $this->pdo->prepare('SELECT count(id) FROM '.$this->tableName.' WHERE uri = ?;');
$stmt->execute(array($uri));
$rowCount = $stmt->fetchColumn();
$stmt->closeCursor();
return ((int)$rowCount !== 0);
}
/**
* @param string $uri
* @param string $email
* @param string $displayname
* @return void
*/
public function createPrincipal($uri, $email = '', $displayname = '') {
$stmt = $this->pdo->prepare('INSERT INTO '.$this->tableName.' (uri, email, displayname) VALUES (?, ?, ?);');
$stmt->execute(array($uri, $email, $displayname));
}
/**
* @param string $uri
* @return void
*/
public function deletePrincipal($uri) {
$stmt = $this->pdo->prepare('DELETE FROM '.$this->tableName.' WHERE uri = ?;');
$stmt->execute(array($uri));
}
/**
* @param string $sEmail
* @return string
*/
public function getPrincipalByEmail($sEmail)
{
$sUri = \afterlogic\DAV\Constants::PRINCIPALS_PREFIX . '/' .$sEmail;
if (!$this->existsPrincipal($sUri))
{
$this->createPrincipal($sUri, $sEmail, $sEmail);
}
return $sEmail;
}
}