Problem při ověřování práv uživatele

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

Ahoj,
pomocí dynamického ACL ověřuji práva přístupu k určitému objektu (např. stránce). Na localhostu mi ověřování funguje v pořádku, ale po náhrátí na server při pokusu přístupu na stránku, která se ověřuje skončí chybou.. Vůbec si to nedokážu vysvětlit.. Tady jsou důležité soubory. Prosím o radu, pokud někdo ví..

config:

<?php
services:
		...
		authorizator: Authorizator( @roles, @resources, @rules  )
		...
factories:
		...
		resources: Resources
		roles: Roles
		rules: Rules
		...
?>

Authorizator.php:

<?php
use Nette\Security\Permission;

class Authorizator extends Permission
{
    public function __construct(Nette\Database\Table\Selection $roles, Nette\Database\Table\Selection $resources, Nette\Database\Table\Selection $rules)
    {
        // definition roles
        foreach ($roles as $role) {
            // pokud záznam nedědí od jiné role:
            if ($role->id_parent == NULL) {
                $this->addRole($role->key_name);
            }
            // pokud má role rodiče, přebírá po něm vlastnosti
            else {
                $this->addRole($role->key_name,$roles[$role->id_parent]['key_name']);
            }
        }

        // definition resources
        foreach ($resources as $resource) {
            $this->addResource($resource->name);
        }

        // definition rules
        // výchozí role administrátor může cokoliv
        $this->allow('admin',Permission::ALL,Permission::ALL);
        foreach ($rules as $rule) {
            $this->allow($rule->roles->key_name, $rule->resources->name, $rule->privileges->name);
        }
    }
}
?>

Zkoušel jsem upravit soubor Authorizator.php a definovat role, zdroje a práva staticky a tehdy mi to funguje i na serveru: (takto)

<?php
use Nette\Security\Permission;

class Authorizator extends Permission
{
    public function __construct()
    {
        // definition roles
        $this->addRole('registred');

        // definition resources
        $this->addResource('Honza');

        // definition rules
        $this->allow('registred', 'Honza', 'enter');
    }
}
?>
JuniorJR
Člen | 181
+
0
-

Pošli sem výstup nejlépe z Debuggeru

Juve
Člen | 27
+
0
-

JuniorJR napsal(a):

Pošli sem výstup nejlépe z Debuggeru

Jak to mám udělat? :-)

Jan Endel
Člen | 1016
+
0
-

Pošli jakou chybu ti to vygeneruje (červená stránka laděnky).

Juve
Člen | 27
+
0
-

pilec napsal(a):

Pošli jakou chybu ti to vygeneruje (červená stránka laděnky).

Jsem začátečník, ale jak jsem psal, tak na localhostu mi to funguje bez problémů, ale po nahrátí na skutečný server mi to nepochopitelně nefunguje.. Laděnka mi na localhostu nevyskakuje, vše na něm běží jak má. Něco mám špatně nejspíš v souboru Athorizator.php, pač jak už jsem popisoval, při první verzi toho souboru mi to na produkčním serveru skončí chybou 500, ale pokud změním Athorizator.php na druhou verzi (výše), kde definuje zdroje, role a pravidla staticky, tak vše funguje i na produkčním serveru.

Jan Endel
Člen | 1016
+
0
-

Ano, laděnka na produkčním nevyskakuje standartně, ale ukládá se do složky log na serveru. Tam se podívej a jako čisté HTML ji ideálně někde nahraj.

Juve
Člen | 27
+
0
-

Zasílám 2 soubory, co se mi vytvořili ve složce log po chybě na serveru:

Error:
Exception