PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / melograno / usage-tracker / src / Core / Anonymizer.php
ameliabooking / vendor / melograno / usage-tracker / src / Core Last commit date
Anonymizer.php 1 month ago ConsentManager.php 1 month ago ConsentNoticeService.php 1 month ago HttpClient.php 1 month ago NoticeManager.php 1 month ago UsageTracker.php 1 month ago
Anonymizer.php
65 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AmeliaVendor\Melograno\UsageTracker\Core;
6
7 class Anonymizer
8 {
9 /** @var string[] */
10 private static $sensitiveKeys = [
11 'site_url',
12 'home_url',
13 'admin_email',
14 'user_email',
15 'email',
16 'url',
17 ];
18
19 /**
20 * @param array<string, mixed> $payload
21 * @return array<string, mixed>
22 */
23 public function anonymize(array $payload): array
24 {
25 $payload['site_id'] = $this->siteId();
26 $payload = $this->stripSensitiveKeys($payload);
27
28 return $payload;
29 }
30
31 public function siteId(): string
32 {
33 return hash('sha256', $this->normalizeSiteUrl(site_url()));
34 }
35
36 /**
37 * @param array<string, mixed> $data
38 * @return array<string, mixed>
39 */
40 private function stripSensitiveKeys(array $data): array
41 {
42 foreach ($data as $key => $value) {
43 if (is_array($value)) {
44 $data[$key] = $this->stripSensitiveKeys($value);
45 continue;
46 }
47
48 if (in_array(strtolower((string) $key), self::$sensitiveKeys, true)) {
49 unset($data[$key]);
50 }
51 }
52
53 return $data;
54 }
55
56 private function normalizeSiteUrl(string $url): string
57 {
58 if (function_exists('untrailingslashit')) {
59 return untrailingslashit(strtolower($url));
60 }
61
62 return rtrim(strtolower($url), '/');
63 }
64 }
65