Warning (2): substr() expects parameter 1 to be string, array given [CORE/src/Network/Http/Adapter/Stream.php, line 98]

2015-05-22 Thread Arun Singh
What could be the reason for these errors http://i.imgur.com/oMwVBGS.png

My code is working properly on local server, after moving it to staging I 
got this error.

My code is as follow.

get($apiBaseURL.'areas', [
'store_id' => $storeId,
]);

$json = $response->json;

if( isset($json['status']) && $json['status'] == 'success' ) { 
Cache::write('areas_list', $json['data']);
}

$areas = $json['data'];
unset($json);
}

$this->set('areas', $areas);
}


-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.


Need help on custom Authorization with ACL

2014-06-05 Thread Arun Singh
CakePHP custom ACL Authorization using acos, aros & aros_acos Acl tables 
with extension api_

I am developing an restful API using CakePHP, I am trying to implement a 
custom authorization which authorize user using ACL, code looks something 
like

_Collection->load('Acl'); 
list($plugin, $userModel) = 
pluginSplit($this->settings['userModel']);
$action = $this->action($request); 

$cacheName = 'permissions_' . strval($user['id']); 
if (($permissions = Cache::read($cacheName, 'permissions')) === 
false) {
$permissions = array(); 
Cache::write($cacheName, $permissions, 'permissions');
}
if (!isset($permissions[$action])) {
$User = ClassRegistry::init($this->settings['userModel']);
$User->id = $user['id'];
$allowed = $Acl->check($User, $action); 
$permissions[$action] = $allowed;
Cache::write($cacheName, $permissions, 'permissions');
$hit = false;
} else {
$allowed = $permissions[$action];
$hit = true;
}
return $allowed;
 }
}

I am using same database for website(developed using croogo) and API so my 
database already has `acos`, `aros` & `aros_acos` tables of website so for 
API I am created ACL tables with api_ extension like `api_acos`, `api_aros` 
& `api_aros_api_acos`

New schema of my ACL tables are

CREATE TABLE IF NOT EXISTS `api_acos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(10) DEFAULT NULL,
  `model` varchar(255) DEFAULT '',
  `foreign_key` int(10) unsigned DEFAULT NULL,
  `alias` varchar(255) DEFAULT '',
  `lft` int(10) DEFAULT NULL,
  `rght` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `api_acos_api_aros` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `api_aro_id` int(10) unsigned NOT NULL,
  `api_aco_id` int(10) unsigned NOT NULL,
  `_create` char(2) NOT NULL DEFAULT '0',
  `_read` char(2) NOT NULL DEFAULT '0',
  `_update` char(2) NOT NULL DEFAULT '0',
  `_delete` char(2) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `api_aros` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(10) DEFAULT NULL,
  `model` varchar(255) DEFAULT '',
  `foreign_key` int(10) unsigned DEFAULT NULL,
  `alias` varchar(255) DEFAULT '',
  `lft` int(10) DEFAULT NULL,
  `rght` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


I am using custom ACL class from here 
https://github.com/FriendsOfCake/Authorize/blob/master/Controller/Component/Acl/HabtmDbAcl.php

My question is where and how can I use my new database tables (`api_acos`, 
`api_aros` & `api_aros_api_acos`) for ACL lookup? Please point me to code 
from where I can take reference for custom ACL Authorization implementation.

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.