Download the PHP package bekwoh/laravel-media-secure without Composer

On this page you can find all versions of the php package bekwoh/laravel-media-secure. 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-media-secure

Secure Your Media Access

Latest Version on Packagist Fix PHP code style issues PHPStan Rector CI run-tests Update Changelog Total Downloads

You have documents, but want to limit the access to only logged in users, and also have some other sophisticated / complex rules in order to access the documents, then this package is for you.

This package will securely display or download to your media files.

Installation

You can install the package via composer:

Publish the config file with:

Usage

In case you want more control on who are able to access to the media, you can use the Laravel Policy. You just need to define the policy, then it's done. This package will use the policy to handle more sophisticated and complex rules accessing to your media files.

Make sure you are using Laravel Medialibrary package.

When the require_auth configuration is enabled ('require_auth' => true), the use who want to access to the media require to login.

When the strict configuration is enabled ('strict' => true), the parent model of the media ($media->model) is required to have its own policy registered.

This policy must define the access methods:

These methods will be used by MediaPolicy to determine whether the user is authorised to access the media.

Why Is This Required?

Since Spatie's Media Library uses polymorphic relationships, media items are attached to various parent models (e.g., Document, Post, User, etc.). To enforce fine-grained control, MediaPolicy delegates authorisation checks to the parent model’s policy.

What You Must Do

  1. Create a policy for the parent model (e.g., DocumentPolicy).
  2. Define the following methods in that policy:

    • view(User $user, Document $document)
    • stream(User $user, Document $document)
    • download(User $user, Document $document)

Example: DocumentPolicy

These methods must be defined because MediaPolicy uses the value from the MediaAccess enum to call Gate::allows($type, $media->model).

Register the Policy

In your AuthServiceProvider:

What Happens If No Policy Exists?

Condition Result
strict = true Access will be denied if the parent model doesn't have a policy
strict = false Access will be granted without checking the parent model's policy

Summary

Requirement Mandatory When
Parent model has a policy When strict = true
Defines view, stream, download methods For enum-based access control
Policy registered in AuthServiceProvider Required by Laravel's Gate system

Helpers

You upload / add media as documented in Laravel Medialibrary. Then to generate links:

Testing

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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


All versions of laravel-media-secure with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2 | ^8.3 | ^8.4
cleaniquecoders/traitify Version ^1.1
illuminate/contracts Version ^11.0 | ^12.0
spatie/laravel-medialibrary Version ^10.5 | ^11.5
spatie/laravel-package-tools Version ^1.14.0
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 bekwoh/laravel-media-secure contains the following files

Loading the files please wait ....