* @copyright Copyright © 2008 Peter Adams * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 * @category owa * @package owa * @version $Revision$ * @since owa 1.0.0 */ class owa_serviceUser extends owa_base { var $user; var $capabilities = array(); var $preferences = array(); var $is_authenticated; function __construct() { //parent::__construct(); $this->user = owa_coreApi::entityFactory('base.user'); } function load($user_id) { $this->user->load($user_id, 'user_id'); $this->loadRelatedUserData(); return; } function loadRelatedUserData() { $this->capabilities = $this->getCapabilities($this->user->get('role')); $this->preferences = $this->getPreferences($this->user->get('user_id')); return; } function getCapabilities($role) { $caps = owa_coreAPI::getSetting('base', 'capabilities'); if (array_key_exists($role, $caps)) { return $caps[$role]; } else { return array(); } } function getPreferences($user_id) { return false; } function getRole() { return $this->user->get('role'); } function setRole($value) { $this->user->set('role', $value); $this->capabilities = $this->getCapabilities($value); } function setUserData($name, $value) { $this->user->set($name, $value); return; } function getUserData($name) { return $this->user->get($name); } function isCapable($cap) { //owa_coreAPI::debug(print_r($this->user->getProperties(), true)); owa_coreAPI::debug("cap ".$cap); // just in case there is no cap passed if (!empty($cap)) { //adding @ here as is_array throws warning that an empty array is not the right data type! if (in_array($cap, $this->capabilities)) { return true; } else { return false; } } else { return true; } } // mark the user as authenticated and populate their capabilities function setAuthStatus($bool) { $this->is_authenticated = true; return; } function isAuthenticated() { return $this->is_authenticated; } function loadNewUserByObject($obj) { $this->user = $obj; //$this->current_user->loadNewUserByObject($obj); $this->loadRelatedUserData(); return; } function loadNewUserById($id) { // get a user object // load it // $this->loadNewUserByObject($obj); return; } } ?>