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,
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.
Requires the owner and object models.
GuestPass::create($user, $photo);
Returns true if successfull, false otherwise.
A Guest Pass contains the following data: owner_model
, owner_id
; object_model
, object_id
; key
(unique); view
(nullable).
Requires the owner model.
GuestPass::getKeysOf($user);
Returns a collection of all Guest Pass keys and their corresponding data is attached as well.
Requires the owner and object model.
GuestPass::findGuestPass($user, $photo);
Returns an Eloquent model (or throws an exception).
Requires the key (string).
GuestPass::getGuestPass($key);
Returns an Eloquent model (or throws an exception).
Requires the owner and Guest Pass models.
GuestPass::isOwner($user, $guestpass);
Returns true or false.
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.
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.
Please see changelog.md for what has changed recently.
Please see contributing.md for details.
The EU Public License. Please see license.md for more information.