114 lines
2.0 KiB
PHP
114 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* This file is a part of Xen Orchestra Server.
|
|
*
|
|
* Xen Orchestra Server is free software: you can redistribute it
|
|
* and/or modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation, either version 3 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* Xen Orchestra Server is distributed in the hope that it will be
|
|
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
|
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with Xen Orchestra Server. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*
|
|
* @author Julien Fontanet <julien.fontanet@vates.fr>
|
|
* @license http://www.gnu.org/licenses/gpl-3.0-standalone.html GPLv3
|
|
*
|
|
* @package Xen Orchestra Server
|
|
*/
|
|
|
|
namespace Model;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
final class Users
|
|
{
|
|
/**
|
|
*
|
|
*/
|
|
function __construct(\Rekodi\Manager $manager)
|
|
{
|
|
$this->_manager = $manager;
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
function delete($id)
|
|
{
|
|
$n = $this->_manager->delete(array('id' => $id));
|
|
|
|
if ($n !== 1)
|
|
{
|
|
trigger_error(
|
|
'unexpected number of deleted users ('.$n.')',
|
|
E_USER_ERROR
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param string $id
|
|
* @param mixed $default
|
|
*
|
|
* @return User
|
|
*/
|
|
function get($id, $default = 'fatal error')
|
|
{
|
|
$users = $this->_manager->get(array('id' => $id));
|
|
|
|
if ($users)
|
|
{
|
|
return $users[0];
|
|
}
|
|
|
|
if (func_num_args() >= 2)
|
|
{
|
|
return $default;
|
|
}
|
|
|
|
trigger_error(
|
|
'no such user (id = '.$id.')',
|
|
E_USER_ERROR
|
|
);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
function save(User $user)
|
|
{
|
|
if (!isset($user->id))
|
|
{
|
|
|
|
// @todo Fills the user with its generated id.
|
|
|
|
return;
|
|
}
|
|
|
|
$n = $this->_manager->update(
|
|
$user->getOriginals(),
|
|
$user->getDirty()
|
|
);
|
|
|
|
if ($n !== 1)
|
|
{
|
|
trigger_error(
|
|
'unexpected number of updated users ('.$n.')',
|
|
E_USER_ERROR
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @var \Rekodi\Manager
|
|
*/
|
|
private $_manager;
|
|
}
|