1. Go to this page and download the library: Download rookwood/turnstile 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/ */
rookwood / turnstile example snippets
// CommentController.php (or somesuch)
if ($this->user->can("edit_comment", ['comment' => $comment]))
{
// logic
}
else
{
// pass back an error telling them why they were denied
}
namespace Vendor\Application\Policies;
// Abstract class enforcing the correct signature on the execute() method
use Rookwood\Turnstile\Policies\Policy;
class CommentEditingPolicy extends Policy {
const UNSPECIFIED_FAILURE = "policy.comments.failure";
const NOT_USERS_COMMENT = "policy.comments.not_users_comment";
const PAST_EDIT_DEADLINE = "policy.comments.past_edit_deadline";
public function execute($user, $data)
{
$comment = $data['comment'];
if ($user->isAn('admin'))
{
return TRUE
}
if (time() > $comment->editTimeLimit)
{
return self::PAST_EDIT_DEADLINE;
}
if ($user->owns($comment))
{
return TRUE;
}
else
{
return self::NOT_USERS_COMMENT
}
}
}
namespace Wherever\You\Want\It;
use Rookwood\Turnstile\Policies\Provider\PolicyProvider as BaseProvider;
class PolicyProvider extends BaseProvider {
public static $data = [
// Add your policy mappings here
"edit_comment" => "Rookwood\\Policies\\Comments\\CommentEditingPolicy",
// etc
];
}
public function __construct()
{
if (Auth::check())
{
$this->user = Auth::user();
}
else
{
$this->user = App::make('User');
}
}