Added permission to control who can access label scanner.

This commit is contained in:
Jan Böhmer 2020-05-08 12:50:44 +02:00
parent 1f48247474
commit 9a9cd8e887
4 changed files with 18 additions and 9 deletions

View file

@ -291,6 +291,9 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
timetravel: timetravel:
label: "perm.tools.timeTravel" label: "perm.tools.timeTravel"
bit: 14 bit: 14
label_scanner:
label: "perm.tools.label_scanner"
bit: 16
groups: groups:
label: "perm.groups" label: "perm.groups"

View file

@ -51,6 +51,8 @@ class ScanController extends AbstractController
*/ */
public function dialog(Request $request): Response public function dialog(Request $request): Response
{ {
$this->denyAccessUnlessGranted('@tools.label_scanner');
$form = $this->createForm(ScanDialogType::class); $form = $this->createForm(ScanDialogType::class);
$form->handleRequest($request); $form->handleRequest($request);

View file

@ -118,17 +118,19 @@ class ToolsTreeBuilder
{ {
$nodes = []; $nodes = [];
if($this->security->isGranted('@labels.create_labels')) { if ($this->security->isGranted('@labels.create_labels')) {
$nodes[] = new TreeViewNode( $nodes[] = new TreeViewNode(
$this->translator->trans('tree.tools.tools.label_dialog'), $this->translator->trans('tree.tools.tools.label_dialog'),
$this->urlGenerator->generate('label_dialog') $this->urlGenerator->generate('label_dialog')
); );
} }
$nodes[] = new TreeViewNode( if ($this->security->isGranted('@tools.label_scanner')) {
$this->translator->trans('tree.tools.tools.label_scanner'), $nodes[] = new TreeViewNode(
$this->urlGenerator->generate('scan_dialog') $this->translator->trans('tree.tools.tools.label_scanner'),
); $this->urlGenerator->generate('scan_dialog')
);
}
return $nodes; return $nodes;
} }

View file

@ -17,9 +17,11 @@
<div class="collapse navbar-collapse" id="navbarContent"> <div class="collapse navbar-collapse" id="navbarContent">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
<li class="nav-item"> {% if is_granted("@tools.label_scanner") %}
<a class="nav-link" href="{{ url("scan_dialog") }}">{% trans %}navbar.scanner.link{% endtrans %}</a> <li class="nav-item">
</li> <a class="nav-link" href="{{ url("scan_dialog") }}">{% trans %}navbar.scanner.link{% endtrans %}</a>
</li>
{% endif %}
</ul> </ul>
<div class="form-inline my-2 my-lg-0 ml-auto" id="searchbar"> <div class="form-inline my-2 my-lg-0 ml-auto" id="searchbar">