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');
 }
Exemple #2
0
 /**
  * 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);
 }
Exemple #5
0
 /**
  * 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);
 }
Exemple #6
0
 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);
 }