Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] sfDoctrineGuardPlugin - routing
stirith
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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

?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
stirith
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
bikerszymek
post
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 23.08.2008

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
stirith
post
Post #6





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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ą ?
Go to the top of the page
+Quote Post
bikerszymek
post
Post #7





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 23.08.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował bikerszymek 9.12.2009, 23:00:06
Go to the top of the page
+Quote Post
stirith
post
Post #8





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:03