Propojení presenteru s modelem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- matousekmich
- Člen | 3
Zdravím
a předem se omlouvám za triviální dotaz, ale pravdpěpodobně mi uniká něco velmi podstatného. :(
Pokouším se implementovat Autentizaci skrze ACL, s tím, že jsem vytvořil v modelu novou třídu AclModel
<?php
namespace App\Model;
class AclModel {
private $acl = null;
public function __construct()
{
$this->acl = new Nette\Security\Permission;
etc.
}
Ten se následně pokouším propojit s BasePresenter
<?php
namespace App\Presenters;
use Nette,
App\Model,
Nette\Application\UI\Form;
abstract class BasePresenter extends Nette\Application\UI\Presenter
{ public function startup() {
parent::startup();
if (!$this->getUser()->isLoggedIn()) {//pokud uživatel není přihlášen
$acl = new AclModel(); //vytovření ACL modelu
atd.
}
Třída se ale pořád hledá ve složce Presenters…
Viz laděnka:
Class 'App\Presenters\AclModel' not found search►
Tuším, že to bude triviální, ale velmi ocením pomoc! ;)
- Lukeluha
- Člen | 130
ACL vůbec v presenteru nepotřebuješ. Jediné, co stačí, je zaregistrovat jej v konfigu jako autorizátor.
Já osobně mám pouze továrničku AclFactory
, v ní
public static function createAcl()
{
$permission = new Permission();
$permission->addRole('guest');
...
return $permission;
a v configu poté
authorizator:
class: Nette\Security\Permission
create: App\Security\AclFactory::createAcl