public static function read($group) { return Cache::remember('admin_config_' . $group, function () use($group) { $o = new Object(); return $o->requestAction('/config/get/' . $group); }, 'admin_config'); }
/** * Improved requestAction. AutoRenders by default * * @param mixed $url * @param array $params If set to true, the return value of the controller * action is returned instead of the renderred output * @return mixed */ public static function requestAction($url, $params = array()) { if (is_bool($params)) { $params = array('return' => $params); } $params += array('return' => false, 'requested' => true); $params += array('bare' => $params['requested']); if (is_array($url)) { $url = self::url(array('base' => false) + $url); } else { $url = r('{$lang}', SlConfigure::read('I18n.lang'), $url); } // just in case... self::getInstance(); $savedCollections = SlConfigure::rememberCollections(); self::push(empty($params['requested']), $url); ob_start(); $result = Object::requestAction($url, $params); $html = ob_get_clean(); self::pop(); SlConfigure::restoreCollections($savedCollections); if ($html && (is_string($result) || empty($result))) { $result .= $html; } if ($result instanceof AppError && !$params['return']) { $result = $html; } return $result; }
/** * ensure that session ids don't change when request action is called. * * @return void */ public function testSessionIdConsistentAcrossRequestAction() { $Object = new Object(); $Session = new SessionComponent($this->ComponentCollection); $expected = $Session->id(); $result = $Object->requestAction('/session_test/sessionId'); $this->assertEquals($expected, $result); $result = $Object->requestAction('/orange_session_test/sessionId'); $this->assertEquals($expected, $result); }
/** * testSessionAutoStart method * * @access public * @return void */ function testSessionAutoStart() { Configure::write('Session.start', false); $Session =& new SessionComponent(); $this->assertFalse($Session->__active); $this->assertFalse($Session->__started); $Session->startup(new SessionTestController()); Configure::write('Session.start', true); $Session =& new SessionComponent(); $this->assertTrue($Session->__active); $this->assertFalse($Session->__started); $Session->startup(new SessionTestController()); $this->assertTrue(isset($_SESSION)); $Object = new Object(); $Session =& new SessionComponent(); $Session->start(); $expected = $Session->id(); $result = $Object->requestAction('/session_test/session_id'); $this->assertEqual($result, $expected); $result = $Object->requestAction('/orange_session_test/session_id'); $this->assertEqual($result, $expected); }
/** * ensure that session ids don't change when request action is called. * * @access public * @return void */ public function testSessionIdConsistentAcrossRequestAction() { $Session = new SessionComponent($this->ComponentCollection); $Session->check('Test'); $this->assertTrue(isset($_SESSION)); $Object = new Object(); $Session = new SessionComponent($this->ComponentCollection); $expected = $Session->id(); $result = $Object->requestAction('/session_test/session_id'); $this->assertEqual($expected, $result); $result = $Object->requestAction('/orange_session_test/session_id'); $this->assertEqual($expected, $result); }
public static function hasCapability($user, $capability = null, $args = null) { if (!is_array($user)) { $args = $capability; $capability = $user; $o = new Object(); $user = $o->requestAction(array('controller' => 'users', 'plugin' => 'admin', 'action' => 'currentUser', 'admin' => false)); } if ($user['Role']['alias'] == 'administrator') { return true; } if (is_array($capability)) { $capability = Admin::arrayToCapability($capability); } $capability = strtolower($capability); $capability = trim($capability, '.'); if (empty($user)) { return false; } /*App::uses('AuthComponent', 'Component'); $Auth = new AuthComponent(null); exit(debug($Auth->user()));*/ App::uses('Set', 'Utility'); $capabilities = array_merge(Set::extract('/capability', $user['Role']['Capability']), Set::extract('/capability', $user['Capability'])); return in_array($capability, $capabilities); }