Я согласен.Иногда лучше обрабатывать разрешения на уровне приложения, чем на уровне базы данных.Однако, если вы действительно, действительно хотите иметь и этот дополнительный уровень безопасности в вашей базе данных, вам следует настроить несколько соединений с базой данных:
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'normaluser',
'password' => '',
'database' => 'db',
'prefix' => '',
);
var $admin = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'adminuser',
'password' => '',
'database' => 'db',
'prefix' => '',
);
Затем вы можете использовать $this->ModelName->setDataSource('admin')
, если пользователь находится в разделе администратора, или какое-либо условие, которое вы можете навязать.
Я бы посоветовал вам взглянуть на маршрутизацию префикса admin_
.CakePHP позволяет вам легко управлять полномочиями администратора. Префиксная маршрутизация Кроме того, вы можете добавить поле в своей таблице пользователей, чтобы указать роль пользователя, и проверить его по текущему префиксу.