spotonlive/sl-assertions
最新稳定版本:v0.0.2
Composer 安装命令:
composer require spotonlive/sl-assertions
包简介
Assertions for Laravel 5.1
README 文档
README
THIS PACKAGE IS UNDER DEVELOPMENT
Configuration
Installation
Run $ composer require spotonlive/sl-assertions
config/app.php
Insert the provider and helper alias into your application configuration
'providers' => [ \SpotOnLive\Assertions\Providers\Services\AssertionServiceProvider::class, \SpotOnLive\Assertions\Providers\Helpers\AssertionHelperProvider::class, ] 'aliases' => [ 'AssertionHelper' => \SpotOnLive\Assertions\Facades\Helpers\AssertionHelperFacade::class, ]
Configuration
run $ php artisan vendor:publish to create the configuration file.
A configuration file is now available in config/assertions.php.
Assertions
To create new examples create a new assertion file implementing the assertion interface. For example:
EditAssertion.php
<?php namespace App\Assertions\Users; use SpotOnLive\Assertions\AssertionInterface; use App\Entities\User; class EditAssertion implements AssertionInterface { /** * @param User $user * @param array $data * @return bool */ public function assert($user, array $data = []) { /** @var User $userToEdit */ $userToEdit = $data['user']; return $user == $userToEdit || $user->hasRole(['superadmin', 'admin']); } }
And then register the assertion in your configuration file:
config/assertions.php
<?php return [ 'users.edit' => \App\Assertions\Users\EditAssertion::class, ];
Usage
Service
Use the assertion service by injecting AssertionService.
app::make('AssertionService')
Example:
<?php namespace App\Controllers; use \SpotOnLive\Assertions\Services\AssertionServiceInterface; class Controller { /** @var AssertionServiceInterface **/ protected $assertionService; public function __construct(AssertionServiceInterface $assertionService) { $this->assertionService = $assertionService; } public function admin() { if (!$this->assertionService->isGranted('admin.page', Auth::user())) { return redirect()->route('not-granted'); } return view('admin.page'); } }
Helper
Use the AssertionHelper directly in your views.
Example: view.blade.php
@if(AssertionHelper::isGranted('user.edit', Auth::user(), ['user' => $user])) <a href="{{URL::route('user.edit')}}">{{_('Edit user')}}</a> @endif
Organization & authors
统计信息
- 总下载量: 1.7k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2015-09-10