PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.4.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.4.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 / CustomerPermissionsController.php
surecart / app / src / Permissions / Models Last commit date
BalanceTransactionPermissionsController.php 3 years ago ChargePermissionsController.php 3 years ago CheckoutPermissionsController.php 3 years ago CustomerPermissionsController.php 3 years ago InvoicePermissionsController.php 3 years ago LicensePermissionsController.php 3 years ago MediaPermissionsController.php 3 years ago ModelPermissionsController.php 3 years ago OrderPermissionsController.php 3 years ago PaymentMethodPermissionsController.php 3 years ago PurchasePermissionsController.php 3 years ago RefundPermissionsController.php 3 years ago SubscriptionPermissionsController.php 3 years ago
CustomerPermissionsController.php
99 lines
1 <?php
2 namespace SureCart\Permissions\Models;
3
4 /**
5 * Handle permissions.
6 */
7 class CustomerPermissionsController extends ModelPermissionsController {
8 /**
9 * Can user edit
10 *
11 * @param \SureCart\Models\User $user User model.
12 * @param array $args {
13 * Arguments that accompany the requested capability check.
14 * @type string $0 Requested capability.
15 * @type int $1 Concerned user ID.
16 * @type mixed ...$2 Optional second and further parameters, typically object ID.
17 * }
18 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
19 * and boolean values represent whether the user has that capability.
20 * @return boolean Does user have permission.
21 */
22 public function edit_sc_customer( $user, $args, $allcaps ) {
23 if ( ! empty( $allcaps['edit_sc_customers'] ) ) {
24 return true;
25 }
26
27 // no data provided to update. Make sure to at least pass an empty array.
28 if ( is_null( $args[3] ?? null ) ) {
29 return false;
30 }
31
32 $params = $args[3];
33
34 // request has blacklisted keys.
35 if ( ! $this->requestOnlyHasKeys( $params, [ 'billing_matches_shipping', 'email', 'name', 'first_name', 'last_name', 'phone', 'unsubscribed', 'billing_address', 'default_payment_method', 'shipping_address', 'tax_identifier' ] ) ) {
36 return false;
37 }
38
39 return $this->customerIdMatches( $user, $args[2] );
40 }
41
42 /**
43 * Can user read
44 *
45 * @param \SureCart\Models\User $user User model.
46 * @param array $args {
47 * Arguments that accompany the requested capability check.
48 * @type string $0 Requested capability.
49 * @type int $1 Concerned user ID.
50 * @type mixed ...$2 Optional second and further parameters, typically object ID.
51 * }
52 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
53 * and boolean values represent whether the user has that capability.
54 * @return boolean Does user have permission.
55 */
56 public function read_sc_customer( $user, $args, $allcaps ) {
57 if ( ! empty( $allcaps['read_sc_customers'] ) ) {
58 return true;
59 }
60 if ( empty( $args[2]['id'] ) ) {
61 return false;
62 }
63 return $this->customerIdMatches( $user, $args[2]['id'] );
64 }
65
66 /**
67 * Can user list.
68 *
69 * @param \SureCart\Models\User $user User model.
70 * @param array $args {
71 * Arguments that accompany the requested capability check.
72 * @type string $0 Requested capability.
73 * @type int $1 Concerned user ID.
74 * @type string[] ...$2 The ids to list.
75 * }
76 * @param bool[] $allcaps Array of key/value pairs where keys represent a capability name
77 * and boolean values represent whether the user has that capability.
78 *
79 * @return boolean Does user have permission.
80 */
81 public function read_sc_customers( $user, $args, $allcaps ) {
82 if ( ! empty( $allcaps['read_sc_customers'] ) ) {
83 return true;
84 }
85 return $this->isListingOwnCustomerIds( $user, $args[2]['ids'] ?? [] );
86 }
87
88 /**
89 * Does the customer id match the user id.
90 *
91 * @param \SureCart\Models\User $user User model.
92 * @param string $id Customer ID.
93 * @return boolean
94 */
95 public function customerIdMatches( $user, $id ) {
96 return in_array( $id, (array) $user->customerIds(), true );
97 }
98 }
99