Zobrazenie PDF súboru len pre určitých uživateľov(

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

Čaute,
generujem pdf a ukladám ho do

`$basePathfaktury/$uid/$id.pdf`

tj. každý user má vlastnu zložku vo fakturách a svoju fakturu so svojím ID.
Pokúšal som sa aby užívatelia sa mohli dostať ku svojím faktúram a nikto iný.
V zložke faktury som vytvoril .htaccess s

Order Allow,Deny
Deny from all

Vytvoril som si RestrictedPresenter, ktorý vlastne ovláda prístup k súborom

<?php
namespace App\Presenters;

use Nette;

class RestrictedPresenter extends BasePresenter{

    /** @var \Nette\Database\Context @inject */
    protected $database;

    public function __construct(Nette\Database\Context $database) {
        parent::__construct();
        $this->database = $database;
    }


    public function actionInvoice($id) {
        if (!$this->database->table('invoice_partner')->where('partner_id', $this->user->id)->where('id', $id)->fetch()){
            $this->redirect('Sign:in');
        }
        $filename = $id . '.pdf';

        $this->presenter->sendResponse(new FileResponse(__DIR__. 'faktury/' . $this->user->id . '/' . $filename, NULL, 'application/pdf'));
    }
}

do Routeru som si pridal

	$router[] = new Route('faktura/<id>', 'Restricted:invoice');

Na súbor sa snažím odkazovať

	{foreach $invoices as $inv}
        <p><a n:href="Restricted:invoice $inv->id">Faktúra čislo {$inv->id} </a></p>
    {/foreach}

Ak si Restricted:invoice prehodím za hocičo ine(aj nezmysel) vykreslia sa mi všetky odkazy na dané faktury(aj ked chybne) ak tam nechám restricted. vykreslovanie sa zastaví na pred foreach a ani nette nič nehlási. Ak vyskúšam manuálne zadať /Restricted/invoice/1 alebo /faktura/1 Vykreslí sa biela stránka bez ladičky.

David Matějka
Moderator | 6445
+
0
-

v adresari log taky nic? a co v logu apache?

Baski
Člen | 12
+
0
-

matej21 napsal(a):

v adresari log taky nic? a co v logu apache?

nie