PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 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.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Permissions / Models / ActivationPermissionsController.php
surecart / app / src / Permissions / Models Last commit date
ActivationPermissionsController.php 1 year ago BalanceTransactionPermissionsController.php 3 years ago ChargePermissionsController.php 4 years ago CheckoutPermissionsController.php 1 year ago CustomerPermissionsController.php 2 years ago DownloadPermissionsController.php 9 months ago InvoicePermissionsController.php 4 years ago LicensePermissionsController.php 3 years ago MediaPermissionsController.php 3 years ago ModelPermissionsController.php 1 year ago OrderPermissionsController.php 3 years ago PaymentMethodPermissionsController.php 4 years ago PurchasePermissionsController.php 4 years ago RefundPermissionsController.php 4 years ago SubscriptionPermissionsController.php 2 months ago
ActivationPermissionsController.php
142 lines
1 <?php
2 namespace SureCart\Permissions\Models;
3
4 use SureCart\Models\Activation;
5 use SureCart\Models\License;
6
7 /**
8 * Handle various charge permissions.
9 */
10 class ActivationPermissionsController extends ModelPermissionsController {
11 /**
12 * Can user read multiple.
13 *
14 * @param \SureCart\Models\User $user User model.
15 * @param array $args {
16 * Arguments that accompany the requested capability check.
17 *
18 * @type string $0 Requested capability.
19 * @type int $1 Concerned user ID.
20 * @type mixed ...$2 Optional second and further parameters, typically object ID.
21 * }
22 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
23 * and boolean values represent whether the user has that capability.
24 * @return boolean Does user have permission.
25 */
26 public function read_sc_activation( $user, $args, $allcaps ) {
27 if ( ! empty( $allcaps['read_sc_products'] ) ) {
28 return true;
29 }
30 return $this->belongsToUser( Activation::class, $args[2], $user );
31 }
32
33 /**
34 * Can user read multiple.
35 *
36 * @param \SureCart\Models\User $user User model.
37 * @param array $args {
38 * Arguments that accompany the requested capability check.
39 *
40 * @type string $0 Requested capability.
41 * @type int $1 Concerned user ID.
42 * @type mixed ...$2 Optional second and further parameters, typically object ID.
43 * }
44 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
45 * and boolean values represent whether the user has that capability.
46 * @return boolean Does user have permission.
47 */
48 public function read_sc_activations( $user, $args, $allcaps ) {
49 if ( ! empty( $allcaps['read_sc_products'] ) ) {
50 return true;
51 }
52
53 $license_ids = $args[2]['license_ids'] ?? [];
54 if ( empty( $license_ids ) ) {
55 return false;
56 }
57
58 $licenses = License::where( [ 'ids' => $license_ids ] )->get();
59
60 if ( is_wp_error( $licenses ) || empty( $licenses ) ) {
61 return false;
62 }
63
64 // Ensure all licenses belong to the user.
65 foreach ( $licenses as $license ) {
66 if ( ! $license->belongsToUser( $user ) ) {
67 return false;
68 }
69 }
70
71 return true;
72 }
73
74 /**
75 * Can user read multiple.
76 *
77 * @param \SureCart\Models\User $user User model.
78 * @param array $args {
79 * Arguments that accompany the requested capability check.
80 *
81 * @type string $0 Requested capability.
82 * @type int $1 Concerned user ID.
83 * @type mixed ...$2 Optional second and further parameters, typically object ID.
84 * }
85 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
86 * and boolean values represent whether the user has that capability.
87 * @return boolean Does user have permission.
88 */
89 public function edit_sc_activation( $user, $args, $allcaps ) {
90 if ( ! empty( $allcaps['edit_sc_products'] ) ) {
91 return true;
92 }
93
94 // only allowed to update the fingerprint.
95 $params = $args[3];
96 if ( ! $this->requestOnlyHasKeys( $params, array( 'fingerprint' ) ) ) {
97 return false;
98 }
99
100 // only allowed to update if it belongs to the user.
101 return $this->belongsToUser( Activation::class, $args[2], $user );
102 }
103
104 /**
105 * Publish
106 *
107 * @param \SureCart\Models\User $user User model.
108 * @param array $args {
109 * Arguments that accompany the requested capability check.
110 *
111 * @type string $0 Requested capability.
112 * @type int $1 Concerned user ID.
113 * @type mixed ...$2 Optional second and further parameters, typically object ID.
114 * }
115 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
116 * and boolean values represent whether the user has that capability.
117 * @return boolean Does user have permission.
118 */
119 public function publish_sc_activations( $user, $args, $allcaps ) {
120 return ! empty( $allcaps['publish_sc_products'] );
121 }
122
123 /**
124 * Does the model belong to the user?
125 *
126 * @param string $model Model name.
127 * @param string $id Model ID.
128 * @param \SureCart\Models\User $user User model.
129 * @return boolean
130 */
131 public function belongsToUser( $model, $id, $user ) {
132 $model = $model::with( [ 'license' ] )->find( $id );
133 if ( is_wp_error( $model ) ) {
134 return $model;
135 }
136 if ( ! $model->license ) {
137 return false;
138 }
139 return $model->license->belongsToUser( $user );
140 }
141 }
142