-
Notifications
You must be signed in to change notification settings - Fork 1
/
AdminFileFilters.php
92 lines (75 loc) · 2.34 KB
/
AdminFileFilters.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
namespace Nelliel\Admin;
if (!defined('NELLIEL_VERSION'))
{
die("NOPE.AVI");
}
use Nelliel\Domain;
use Nelliel\Auth\Authorization;
class AdminFileFilters extends AdminHandler
{
function __construct(Authorization $authorization, Domain $domain)
{
$this->database = $domain->database();
$this->authorization = $authorization;
$this->domain = $domain;
$this->validateUser();
}
public function actionDispatch($inputs)
{
if ($inputs['action'] === 'add')
{
$this->add();
}
else if ($inputs['action'] == 'remove')
{
$this->remove();
}
$this->renderPanel();
}
public function renderPanel()
{
$output_panel = new \Nelliel\Output\OutputPanelFileFilters($this->domain);
$output_panel->render(['user' => $this->session_user], false);
}
public function creator()
{
}
public function add()
{
if (!$this->session_user->checkPermission($this->domain, 'perm_manage_file_filters'))
{
nel_derp(341, _gettext('You are not allowed to add file filters.'));
}
$type = $_POST['hash_type'];
$notes = $_POST['file_notes'];
$board_id = $_POST['board_id'];
$output_filter = new \Nelliel\OutputFilter();
$hashes = $output_filter->newlinesToArray($_POST['file_hashes']);
foreach ($hashes as $hash)
{
$prepared = $this->database->prepare(
'INSERT INTO "' . FILE_FILTERS_TABLE .
'" ("hash_type", "file_hash", "file_notes", "board_id") VALUES (?, ?, ?, ?)');
$this->database->executePrepared($prepared, [$type, pack("H*", $hash), $notes, $board_id]);
}
$this->renderPanel();
}
public function editor()
{
}
public function update()
{
}
public function remove()
{
if (!$this->session_user->checkPermission($this->domain, 'perm_manage_file_filters'))
{
nel_derp(342, _gettext('You are not allowed to remove file filters.'));
}
$filter_id = $_GET['filter-id'];
$prepared = $this->database->prepare('DELETE FROM "' . FILE_FILTERS_TABLE . '" WHERE "entry" = ?');
$this->database->executePrepared($prepared, [$filter_id]);
$this->renderPanel();
}
}