jeden uživatel mající více rolí

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pata.kusik111
Člen | 78
+
0
-

Zdravím. Lámu si hlavu nad touto situací. Mám jednoho uživatele, který musí mít více rolí. Seznam rolí jsem vytáhnul z databáze a vložil jako array do $identity->roles viz laděnka:

roles private ⇒ array(8) ▼ {
base ⇒ „guest“ (5)
registration ⇒ „delete“ (6)
privilege ⇒ „delete“ (6)
chronicle ⇒ „delete“ (6)
vip ⇒ „delete“ (6)
news ⇒ „delete“ (6)
event ⇒ „delete“ (6)
guestbook ⇒ „delete“ (6)
 }

Problém je v tom, že když provedu dotaz:

<?php
if (!$this->user->isAllowed($this->name, $this->action))
?>

tak mi to vyhodí Nette\InvalidArgumentException: Role must be a non-empty string.

Může někdo poradit jak na to?

h4kuna
Backer | 740
+
0
-

Podle exception je to metoda checkRole, kde to projde následující podmínkou

<?php
(!is_string($role) || $role === '')
?>

zkontroluj si co tomu dáváš.

Prázdný řetězec nebo něco mimo typu string. Ikdyž jsi poslal seznam rolí… si to dumpni před tou podmínkou.

Editoval h4kuna (26. 3. 2012 6:46)