for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* CakePHP permission handling library
* @author Tao <[email protected]>
*/
namespace Slince\CakePermission;
use Cake\Core\Configure;
use Cake\ORM\TableRegistry;
use Slince\CakePermission\Model\Table\UsersTable;
use Slince\CakePermission\Model\Table\RolesTable;
use Slince\CakePermission\Model\Table\PermissionsTable;
use Cake\ORM\Table;
class TableFactory
{
* Array of default models classes
* @var array
protected static $defaultModelClasses = [
'Users' => UsersTable::class,
'Roles' => RolesTable::class,
'Permissions' => PermissionsTable::class
];
* Gets the role model
* @return Table
public static function getRoleModel()
return static::getModel('Roles');
}
* Gets the permission model
public static function getPermissionModel()
return static::getModel('Permissions');
* Gets the user model
public static function getUserModel()
return static::getModel('Users');
* Gets the model instance
* @param $name
public static function getModel($name)
return TableRegistry::get("_Permission{$name}", [
'className' => static::getModelClass($name)
]);
* Gets the default model class
* @param string $name
* @return string
public static function getModelClass($name)
return Configure::read("Permission.tableClassMap.{$name}") ?: static::$defaultModelClasses[$name];