Code Duplication    Length = 15-16 lines in 5 locations

core/libraries/rest_api/calculations/Base.php 1 location

@@ 26-41 (lines=16) @@
23
     */
24
    protected function verifyCurrentUserCan($required_permission, $attempted_calculation)
25
    {
26
        if (! current_user_can($required_permission)) {
27
            throw new RestException(
28
                'permission_denied',
29
                sprintf(
30
                    __(
31
                    // @codingStandardsIgnoreStart
32
                        'Permission denied, you cannot calculate %1$s on %2$s because you do not have the capability "%3$s"',
33
                        // @codingStandardsIgnoreEnd
34
                        'event_espresso'
35
                    ),
36
                    $attempted_calculation,
37
                    EEH_Inflector::pluralize_and_lower($this->getResourceName()),
38
                    $required_permission
39
                )
40
            );
41
        }
42
    }
43
44

core/libraries/rest_api/controllers/model/Write.php 4 locations

@@ 137-151 (lines=15) @@
134
    {
135
        Capabilities::verifyAtLeastPartialAccessTo($model, EEM_Base::caps_edit, 'create');
136
        $default_cap_to_check_for = EE_Restriction_Generator_Base::get_default_restrictions_cap();
137
        if (! current_user_can($default_cap_to_check_for)) {
138
            throw new RestException(
139
                'rest_cannot_create_' . EEH_Inflector::pluralize_and_lower(($model->get_this_model_name())),
140
                sprintf(
141
                    esc_html__(
142
                    // @codingStandardsIgnoreStart
143
                        'For now, only those with the admin capability to "%1$s" are allowed to use the REST API to insert data into Event Espresso.',
144
                        // @codingStandardsIgnoreEnd
145
                        'event_espresso'
146
                    ),
147
                    $default_cap_to_check_for
148
                ),
149
                array('status' => 403)
150
            );
151
        }
152
        $submitted_json_data = array_merge((array) $request->get_body_params(), (array) $request->get_json_params());
153
        $model_data = ModelDataTranslator::prepareConditionsQueryParamsForModels(
154
            $submitted_json_data,
@@ 189-203 (lines=15) @@
186
    {
187
        Capabilities::verifyAtLeastPartialAccessTo($model, EEM_Base::caps_edit, 'edit');
188
        $default_cap_to_check_for = EE_Restriction_Generator_Base::get_default_restrictions_cap();
189
        if (! current_user_can($default_cap_to_check_for)) {
190
            throw new RestException(
191
                'rest_cannot_edit_' . EEH_Inflector::pluralize_and_lower(($model->get_this_model_name())),
192
                sprintf(
193
                    esc_html__(
194
                    // @codingStandardsIgnoreStart
195
                        'For now, only those with the admin capability to "%1$s" are allowed to use the REST API to update data into Event Espresso.',
196
                        // @codingStandardsIgnoreEnd
197
                        'event_espresso'
198
                    ),
199
                    $default_cap_to_check_for
200
                ),
201
                array('status' => 403)
202
            );
203
        }
204
        $obj_id = $request->get_param('id');
205
        if (! $obj_id) {
206
            throw new RestException(
@@ 243-257 (lines=15) @@
240
    {
241
        Capabilities::verifyAtLeastPartialAccessTo($model, EEM_Base::caps_delete, 'delete');
242
        $default_cap_to_check_for = EE_Restriction_Generator_Base::get_default_restrictions_cap();
243
        if (! current_user_can($default_cap_to_check_for)) {
244
            throw new RestException(
245
                'rest_cannot_delete_' . EEH_Inflector::pluralize_and_lower(($model->get_this_model_name())),
246
                sprintf(
247
                    esc_html__(
248
                    // @codingStandardsIgnoreStart
249
                        'For now, only those with the admin capability to "%1$s" are allowed to use the REST API to delete data into Event Espresso.',
250
                        // @codingStandardsIgnoreEnd
251
                        'event_espresso'
252
                    ),
253
                    $default_cap_to_check_for
254
                ),
255
                array('status' => 403)
256
            );
257
        }
258
        $obj_id = $request->get_param('id');
259
        // this is where we would apply more fine-grained caps
260
        $model_obj = $model->get_one_by_ID($obj_id);
@@ 567-581 (lines=15) @@
564
        // Check generic caps. For now, we're only allowing access to this endpoint to full admins.
565
        Capabilities::verifyAtLeastPartialAccessTo($model, EEM_Base::caps_edit, 'edit');
566
        $default_cap_to_check_for = EE_Restriction_Generator_Base::get_default_restrictions_cap();
567
        if (! current_user_can($default_cap_to_check_for)) {
568
            throw new RestException(
569
                'rest_cannot_edit_' . EEH_Inflector::pluralize_and_lower(($model->get_this_model_name())),
570
                sprintf(
571
                    esc_html__(
572
                        // @codingStandardsIgnoreStart
573
                        'For now, only those with the admin capability to "%1$s" are allowed to use the REST API to add relations in Event Espresso.',
574
                        // @codingStandardsIgnoreEnd
575
                        'event_espresso'
576
                    ),
577
                    $default_cap_to_check_for
578
                ),
579
                array('status' => 403)
580
            );
581
        }
582
        // Get the main model object.
583
        $model_obj = $this->getOneOrThrowException($model, $request->get_param('id'));
584
        // For now, we require the other model object to exist too. This might be relaxed later.