2012-03-27 9 views
5

Belirli bir sayfaya (benim durumumda olan ödeme sayfası) nasıl yönlendirileceğini anlamaya çalışıyorum. Geçerli bir abonelik çalışıyor.Symfony2: Kullanıcının bir URL desenine erişmesine izin verilmediğinde belirli bir sayfaya nasıl yönlendirilir?

Tüm eylemlerimde isGranted bir kontrol koyarak bunu yapabileceğimi biliyorum, ancak sahip olduğum işlemlerin miktarı göz önüne alındığında büyük bir zaman kaybı olduğu için bu çözümü beğenmiyorum.

Firewall.access_denied_url parametrelerini inceledim, ancak AccessDenied'i ödeme sayfasına bağlamak istemiyorum. Örneğin, ROLE_ADMIN'sine sahip olmayan herhangi bir kullanıcıya yönetici sayfası erişimi reddedildi. ödeme sayfasına yönlendirilen herhangi bir anlam ifade etmiyor.

Zaten bir kullanıcının geçerli olup olmadığını kontrol eden ve bu durumda erişim izni veren bir seçmen var ancak bir kullanıcı belirli bir desene erişmeye çalıştığında ve onu yeniden yönlendirdiğinde bu seçmeni nasıl kullanabilirdim? erişim engellendi mi?

Şimdiden teşekkürler!

cevap

1

JMSAopBundle'u kullanabilirsiniz. belgelerine

:

Bu paket Symfony2'de için AOP yetenekleri ekler.

Henüz AOP'yi duymadıysanız, temel olarak çapraz kesme sorununu (örneğin, güvenlik denetimlerini) ayrılmış bir sınıfa ayırmanıza ve bu kodu bulunduğunuz her yerde tekrarlamanıza gerek kalmaz. gerekli. Diğer bir deyişle, bu, hizmet katmanınızda veya denetleyicilerinizde belirli yöntemlerin çağrılmasından önce ve sonra özel kod yürütmenize olanak tanır. Orijinal yöntemin başlatılmasını atlayabilir veya istisnalar atabilirsiniz. Uygulamada

+1

Neden basit bir denetleyici dinleyicisi kullanmıyorsunuz? – meze

+1

Sanırım bu paket işini dinleyicilerle yapıyor. Tabii ki bunu dinleyicilerle başarabilirsin. –

6

/config/security.yml güvenlik altında ekleyin:

access_denied_url:/foo/error403

Symfony'nin sonra kullanıcı/foo/error403 sayfasına erişemez tüm sayfaları yönlendirir.

+1

düzeltme, iletecektir (iç alt sorgusu) –

İlgili konular