diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 52958270b..48d8a1993 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -388,7 +388,7 @@ class Context else { self::set('is_logged', false); - self::set('logged_info', Rhymix\Framework\Session::getMemberInfo()); + self::set('logged_info', false); } } diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php index 5cc57ecce..781d234fc 100644 --- a/classes/module/ModuleObject.class.php +++ b/classes/module/ModuleObject.class.php @@ -85,7 +85,7 @@ class ModuleObject extends BaseObject // Populate default properties. $obj->setModulePath($module_path); $obj->setModule($module); - $obj->user = Context::get('logged_info') ?: new Rhymix\Framework\Helpers\SessionHelper; + $obj->user = Context::get('logged_info'); if(!($obj->user instanceof Rhymix\Framework\Helpers\SessionHelper)) { $obj->user = Rhymix\Framework\Session::getMemberInfo(); @@ -248,7 +248,7 @@ class ModuleObject extends BaseObject */ public function setPrivileges() { - if(Context::get('logged_info')->is_admin !== 'Y') + if(!$this->user->isAdmin()) { // Get privileges(granted) information for target module by of module.xml if(($permission = $this->xml_info->action->{$this->act}->permission) && $permission->check_var) @@ -296,7 +296,7 @@ class ModuleObject extends BaseObject if(!isset($grant)) { // Get privileges(granted) information of current user for current module - $grant = ModuleModel::getInstance()->getGrant($this->module_info, Context::get('logged_info'), $this->xml_info); + $grant = ModuleModel::getInstance()->getGrant($this->module_info, $this->user, $this->xml_info); // Check permission if($this->checkPermission($grant) !== true) @@ -331,7 +331,7 @@ class ModuleObject extends BaseObject // Get logged-in member information if(!$member_info) { - $member_info = Context::get('logged_info'); + $member_info = $this->user; } // Get privileges(granted) information of the member for current module diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index e3415dea6..df0698afb 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -36,7 +36,7 @@ class TemplateHandler ini_set('pcre.jit', false); $this->config = new stdClass; $this->handler_mtime = filemtime(__FILE__); - $this->user = Rhymix\Framework\Session::getMemberInfo() ?: new Rhymix\Framework\Helpers\SessionHelper; + $this->user = Rhymix\Framework\Session::getMemberInfo(); } /** diff --git a/common/framework/helpers/sessionhelper.php b/common/framework/helpers/sessionhelper.php index 5be05d8d3..e78dbf8fc 100644 --- a/common/framework/helpers/sessionhelper.php +++ b/common/framework/helpers/sessionhelper.php @@ -21,7 +21,7 @@ class SessionHelper * @param int $member_srl (optional) * @return void */ - public function __construct($member_srl = null) + public function __construct($member_srl = 0) { // Load member information. $member_srl = intval($member_srl); diff --git a/common/framework/session.php b/common/framework/session.php index 123ef476a..509e31a39 100644 --- a/common/framework/session.php +++ b/common/framework/session.php @@ -734,7 +734,7 @@ class Session * This method returns an object, or false if nobody is logged in. * * @param bool $refresh - * @return object|false + * @return Helpers\SessionHelper */ public static function getMemberInfo($refresh = false) { @@ -742,7 +742,7 @@ class Session $member_srl = self::getMemberSrl(); if (!$member_srl) { - return false; + return new Helpers\SessionHelper(0); } // Create a member info object. @@ -752,7 +752,7 @@ class Session } // Return the member info object. - return self::$_member_info->member_srl ? self::$_member_info : false; + return self::$_member_info; } /** diff --git a/tests/unit/framework/SessionTest.php b/tests/unit/framework/SessionTest.php index 5c104ffc1..9e87c03c0 100644 --- a/tests/unit/framework/SessionTest.php +++ b/tests/unit/framework/SessionTest.php @@ -282,16 +282,16 @@ class SessionTest extends \Codeception\TestCase\Test public function testGetMemberInfo() { @Rhymix\Framework\Session::start(); - $this->assertEquals(false, Rhymix\Framework\Session::getMemberInfo()); + $this->assertEquals(new Rhymix\Framework\Helpers\SessionHelper(), Rhymix\Framework\Session::getMemberInfo()); Rhymix\Framework\Session::login(42); - $this->assertEquals(false, Rhymix\Framework\Session::getMemberInfo()); + $this->assertEquals(new Rhymix\Framework\Helpers\SessionHelper(), Rhymix\Framework\Session::getMemberInfo()); Rhymix\Framework\Session::setMemberInfo((object)array('member_srl' => 42)); $this->assertEquals((object)array('member_srl' => 42), Rhymix\Framework\Session::getMemberInfo()); Rhymix\Framework\Session::setMemberInfo((object)array('member_srl' => 99, 'is_admin' => 'Y')); - $this->assertEquals(false, Rhymix\Framework\Session::getMemberInfo()); + $this->assertEquals(new Rhymix\Framework\Helpers\SessionHelper(), Rhymix\Framework\Session::getMemberInfo()); Rhymix\Framework\Session::close(); }