PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 3.12.2
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v3.12.2
3.13.4 3.13.3 3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 All 262 releases
wpfunnels / vendor / league / flysystem / src / UnixVisibility / PortableVisibilityConverter.php

PortableVisibilityConverter.php in WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell 3.12.2, at vendor/league/flysystem/src/UnixVisibility/PortableVisibilityConverter.php

80 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace League\Flysystem\UnixVisibility;
6
7 use League\Flysystem\PortableVisibilityGuard;
8 use League\Flysystem\Visibility;
9
10 class PortableVisibilityConverter implements VisibilityConverter
11 {
12 public function __construct(
13 private int $filePublic = 0644,
14 private int $filePrivate = 0600,
15 private int $directoryPublic = 0755,
16 private int $directoryPrivate = 0700,
17 private string $defaultForDirectories = Visibility::PRIVATE
18 ) {
19 }
20
21 public function forFile(string $visibility): int
22 {
23 PortableVisibilityGuard::guardAgainstInvalidInput($visibility);
24
25 return $visibility === Visibility::PUBLIC
26 ? $this->filePublic
27 : $this->filePrivate;
28 }
29
30 public function forDirectory(string $visibility): int
31 {
32 PortableVisibilityGuard::guardAgainstInvalidInput($visibility);
33
34 return $visibility === Visibility::PUBLIC
35 ? $this->directoryPublic
36 : $this->directoryPrivate;
37 }
38
39 public function inverseForFile(int $visibility): string
40 {
41 if ($visibility === $this->filePublic) {
42 return Visibility::PUBLIC;
43 } elseif ($visibility === $this->filePrivate) {
44 return Visibility::PRIVATE;
45 }
46
47 return Visibility::PUBLIC; // default
48 }
49
50 public function inverseForDirectory(int $visibility): string
51 {
52 if ($visibility === $this->directoryPublic) {
53 return Visibility::PUBLIC;
54 } elseif ($visibility === $this->directoryPrivate) {
55 return Visibility::PRIVATE;
56 }
57
58 return Visibility::PUBLIC; // default
59 }
60
61 public function defaultForDirectories(): int
62 {
63 return $this->defaultForDirectories === Visibility::PUBLIC ? $this->directoryPublic : $this->directoryPrivate;
64 }
65
66 /**
67 * @param array<mixed> $permissionMap
68 */
69 public static function fromArray(array $permissionMap, string $defaultForDirectories = Visibility::PRIVATE): PortableVisibilityConverter
70 {
71 return new PortableVisibilityConverter(
72 $permissionMap['file']['public'] ?? 0644,
73 $permissionMap['file']['private'] ?? 0600,
74 $permissionMap['dir']['public'] ?? 0755,
75 $permissionMap['dir']['private'] ?? 0700,
76 $defaultForDirectories
77 );
78 }
79 }
80