Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] sfDoctrineGuardPlugin - routing
Forum PHP.pl > Forum > PHP > Frameworki
stirith
Postępuje zgodnie z instrukcją czyli:

- instaluje plugin,
- dodaje go jako: enabled do ProjectConfiguration.class.php
- Przebudowywuje mój model
- cc
- dodaje:
Kod
<span style="font-family: monospace;"></span><code>enabled_modules:      [default, sfGuardAuth]</code>

- dodaje:
Kod
login_module:           sfGuardAuth

login_action:           signin



secure_module:          sfGuardAuth

secure_action:          secure


- w frontend/lib zmieniam na :
Kod
sfGuardSecurityUser


i dla określonego module daje :

Kod
default:

   is_secure: true



Jak używałem propela, to tyle wystarczyło...

co mam jeszcze zrobić używając doctrine, żeby po autoryzacji zapamiętał adres który użytkownik chciał wcześniej wejść, a nie przenosił na strone główną, czyli:
użytkownik wchodzi na www.mojastrona.pl/profil -> wyskakuje formularz do logowania, uwierzytelnienie jest ok, i teraz powinno go przekierować na

www.mojastrona.pl/profil a nie na www.mojastrona.pl -> Jak to osiągnąć ?

chodzi o wersje 1.2

?
Crozin
O ile dobrze kojarzę to tyle powinno wystarczyć. Zobacz sobie czy poniższa lista w sfGuard i sfDoctrineGuard jest identyczna (oczywiście pomijając elementy specyficzne dla danego ORM)
1) sfGuardSecurityUser::getReferer()
2) Czy w akcji sfGuardAuth::signin() fragment wykonujący przekeirowanie jest taki sam
stirith
1.

Kod
sfGuardSecurityUser::getReferer()


Propel:

Kod
   $referer = $this->getAttribute('referer', $default);
     $this->getAttributeHolder()->remove('referer');

     return $referer ? $referer : $default;


Doctrine:

Kod
    $referer = $this->getAttribute('referer', $default);
     $this->getAttributeHolder()->remove('referer');

     return $referer;


2.

Kod
sfGuardAuth::signin()


Propel:
Kod
$signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer('@homepage'));

         return $this->redirect($signinUrl);


Doctrine:

Kod
$signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer($request->getReferer()));

         return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');



Szczerze mówiąc mało mi to mówi...Rzucicie okiem ?
Crozin
Jeżeli w wersji Propel-owej działa, a w Doctrine-owej nie, to można spróbować skopiować fragment z tej pierwszej do ostatniej. winksmiley.jpg
bikerszymek
Cytat(stirith @ 8.12.2009, 21:06:38 ) *

co mam jeszcze zrobić używając doctrine, żeby po autoryzacji zapamiętał adres który użytkownik chciał wcześniej wejść, a nie przenosił na strone główną, czyli:
użytkownik wchodzi na www.mojastrona.pl/profil -> wyskakuje formularz do logowania, uwierzytelnienie jest ok, i teraz powinno go przekierować na

www.mojastrona.pl/profil a nie na www.mojastrona.pl -> Jak to osiągnąć ?


W kilku projektach uzywałem juz sfDoctrineGuard i u mnie za kazdym razem działo to tak jak napisales (przekierowanie po logowaniu bylo tam gdzies user probowac sie dostac).

W dokumentacji jest:

  1. #app.yml
  2. all:
  3. sf_guard_plugin:
  4. success_signin_url: @my_route?param=value # the plugin use the referer as default
  5. success_signout_url: module/action # the plugin use the referer as default

stirith
Tak to też znalazłem, ale nie wiem jak to użyć...co mam wpisać dla

Kod
success_signin_url



żeby po zalogowaniu przekierowało na wcześniej odwiedzoną ?
bikerszymek
Cytat(stirith @ 9.12.2009, 22:39:19 ) *
Tak to też znalazłem, ale nie wiem jak to użyć...co mam wpisać dla

Kod
success_signin_url



żeby po zalogowaniu przekierowało na wcześniej odwiedzoną ?


wg mnie musisz wpisac modulu/akcja ktorej blokujesz
stirith
No tak, ale jak mam kilka modułów które są "blokowane", to mam zrobić dla każdego modułu oddzielny plik app.yml w folderze config każdego modułu ? i tam wpisać po jednym module ?

No działa, tylko jest jeden problem:

Ponieważ działa to tylko jak wpisze to app.yml dla całego projektu, nie działa jak stworze w configu poszczególnego modułu app.yml i tam to wpisze...więc jak mam kilka blokniętych modułów to zawsze na jeden mi będzie przekierowywać...co zrobić?

up
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.