jeroen-g / guestpass
Flickr-like Guest Pass system for Laravel.
Requires
- php: ~5.6|~7.0
- illuminate/database: 5.1.20 - 5.4
- illuminate/support: 5.1 - 5.4
Requires (Dev)
- phpunit/phpunit: ~5.0|~6.0
This package is auto-updated.
Last update: 2024-10-25 07:18:51 UTC
README
Installation
Via Composer
$ composer require jeroen-g/guestpass
If you run Laravel 5.5, the service provider and facade are autodiscovered. If not then add them manually:
JeroenG\GuestPass\GuestPassServiceProvider::class, // ... 'GuestPass' => JeroenG\GuestPass\GuestPassFacade::class,
Usage
To use Guest Passes, you will need two models: one that is the owner granting guest access (typically a user) and another that is the object to which access is being granted. In the examples below, a photo is used for this.
Creating new Guest Passes
Requires the owner and object models.
GuestPass::create($user, $photo);
Returns true if successfull, false otherwise.
Retrieving Guest Pass data
A Guest Pass contains the following data: owner_model
, owner_id
; object_model
, object_id
; key
(unique); view
(nullable).
Getting all keys of the owner
Requires the owner model.
GuestPass::getKeysOf($user);
Returns a collection of all Guest Pass keys and their corresponding data is attached as well.
Finding a Guest Pass for corresponding owner and object
Requires the owner and object model.
GuestPass::findGuestPass($user, $photo);
Returns an Eloquent model (or throws an exception).
Get one specific Guest Pass by its key
Requires the key (string).
GuestPass::getGuestPass($key);
Returns an Eloquent model (or throws an exception).
Checking ownership
Requires the owner and Guest Pass models.
GuestPass::isOwner($user, $guestpass);
Returns true or false.
Access controller
The package ships with a controller that checks for the /gp/{owner id}/{key}
route and when valid it returns the view (404 otherwise). Each view is passed the object and the Guest Pass models.
The views will be sought in the resources/views/guests/
directory.
Custom views
When creating a Guest Pass it is possible to pass a custom view as the third parameter
GuestPass::create($user, $photo, 'album');
In this case, the access controller will not use photo.blade.php
(which would be the default) but album.blade.php
but the directory remains the same and it is not necessary to add the file extension.
Changelog
Please see changelog.md for what has changed recently.
Contributing
Please see contributing.md for details.
Credits
License
The EU Public License. Please see license.md for more information.