Kam přesně vložit kód pro ACL
- Pudlík
- Člen | 8
Zdravím všechny, a předem se omlouvám za stupidní dotaz, ale od toho už je forum, viďte? :)
Ješte pořád nejsem zcela konformní se strukturou Nette tříd, dostávám se do toho, a momentálně na své první aplikaci řeším ACL.
V DB mám tabulku uživatelů – username, pass, role. Role je např. „admin“ či „editor“, a pro přihlášení používám normální autentikátor dle dokumentace, po přihlášení v pořádku získám identitu.
Problém je, že nevím, kam přesně ACL kód mám dát. Nevím, zda založit vlastní Class, či zda ho vložit do Presenteru „Sign“ hned poté, co uživatele autentikuju. Nějak jsem nikde nenašel komplexní příklad s celým kódem aplikace (s presentery atd.), která by ACL používala. Vše jsou vždy jen kousky kódu vytžené u kontextu.
Samozřejmě potřebuju v aplikaci poté k různým zdrojům řešit práva (read, write atd.). Potřebuju jen trošku postrčit :-)
Používám aktuální verzi Nette 2.0 beta, PHP 5.3, namespaces.
Předem díky za pomoc a pardon za stupidní dotaz.
- radikus
- Člen | 11
uestla napsal(a):
Vřele doporučuji návod od srigiho: https://doc.nette.org/…thentication
Tak přesně téhle odpovědi jsem se bál. Uvedený odkaz je na postup ve staré verzi. Error 500 to jistí. Zase budu 2 dny rozjíždět něco co tu mohlo být někde popsáno. Obecné věci v dokumentaci mi taky nepomohou, takže opravdu moc poděkuji někomu, kdo by mohl poskytnout FUNKČNÍ postup a doporučenou adresářovou strukturu pro přihlašování uživatelů ;-).
- tatyalien
- Člen | 239
Já jsem si to rozjel dle návodu, jen jsem měl problémy s neonem (s ním ještě moc neumím), ale to jsem pak dořeil. Acl mám uložené v libs/AclProj/Security/ jak to je v návodu…
neon:
<?php
common:
php: # PHP configuration
date.timezone: Europe/Prague
session.save_path: "%tempDir%/sessions"
# zlib.output_compression: yes
# default_charset: "UTF-8"
services:
authenticator:
class: AclProj\Security\Authenticator
authorizator:
class: AclProj\Security\Acl
robotLoader:
run: true
database:
driver: mysql
host: localhost
database: xxx
username: xxx
password: xxx
security:
salt: NejakyRuznyRetezec
?>
Editoval tatyalien (25. 7. 2011 11:57)
- radikus
- Člen | 11
Díky, tohle jsem třeba nikde nevyčuchal. Teď ale bojuju pravděpodobně se sessions. Hází mi to server error 500 a v logu mám: [2011–07–25 13–50–14] PHP Fatal error: Uncaught exception Nette\InvalidStateException with message ‚session_start(): session_start(): open(/var/www/clients/client10/web15/tmp/sess_beei6scldfaioushoold0t25g4, O_RDWR) failed: No such file or directory (2)‘ in /var/www/clients/client10/web15/libs/Nette/Http/Session.php:91…
Problém bude asi v ukládání nebo samotném startování session. V php session.auto_start:Off, adresář ..temp/sessions s potřebnými právy mám, cestu nastavenou v neonu. Co mi ještě chybí nebo kde může být problém?? Díky za rady.