Download the PHP package ephort/laravel-data-authorization without Composer

On this page you can find all versions of the php package ephort/laravel-data-authorization. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-data-authorization

Add authorization to your spatie/laravel-data objects

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package adds authorization to your spatie/laravel-data objects, which is very useful if you want to expose data objects to the frontend (e.g. when using Inertia), but still need to check if the user is allowed to perform certain actions.

Installation

Install the package via composer:

Usage

This package is intended to be used with Inertia, but does not require it or depend on it.

To add the authorization checks to your data objects, extend the DataWithAuthorization class.
All the methods of the base Data class are still available.

Next, implement the static getAuthorizations method, which should return an array containing the names of the actions that need to be exposed and checked.

When the data object is transformed, a lazy authorization property is appended to the resulting array.

This property contains a key for each defined policy action and is evaluated by Gate::allows.

Avoid processing authorizations

Because the authorization property is lazy, we can exclude it from the data object to avoid calling the gate on every serialization.

Or use the built-in helper method:

Note when using custom from methods

When using a custom from method, the pipeline that resolves authorizations is not used.

This means you must call the static resolveAuthorizationArray method manually when instantiating your data object:

You can also wrap the authorization array in a Lazy property if needed:

TypeScript support

Thanks to Spatie, it's very easy to generate TypeScript interfaces from data objects and enums.
Install the TypeScript Transformer package and publish its configuration file:

Open config/typescript-transformer.php and add the following collector and transformer:

Ephort\LaravelDataAuthorization\Collectors\DataAuthorizationTypeScriptCollector::class must be the first collector.

The above configuration uses a collector provided by this package, which finds data objects that extend DataWithAuthorization and generates typings with their authorizations. This is what powers typed authorization support.

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

The code is primarily copied from the awesome project Hybridly by Enzo Innocenzi, which is a great alternative to Inertia.

License

The MIT License (MIT). Please see License File for more information.


All versions of laravel-data-authorization with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/contracts Version ^10.0||^11.0
spatie/laravel-data Version ^4.6
spatie/laravel-package-tools Version ^1.16
spatie/laravel-typescript-transformer Version ^2.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ephort/laravel-data-authorization contains the following files

Loading the files please wait ....