1. Go to this page and download the library: Download tatter/permits 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/ */
tatter / permits example snippets
class BlogModel extends Model
{
use PermitsTrait;
use CodeIgniter\Model;
use Tatter\Permits\Traits\PermitsTrait;
class FruitModel extends Model
{
use PermitsTrait;
...
if (! $model->mayCreate()) {
return redirect()->back()->with('error', 'You do not have permission to do that!');
}
$item = $model->find($id);
if (! $model->mayUpdate($item)) {
return redirect()->back()->with('error', 'You can only update your own items!');
}
if (! $model->mayAdmin($userId)) {
log_message('debug', "User #{$userId} attempted to access item administration.");
}
public $groups = [
'superadmin' => [
'title' => 'Super Admin',
'description' => 'Complete control of the site.',
],
'admin' => [
'title' => 'Admin',
'description' => 'Day to day administrators of the site.',
],
'developer' => [
'title' => 'Developer',
'description' => 'Site programmers.',
],
'user' => [
'title' => 'User',
'description' => 'General users of the site. Often customers.',
],
'beta' => [
'title' => 'Beta User',
'description' => 'Has access to beta-level features.',
],
'editor' => [
'title' => 'Blog Editors',
'description' => 'Has access to all blog entries.',
],
];
public $permissions = [
'admin.access' => 'Can access the sites admin area',
'admin.settings' => 'Can access the main site settings',
'users.manage-admins' => 'Can manage other admins',
'users.create' => 'Can create new non-admin users',
'users.edit' => 'Can edit existing non-admin users',
'users.delete' => 'Can delete existing non-admin users',
'beta.access' => 'Can access beta-level features',
'blogs.admin' => 'Allows all access to blog model operations',
];
use App\Entities\Blog;
use CodeIgniter\Model;
use Tatter\Permits\Traits\PermitsTrait;
class BlogModel extends Model
{
use PermitsTrait;
protected $table = 'blogs';
protected $primaryKey = 'id';
protected $returnType = Blog::class;
...
}
namespace App\Controllers;
use App\Models\BlogModel;
use CodeIgniter\HTTP\RedirectResponse;
class Blogs extends BaseController
{
/**
* @var BlogModel
*/
protected $model;
/**
* Preloads the model.
*/
public function __construct()
{
$this->model = model(BlogModel::class);
}
/**
* Displays the list of approved blogs
* for all visitors of the website.
*/
public function index(): string
{
return view('blogs/public', [
'blogs' => $this->model->findAll(),
]);
}
/**
* Displays blogs eligible for updating
* based on the authenticated user (handled
* by our authentication Filter).
*/
public function manage(): string
{
// Admin access sees all blogs, otherwise limit to the current user
if (! $this->model->mayAdmin()) {
$this->model->where('user_id', user_id());
}
return view('blogs/manage', [
'blogs' => $this->model->findAll(),
]);
}
/**
* Shows a single blog with options
* to update or delete.
*
* @return RedirectResponse|string
*/
public function edit($blogId)
{
// Verify the blog
if (empty($blogId) || null === $blog = $this->model->find($blogId)) {
return redirect()->back()->with('error', 'Could not find that blog entry.');
}
// Check access
if (! $this->model->mayUpdate($blog)) {
return redirect()->back()->with('error', 'You do not have permission to do that.');
}
return view('blogs/edit', [
'blog' => $blog,
]);
}
...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.