DatabasePresenter   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 7
dl 0
loc 45
ccs 0
cts 27
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A renderDefault() 0 7 1
A actionCreate() 0 7 2
A actionEdit() 0 8 2
A createComponentForm() 0 4 1
A handleDelete() 0 12 3
1
<?php
2
3
namespace UniMan\Presenters;
4
5
use UniMan\Core\Forms\DatabaseForm\DatabaseForm;
6
use Nette\Application\ForbiddenRequestException;
7
8
class DatabasePresenter extends BasePresenter
9
{
10
    public function renderDefault($driver, array $sorting = [])
11
    {
12
        $this->template->driver = $driver;
13
        $this->template->databasesHeaders = $this->driver->headerManager()->databasesHeaders();
14
        $this->template->databases = $this->driver->dataManager()->databases($sorting);
15
        $this->template->sorting = $sorting;
16
    }
17
18
    public function actionCreate($driver)
19
    {
20
        if (!$this->driver->permissions()->canCreateDatabase()) {
21
            throw new ForbiddenRequestException('Create database is not allowed');
22
        }
23
        $this->template->driver = $driver;
24
    }
25
26
    public function actionEdit($driver, $database)
27
    {
28
        if (!$this->driver->permissions()->canEditDatabase($database)) {
29
            throw new ForbiddenRequestException('Edit database is not allowed');
30
        }
31
        $this->template->driver = $driver;
32
        $this->database = $database;
33
    }
34
35
    public function handleDelete($driver, $database)
36
    {
37
        if (!$this->driver->permissions()->canDeleteDatabase($database)) {
38
            throw new ForbiddenRequestException('Delete database is not allowed');
39
        }
40
        if ($this->driver->dataManager()->deleteDatabase($database)) {
41
            $this->flashMessage('Database was successfully deleted', 'success');
42
        } else {
43
            $this->flashMessage('Database was not deleted', 'danger');
44
        }
45
        $this->redirect('this', $driver);
46
    }
47
48
    protected function createComponentForm()
49
    {
50
        return new DatabaseForm($this->translator, $this->driver, $this->database);
51
    }
52
}
53