Компонент WkHtmlToPdf, проблема с аутентификацией

Я пытаюсь использовать компонент WkHtmlToPdf, это кажется хорошим инструментом, когда вы сталкиваетесь с проблемой создания файлов PDF.

Однако я не могу заставить его работать с компонентом аутентификации. Проблема в том, что я всегда получаю страницу входа в pdf. Я вошел в систему, действие разрешено в beforeFilter, и оно все равно как-то мешает.

РЕДАКТИРОВАТЬ:

Контроллер приложений:

var $components = array('Auth', 'Session');

function beforeFilter()
  {
  $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');

  if (!$this->Auth->user())
    {
    $this->layout = 'login';
    }  
  }

Контроллер:

var $components = array('WkHtmlToPdf');

function beforeFilter() // I am logged in, so this shouldn't even be needed
  {
  $this->Auth->allow('pdf');
  }

function pdf()
  {
  $this->WkHtmlToPdf->createPdf();
  }

// this function is required for wkhtmltopdf to retrieve
// the viewdump once it's rendered
function getViewDump($fileName)
  {
  $this->WkHtmlToPdf->getViewDump($fileName);
  }

Любая помощь будет принята с благодарностью, Пол


person pawelmysior    schedule 03.03.2011    source источник
comment
Можете ли вы опубликовать свой контроллер приложения и контроллер, в котором используется компонент? Подойдут только соответствующие биты   -  person JohnP    schedule 03.03.2011
comment
Разве вы не должны вызывать parent::beforFilter() в своем контроллере?   -  person JohnP    schedule 04.03.2011
comment
Ну да, но это ничего не меняет, фильтр перед фильтром в контроллере не нужен, так как я вошел в систему.   -  person pawelmysior    schedule 04.03.2011


Ответы (1)


Оказывается, надо разрешить метод getViewDump. Похоже, это не работает с Auth, но нет ничего страшного в том, чтобы разрешить его для всех, и это работает.

контроллер:

function beforeFilter()
    {
    parent::beforeFilter();
    $this->Auth->allow('getViewDump');
    }
person pawelmysior    schedule 23.05.2011