PHP code example of outlandishideas / php-crud-api-secure
1. Go to this page and download the library: Download outlandishideas/php-crud-api-secure library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
outlandishideas / php-crud-api-secure example snippets
use Slim\App;
use Outlandish\PhpCrudApi\SecureConfig;
rams:.*}]', function (
Request $request,
Response $response,
array $args
) {
$config = new SecureConfig([
'middlewares' => 'pageLimits,authorization',
'pageLimits.records' => 2,
'authorization.tableHandler' => function ($operation, $tableName) {
return $tableName != 'users'; //prevent CRUD api from performing any actions on the users table
},
'authorization.columnHandler' =>
function ($operation, $tableName, $columnName) {
if($tableName == 'participants'){
return $columnName != 'last_ip_address';
}
return false;
},
]);
$api = new Api($config);
$response = $api->handle($request);
return $response;
}
);
};
use Slim\App;
use Outlandish\PhpCrudApi\SecureConfig;
use Tqdev\PhpCrudApi\Api;
use Outlandish\PhpCrudApi\TablePermissions;
se $response,
array $args
) {
class UsersTablePermissions extends TablePermissions
{
public function __construct()
{
parent::__construct('users');
$this->allReadColumns = ["id", "display_name"];
}
}
class PetsTablePermissions extends TablePermissions
{
public function __construct()
{
parent::__construct('pets');
$this->allReadColumns = ["id", "name", "favourite_food", "species", "owner"];
$this->createColumns = ["name", "favourite_food", "species", "owner"];
}
}
$tablePermissions = [
PetsTablePermissions::getInstance(),
UsersTablePermissions::getInstance()
];
$config = new SecureConfig([
'middlewares' => 'pageLimits',
'pageLimits.records' => 2,
], $tablePermissions);
$api = new Api($config);
$response = $api->handle($request);
return $response;
}
);
};
class PetsTablePermissions extends TablePermissions
{
public function __construct()
{
parent::__construct('pets');
$this->allReadColumns = ["id", "name", "favourite_food", "species", "owner"];
$this->createColumns = ["name", "favourite_food", "species", "owner"];
}
}
class PetsTablePermissionsAuthenticatedUser extends PetsTablePermissions
{
public function getUpdateColumns(){
return $this->getReadColumns();
}
}
if (Auth::check()) {
// The user is logged in...
$tablePermissions = [
PetsTablePermissionsAuthenticatedUser::getInstance(),
];
}else{
//it's an anonymous user
$tablePermissions = [
PetsTablePermissions::getInstance(),
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.