Jak na zprovoznění ACL modelu?
- Pavel Janda
- Člen | 977
@Vorel12 Procházel jsi všechny tutoriály? https://play.nette.org/…i-acl-vrstvy
Editoval Pavel Janda (7. 5. 2016 7:22)
- Vorel12
- Člen | 7
@PavelJanda Super, podle návodu mi to funguje. Ale mám ještě jeden
problém. Mám místnosti ke které může mazat a editovat pouze administrátor
to by mi fungovalo, ale potřeboval bych poradit s tím, jak udělat to, aby
místnost mohl smazat a editovat i zakladatel dané místnosti (právo editovat
a mazat by měl zakladatel pouze pro místnost, kterou založil).
V databázi mám tabulku která propojuje id místnosti a id osoby, která je
jejím zakladatelem, ale nevím jak to nějak přidat do ACL modelu.
Děkuji.
- GEpic
- Člen | 566
Pokud s Nette začínáš, tak nejspíš využíváš Nette Database. A pokud máš správně nastavené relace, tak je zde řešení např toto:
public function handleDeleteRoom($room_id)
{
$room = $this->database->table('rooms')->get($room_id);
if ($this->user->isInRole('admin') || $this->user->id == $room->owner->id) {
# Alohoruma smaž místnost awesome kód
$this->flashMessage('Smazáno', 'success');
} else {
$this->flashMessage('You shall not scrub', 'danger');
}
$this->redirect("this");
}
A v šabloně poté:
<a n:href="deleteRoom! $room->id">Smazat místnost</a>
Editoval GEpic (24. 5. 2016 4:15)