Download the PHP package ekoukltd/laraconsent without Composer
On this page you can find all versions of the php package ekoukltd/laraconsent. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ekoukltd/laraconsent
More information about ekoukltd/laraconsent
Files in ekoukltd/laraconsent
Package laraconsent
Short Description User consent module for laravel
License MIT
Homepage https://github.com/ekoukltd/laraconsent
Informations about the package laraconsent
LaraConsent
This module provides versioned user consent terms and conditions which must be accepted to allow the user to continue using the application.
When a new version is published you may optionally require existing users to accept the new terms or only apply to new users.
Once a user has accepted terms on a specific version, that version is locked and may not be changed ensuring that users and the organisation will always retain a history of accepted terms.
A consent option may be applied to any user guard allowing clients and admins to require different terms. Set user models to be used in config file options. In each user model inclue the HasConsent Trait.
A consent option may also be used to signup for newsletters. Event hooks are provided which can be used to trigger subscribe / unsubscribe actions. See Events section below.
An index view of all accepted and declined terms is included:-
Consent editor defaults to the free summernote editor but may be switched to froala editor (licence needed) in the config file. Consent forms may be set to be published in the future and will be automatically made available on the day.
Installation
Via Composer
Publish the configuration options to customise routing.
For better presentation of index pages, Yarjabox Datatables is included For this to work jQuery and bootstrap must be installed:-
Typical requirements
Or to allow printing tables to PDF, Excel or CSV, include buttons and JS PDF maker
Bootstrap 4 & Bootstrap 5 templates are included
Publish views to directory /resources/views/vendor/ekoukltd & /resources/views/vendor/datatables
These views have been made using the Laravel 8 Breeze template format and include widgets which can be easily included into your own templates
Then publish the JS and CSS assets and translations
Check the file and remove any css modules you may already have.
And the file and remove any already included js modules.
Update webpack.mix.js to compile our CSS
Then update your resources/js/app.js to load JS assets:-
and ensure the app.js file is included in webpack.mix.js
Then on the cli, compile the assets
Run Migrations:-
Two database tables will be created:-
- consent_options
- consentables
consent_options stores a versioned history of each consent form and consentables records each users consent form interaction history.
Force users to accept consent
To redirect a user to accept consent page if one is outstanding, update your App\Http\Kernel.php 'web' middlewaregroup to include:-
Authentication
User routes should be available to any logged in user.
In the config\laraconsent.php file make sure to include auth:guardname of required guards that should be able to view their consent
Translations
All phrases may be updated in the translation files:-
Events
When an individual consent is given or denied a ConsentUpdated event is triggered. When all consents have been saved the ConsentUpdatedComplete event is triggered.
Use ConsentUpdated event to trigger an action on update of a specific consent form. Use ConsentUpdatedComplete event to trigger an action with all of the completed forms.
Customise actions in your EventServiceProvider.
These have been added by default:-
Usage
URL's may be customised in the config file.
Here you may also include your own middleware to restrict access the admin routes
Admin Routes
Method | URL | Named Route |
---|---|---|
GET | consent-admin | consent-admin.index |
GET | consent-admin/create | consent-admin.create |
POST | consent-admin/save | consent-admin.store |
GET | consent-admin/submitted | consent-admin.submitted |
GET | consent-admin/{consentOption} | consent-admin.show |
PUT | consent-admin/{consentOption} | consent-admin.update |
GET | consent-admin/{consentOption}/edit | consent-admin.edit |
POST | consent-admin/{consentOption}/toggle | consent-admin.toggle |
User Routes
Method | URL | Named Route |
---|---|---|
GET | user-consent/my-consents | user-consent.show |
GET | user-consent/print | user-consent.print |
POST | user-consent/request | user-consent.store |
GET | user-consent/request | user-consent.request |
Change log
Please see the changelog for more information on what has changed recently.
Testing
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Lee Evans
- All Contributors
License
MIT. Please see the license file for more information.
All versions of laraconsent with dependencies
yajra/laravel-datatables Version ^1.5
yajra/laravel-datatables-oracle Version ~9.0
ekoukltd/laravel-admin-tools Version ^1.0