Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/livelyworks/yesauthority
Laravel Routes Authorization Library
https://github.com/livelyworks/yesauthority
laravel laravel-authority laravel-authorization laravel-framework laravel-package laravel-routes middleware
Last synced: 4 days ago
JSON representation
Laravel Routes Authorization Library
- Host: GitHub
- URL: https://github.com/livelyworks/yesauthority
- Owner: livelyworks
- License: mit
- Created: 2017-07-26T10:31:42.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-28T18:28:47.000Z (over 1 year ago)
- Last Synced: 2024-09-26T01:16:35.409Z (8 days ago)
- Topics: laravel, laravel-authority, laravel-authorization, laravel-framework, laravel-package, laravel-routes, middleware
- Language: PHP
- Homepage: https://livelyworks.github.io/YesAuthority/
- Size: 580 KB
- Stars: 7
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# **YesAuthority**
-------------------
YesAuthority is flexible authorization system for Laravel, It checks the `route` permission to access a certain portion of the site or application. To add Permissions `User-based`, `Role-based`, `Conditionally`. It uses `authority.checkpost` middleware for filter permission of current accessing route, Under this middleware checked every permission of the user login.## **Installation**
Require this package in your `composer.json` or install it by running:```bash
composer require livelyworks/laravel-yes-authority
```Now, insert this line into your `config/app.php` under the `provider` array.
```bash
LivelyWorks\YesAuthority\YesAuthorityServiceProvider::class
```Now, run this command after that `config/yes-authority.php` and `app/Http/Middleware/YesAuthorityCheckpostMiddleware.php` files are publish.
```bash
php artisan vendor:publish --tag="yesauthority"
```Now, insert this line into your `app/Http/Kernel.php` under the `$routeMiddleware` array.
```php
'authority.checkpost' => \App\Http\Middleware\YesAuthorityCheckpostMiddleware::class
```
Use `authority.checkpost` middleware for handle permission base routes.```php
Route::group(['middleware' => 'authority.checkpost'], function () {
// Place all those routes here which needs authentication and authorization.
});
```
Now, the basic setup is ready you need to configure rules of permissions using `config/yes-authority`.## **Configuration**
The structure of permissions given below, but it's highly recommended to read more on [docs](https://livelyworks.github.io/YesAuthority/Sample_Structure)`.
```php[
'allow' => ['*'], // Allowed permission to user. Priority is less than deny.
'deny' => ['temp1'], // Deny permission to user. Priority is higher than allow.
]canAccess('temp1');
// false
```## **Usage - Helpers**
* **
canAccess($accessId = null);
**
Check the access, By default it check current route and return response in **boolean** value.
```php
canAccess('temp1');
// true or false
```* **
canPublicAccess($accessId = null); - `Authentication not required`
**
Check the public access, By default it check current route and return response in **boolean** value.```php
canPublicAccess();
// true or false
```## **Usage - Facade**
* **
YesAuthority::check($accessId = null, $requestForUserId = null)
**
Check the access of `$accessId`, By default it check current route and return response in **boolean** value, And it can check access of perticular user by passing user id `($requestForUserId)` parameter.
```php
YesAuthority::check('temp1');
// true or false
```* **
YesAuthority::isPublicAccess($accessId = null); - `Authentication not required`
**
Check the access of `$accessId`, By default it check current route and return response in **boolean** value.
```php
YesAuthority::isPublicAccess('temp1');
// true or false
```## **Usage - Directives**
* **
@canAccess($accessId = null);
**
Check the access, By default it check current route and return response in **boolean** value.
```php
@canAccess()
// your logic here.
@endAccess;
```* **
@canPublicAccess($accessId = null); - `Authentication not required`
**
Check the public access, By default it check current route and return response in **boolean** value.
```php
@canPublicAccess()
// your logic here.
@endAccess;
```