Code Duplication    Length = 25-26 lines in 2 locations

src/Eccube/Controller/Admin/Store/PluginController.php 2 locations

@@ 277-301 (lines=25) @@
274
     * @param Plugin      $Plugin
275
     * @return RedirectResponse
276
     */
277
    public function enable(Application $app, Plugin $Plugin)
278
    {
279
        $this->isTokenValid($app);
280
281
        if ($Plugin->isEnable()) {
282
            $app->addError('admin.plugin.already.enable', 'admin');
283
        } else {
284
            $requires = $this->pluginService->findRequirePluginNeedEnable($Plugin->getCode());
285
            if (!empty($requires)) {
286
                $DependPlugin = $this->pluginRepository->findOneBy(['code' => $requires[0]]);
287
                $dependName = $requires[0];
288
                if ($DependPlugin) {
289
                    $dependName = $DependPlugin->getName();
290
                }
291
                $message = $app->trans('admin.plugin.enable.depend', ['%name%' => $Plugin->getName(), '%depend_name%' => $dependName]);
292
                $app->addError($message, 'admin');
293
294
                return $app->redirect($app->url('admin_store_plugin'));
295
            }
296
            $this->pluginService->enable($Plugin);
297
            $app->addSuccess('admin.plugin.enable.complete', 'admin');
298
        }
299
300
        return $app->redirect($app->url('admin_store_plugin'));
301
    }
302
303
    /**
304
     * 対象のプラグインを無効にします。
@@ 312-337 (lines=26) @@
309
     * @param Plugin      $Plugin
310
     * @return RedirectResponse
311
     */
312
    public function disable(Application $app, Plugin $Plugin)
313
    {
314
        $this->isTokenValid($app);
315
316
        if ($Plugin->isEnable()) {
317
            $dependents = $this->pluginService->findDependentPluginNeedDisable($Plugin->getCode());
318
            if (!empty($dependents)) {
319
                $dependName = $dependents[0];
320
                $DependPlugin = $this->pluginRepository->findOneBy(['code' => $dependents[0]]);
321
                if ($DependPlugin) {
322
                    $dependName = $DependPlugin->getName();
323
                }
324
                $message = $app->trans('admin.plugin.disable.depend', ['%name%' => $Plugin->getName(), '%depend_name%' => $dependName]);
325
                $app->addError($message, 'admin');
326
327
                return $app->redirect($app->url('admin_store_plugin'));
328
            }
329
330
            $this->pluginService->disable($Plugin);
331
            $app->addSuccess('admin.plugin.disable.complete', 'admin');
332
        } else {
333
            $app->addError('admin.plugin.already.disable', 'admin');
334
        }
335
336
        return $app->redirect($app->url('admin_store_plugin'));
337
    }
338
339
    /**
340
     * 対象のプラグインを削除します。