PHP code example of foothing / laravel-gdpr-consent
1. Go to this page and download the library: Download foothing/laravel-gdpr-consent library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
'treatments' => [
[
// A logical name for your treatment.
'name' => 'gdpr.privacy',
// You can specify which document
// describes the treatment type
// with a document version and url.
// This part is optional.
'documentVersion' => '1.0',
'documentUrl' => env('PRIVACY_POLICY'),
// Whether this treatment is active or not.
// The reason why this flag is here is to
// allow for progressive modifications, so you
// can keep track of what the end user gave
// consent to. So if you are upgrading or
// changing the treatment the recommended
// process is to deactivate the current one
// then add a new record.
'active' => true,
// Set if this treatment is mandatory or optional.
'
class User extends Model implements ConsentSubject
{
// This trait will implement the relation to the consent table.
use HasConsents;
/**
* Returns the subject id.
*
* @return mixed
*/
public function getSubjectId()
{
return $this->id;
}
}
public function postRegister(Request $request)
{
if (! $treatments = Consent::validate($request->all()) {
// User didn't accept all the mandatory checkboxes.
throw new \Exception("Consent is mandatory in order to proceed.");
}
}
public function postRegister(Request $request)
{
// omitted
// This will register a record with the
// user's consent along with an event log.
Facade::grant($treatments, Auth::user());
}
public function postUpdateConsent(Request $request)
{
// You should pass only the checkboxes as the first argument.
Consent::update($request->except('_token'), Auth::user());
// redirect as you like.
}
public function deleteIndex(Request $request)
{
\DB::transaction(function() use($user)
{
// Delete the user first.
// i.e. $user->delete();
// This will remove consents and log the erasure request.
Consent::erase($user);
});
}
$event = new Event([
// The subject id.
'subject_id' => $user->id,
// A string describing what has been done with subject's data.
'action' => $action,
// Optional, consent record id.
'consent_id' => $consentId,
]);
Consent::log($event);
// Retrieving subject's logs
Consent::events($subject);
html
<!-- Cycle through active treatments, just like the register page. -->
@foreach(Consent::treatments() as $treatment)
<div class="checkbox">
<label>
<input {{ Consent::exists($user, $treatment) ? 'checked' : '' }} name="{{ $treatment->id }}" type="checkbox">
{{ trans($treatment->description) }}
</label>
</div>
@endforeach
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.