Failed Conditions
Push — master ( faced6...c4ab7a )
by Kentaro
41:53
created

AuthorityController   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 52.94%

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 10
c 4
b 0
f 0
lcom 0
cbo 5
dl 0
loc 65
ccs 9
cts 17
cp 0.5294
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
C index() 0 61 10
1
<?php
2
/*
3
 * This file is part of EC-CUBE
4
 *
5
 * Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
6
 *
7
 * http://www.lockon.co.jp/
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
 */
23
24
25
namespace Eccube\Controller\Admin\Setting\System;
26
27
use Eccube\Application;
28
use Eccube\Controller\AbstractController;
29
use Symfony\Component\HttpFoundation\Request;
30
31
class AuthorityController extends AbstractController
0 ignored issues
show
introduced by
Missing class doc comment
Loading history...
32
{
33
34 1
    public function index(Application $app, Request $request)
0 ignored issues
show
introduced by
Missing function doc comment
Loading history...
35
    {
36
        $AuthorityRoles = $app['eccube.repository.authority_role']->findAllSort();
37
38 1
        $form = $app->form()
39
            ->add('AuthorityRoles', 'collection', array(
40 1
                'type' => 'admin_authority_role',
41 1
                'allow_add' => true,
42 1
                'allow_delete' => true,
43 1
                'prototype' => true,
44
                'data' => $AuthorityRoles,
45
            ))
46
            ->getForm();
47
48
        if (count($AuthorityRoles) == 0) {
49
            // 1件もない場合、空行を追加
50
            $form->get('AuthorityRoles')->add(uniqid(), 'admin_authority_role');
51
        }
52
53
54
55
        if ('POST' === $request->getMethod()) {
56
57
            $form->handleRequest($request);
58
59
            if ($form->isValid()) {
60
                $data = $form->getData();
61
62
                foreach ($AuthorityRoles as $AuthorityRole) {
63
                    $app['orm.em']->remove($AuthorityRole);
64
                }
65
66
                foreach ($data['AuthorityRoles'] as $AuthorityRole) {
67
                    $Authority = $AuthorityRole->getAuthority();
68
                    $denyUrl = $AuthorityRole->getDenyUrl();
69
                    if ($Authority && !empty($denyUrl)) {
70
                        $app['orm.em']->persist($AuthorityRole);
71
                    } else {
72
                        $id = $AuthorityRole->getId();
73
                        if (!empty($id)) {
74
                            $role = $app['eccube.repository.authority_role']->find($id);
75
                            if ($role) {
76
                                // 削除
77
                                $app['orm.em']->remove($AuthorityRole);
78
                            }
79
                        }
80
                    }
81
                }
82
                $app['orm.em']->flush();
83
84
                $app->addSuccess('admin.sysmte.authority.save.complete', 'admin');
85
86
                return $app->redirect($app->url('admin_setting_system_authority'));
87
88
            }
89
        }
90
91 1
        return $app->render('Setting/System/authority.twig', array(
92 1
            'form' => $form->createView(),
93
        ));
94 1
    }
95
}
96