PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/asktraining.online/wp-content/plugins/gdpr-framework/src/DataSubject/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : /home/trave494/asktraining.online/wp-content/plugins/gdpr-framework/src/DataSubject/DataSubject.php |
<?php namespace Codelight\GDPR\DataSubject; use Codelight\GDPR\Components\Consent\ConsentManager; /** * A data subject is any person whose data we are storing. * A data subject might or might not have a user account on this site. * * Class DataSubject * * @package Codelight\GDPR\DataSubject */ class DataSubject { /* @var string */ protected $email; /* @var \WP_User|null */ protected $user = null; /* @var ConsentManager */ protected $consentManager; /* @var array */ protected $consents = array(); /** * DataSubject constructor. * * @param $email * @param \WP_User|null $user */ public function __construct( $email, \WP_User $user = null, ConsentManager $consentManager ) { $this->email = $email; $this->user = $user; $this->consentManager = $consentManager; $this->dataRepository = new DataRepository( $email ); $this->consents = $this->consentManager->getAllConsents( $this->email ); } /** * @return string */ public function getEmail() { return $this->email; } /** * @return bool */ public function hasUser() { return $this->getUser() ? true : false; } /** * @return null|\WP_User */ public function getUser() { return $this->user; } /** * @return int|null */ public function getUserId() { if ( $this->hasUser() ) { return $this->getUser()->ID; } return null; } /** * @delete logs */ public function gdpr_delete_log( $id ) { return $this->consentManager->gdpr_delete_log( $id ); } /** * Check if the data subject has consented to something specific */ public function hasConsented( $consent ) { return in_array( $consent, $this->consents ); } /** * Get all consent given by the data subject */ public function getConsents() { return $this->consents; } /** * Get a list of all consents intersected with the data subjects consents */ public function getConsentData() { return $this->consentManager->getConsentData( $this->consents ); } /** * Get a list of all consents intersected with the data subjects consents */ public function getClassiDocsdata( $email ) { return $this->consentManager->getClassiDocsdata( $email ); } /** * Get a list of user logs */ public function getuserlogsData() { return $this->consentManager->getuserlogsData( $this->email ); } /** * Get a list of all visible consents */ public function getVisibleConsentData() { if ( $this->getConsentData() ) { return array_filter( $this->getConsentData(), function ( $item ) { return $item['visible']; } ); } } /** * Save given consent to data subject * * @param $consent */ public function giveConsent( $consent, $valid_until = null ) { $this->consentManager->giveConsent( $this->email, $consent, $valid_until ); } /** * Remove given consent from data subject * * @param $consent */ public function withdrawConsent( $consent ) { $this->consentManager->withdrawConsent( $this->email, $consent ); } /** * Check if there's any data stored about this data subject at all */ public function hasData() { return ! empty( $this->getData() ); } /** * Just get the data subjects data, without sending emails or anything. * Applies 'gdpr/data-subject/data' filter. * * @return array */ public function getData() { return $this->dataRepository->getData( $this->getEmail() ); } /** * Export the data subject's data as per admin configuration. * Applies 'gdpr/data-subject/data' filter. * * @return array|null */ public function export( $format, $force = false ) { return $this->dataRepository->export( $this->getEmail(), $format, $force ); } /** * Forget the data subject as per admin configuration. * Triggers 'gdpr/data-subject/anonymize' or 'gdpr/data-subject/delete' action. * * @return bool */ public function forget( $forceAction = null ) { return $this->dataRepository->forget( $this->getEmail(), $forceAction ); } }