Passed
Push — master ( a5432c...54cbff )
by Marcel
16:00
created

TuitionGradebookSettingsController::gradebook()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 31
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 22
nc 2
nop 2
dl 0
loc 31
rs 9.568
c 1
b 0
f 0
1
<?php
2
3
namespace App\Controller\Settings;
4
5
use App\Controller\AbstractController;
6
use App\Settings\TuitionGradebookSettings;
7
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
8
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
9
use Symfony\Component\Form\Extension\Core\Type\TextType;
10
use Symfony\Component\HttpFoundation\Request;
11
use Symfony\Component\HttpFoundation\Response;
12
use Symfony\Component\Routing\Annotation\Route;
13
14
#[Route('/settings')]
15
#[Security("is_granted('ROLE_ADMIN')")]
16
class TuitionGradebookSettingsController extends AbstractController {
17
18
    #[Route('/gradebook', name: 'admin_settings_gradebook')]
19
    public function gradebook(Request $request, TuitionGradebookSettings $settings): Response {
20
        $builder = $this->createFormBuilder();
21
        $builder
22
            ->add('confirm', CheckboxType::class, [
23
                'required' => true,
24
                'label' => 'admin.settings.tuition_grades.confirm.label',
25
                'help' => 'admin.settings.tuition_grades.confirm.help',
26
                'label_attr' => [
27
                    'class' => 'checkbox-custom'
28
                ]
29
            ])
30
            ->add('masterKey', TextType::class, [
31
                'required' => false,
32
                'data' => $settings->getEncryptedMasterKey(),
33
                'label' => 'admin.settings.tuition_grades.masterkey.label',
34
                'help' => 'admin.settings.tuition_grades.masterkey.help'
35
            ]);
36
37
        $form = $builder->getForm();
38
        $form->handleRequest($request);
39
40
        if($form->isSubmitted() && $form->isValid()) {
41
            $settings->setEncryptedMasterKey($form->get('masterKey')->getData());
42
            $this->addFlash('success', 'admin.settings.success');
43
44
            return $this->redirectToRoute('admin_settings_gradebook');
45
        }
46
47
        return $this->render('admin/settings/tuition_grades.html.twig', [
48
            'form' => $form->createView()
49
        ]);
50
    }
51
}