PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.4
Booking for Appointments and Events Calendar – Amelia v2.4.4
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 4 weeks ago ConsentManager.php 4 weeks ago ConsentNoticeService.php 4 weeks ago HttpClient.php 4 weeks ago NoticeManager.php 4 weeks ago UsageTracker.php 4 weeks 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