. */ namespace SP\Account; use SP\Core\Session\Session; use SP\Core\Traits\InjectableTrait; use SP\DataModel\AccountData; use SP\DataModel\AccountExtData; use SP\DataModel\AccountHistoryData; defined('APP_ROOT') || die(); /** * Clase abstracta para definición de métodos comunes a las cuentas */ abstract class AccountBase { use InjectableTrait; /** * Tiempo de expiración de la caché de ACLde usuarios/grupos de cuentas */ const CACHE_EXPIRE_TIME = 300; /** * @var AccountData|AccountExtData|AccountHistoryData */ protected $accountData; /** @var Session */ protected $session; /** * @var int Id de la cuenta padre. */ private $accountParentId; /** * @var int Indica si la cuenta es un registro del histórico. */ private $accountIsHistory = 0; /** * Constructor * * @param AccountData $accountData */ public function __construct(AccountData $accountData = null) { $this->injectDependencies(); $this->accountData = (null !== $accountData) ? $accountData : new AccountData(); } /** * @param Session $session */ public function inject(Session $session) { $this->session = $session; } /** * @return int */ public function getAccountIsHistory() { return $this->accountIsHistory; } /** * @param int $accountIsHistory */ public function setAccountIsHistory($accountIsHistory) { $this->accountIsHistory = $accountIsHistory; } /** * @return int */ public function getAccountParentId() { return $this->accountParentId; } /** * @param int $accountParentId */ public function setAccountParentId($accountParentId) { $this->accountParentId = $accountParentId; } /** * @return AccountData|AccountExtData */ public function getAccountData() { return $this->accountData; } /** * Obtener los datos de una cuenta para mostrar la clave * Esta funcion realiza la consulta a la BBDD y devuelve los datos. */ protected abstract function getAccountPassData(); }