PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.2
GiveWP – Donation Plugin and Fundraising Platform v4.14.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Permissions / UserPermission.php
give / src / Framework / Permissions Last commit date
Contracts 5 months ago Facades 5 months ago Migrations 5 months ago Traits 5 months ago CampaignPermissions.php 5 months ago DonationFormPermissions.php 5 months ago DonationPermissions.php 5 months ago DonorPermissions.php 5 months ago EventPermissions.php 5 months ago ReportsPermissions.php 5 months ago SensitiveDataPermissions.php 5 months ago SettingsPermissions.php 5 months ago SubscriptionPermissions.php 5 months ago UserPermission.php 5 months ago
UserPermission.php
132 lines
1 <?php
2
3 namespace Give\Framework\Permissions;
4
5 use Give\Framework\Permissions\Traits\WithAdminAccess;
6
7 abstract class UserPermission implements Contracts\UserPermissionsInterface
8 {
9 use WithAdminAccess;
10
11 /**
12 * Check if user can create (maps to edit capability).
13 *
14 * @since 4.14.0
15 */
16 public function canCreate(): bool
17 {
18 return $this->currentUserCan('edit');
19 }
20
21 /**
22 * Check if user can view/read.
23 *
24 * @since 4.14.0
25 */
26 public function canView(): bool
27 {
28 return $this->currentUserCan('view');
29 }
30
31 /**
32 * Check if user can edit.
33 *
34 * @since 4.14.0
35 */
36 public function canEdit(): bool
37 {
38 return $this->currentUserCan('edit');
39 }
40
41 /**
42 * Check if user can delete.
43 *
44 * @since 4.14.0
45 */
46 public function canDelete(): bool
47 {
48 return $this->currentUserCan('delete');
49 }
50
51 /**
52 * Check if the current user has the specified capability.
53 *
54 * @since 4.14.0
55 */
56 protected function currentUserCan(string $capability): bool
57 {
58 if ($this->isAdmin()) {
59 return true;
60 }
61
62 return current_user_can($this->getCapability($capability));
63 }
64
65 /**
66 * Get the user capability string for the given capability type.
67 *
68 * @since 4.14.0
69 */
70 public function getCapability(string $cap): string
71 {
72 $caps = $this->getCapabilities($this::getType());
73
74 return $caps[$cap] ?? '';
75 }
76
77 /**
78 * @since 4.14.0
79 */
80 public function viewCap(): string
81 {
82 return $this->getCapability('view');
83 }
84
85 /**
86 * @since 4.14.0
87 */
88 public function editCap(): string
89 {
90 return $this->getCapability('edit');
91 }
92
93 /**
94 * @since 4.14.0
95 */
96 public function deleteCap(): string
97 {
98 return $this->getCapability('delete');
99 }
100
101 /**
102 * @since 4.14.0
103 */
104 protected function getCapabilities(string $type): array
105 {
106 return [
107 // Post type.
108 "edit" => "edit_{$type}s",
109 "edit_others" => "edit_others_{$type}s",
110 "publish" => "publish_{$type}s",
111 "read_private" => "read_private_{$type}s",
112 "delete" => "delete_{$type}s",
113 "delete_private" => "delete_private_{$type}s",
114 "delete_published" => "delete_published_{$type}s",
115 "delete_others" => "delete_others_{$type}s",
116 "edit_private" => "edit_private_{$type}s",
117 "edit_published" => "edit_published_{$type}s",
118 "view" => "view_{$type}s",
119
120 // Terms / taxonomies.
121 "manage_terms" => "manage_{$type}_terms",
122 "edit_terms" => "edit_{$type}_terms",
123 "delete_terms" => "delete_{$type}_terms",
124 "assign_terms" => "assign_{$type}_terms",
125
126 // Custom capabilities.
127 "view_stats" => "view_{$type}_stats",
128 "import" => "import_{$type}s"
129 ];
130 }
131 }
132