. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Class UsersPreferences para la gestion de las preferencias de usuarios * * @package SP */ class UserPreferences { /** * @var int */ private $_id = 0; /** * Usar autentificación en 2 pasos * * @var bool */ private $_use2Fa = false; /** * Obtener las preferencas de un usuario * * @param $id int El id del usuario * @return bool|UserPreferences * @throws SPException */ public static function getPreferences($id) { $query = 'SELECT user_preferences FROM usrData WHERE user_id = :id LIMIT 1'; $data['id'] = $id; $queryRes = DB::getResults($query, __FUNCTION__, $data); if ($queryRes === false) { return new UserPreferences(); // throw new SPException(SPException::SP_WARNING, _('Datos de preferencias incorrectos')); } $preferences = unserialize($queryRes->user_preferences); if (!$preferences instanceof UserPreferences) { return new UserPreferences(); } return $preferences; } /** * @return boolean */ public function isUse2Fa() { return $this->_use2Fa; } /** * @param boolean $use2Fa */ public function setUse2Fa($use2Fa) { $this->_use2Fa = $use2Fa; } /** * Modificar las preferencias de un usuario * * @return bool */ public function updatePreferences() { $query = 'UPDATE usrData SET ' . 'user_preferences = :preferences ' . 'WHERE user_id = :id LIMIT 1'; $data['id'] = $this->getId(); $data['preferences'] = serialize($this); if (DB::getQuery($query, __FUNCTION__, $data) === false) { return false; } return true; } /** * @return int */ public function getId() { return $this->_id; } /** * @param int $id */ public function setId($id) { $this->_id = $id; } }