Sayfalar İçindeki İşlevleri Korumak

Top  Previous 

Güvenlik bileşeni; sadece sisteme girmek, çıkmak ve sayfaları korumaktan ibaret değildir. Sayfalar içine, oldukça detaylı ve buna rağmen kolay yönetilebilen kontrol noktaları yerleştirebiliriz.

Sayfaların "Erişim Kontrolu" özelliklerini belirleyerek erişimi kısıtlayabileceğimizi biliyoruz. Ancak bu; kullanıcıların sayfalara erişmesini istiyor ama, sayfadaki tüm fonksiyonları kontrolsüzce kullanmasını istemiyorsak yeterli olmaz.

İşte bir örnek:

Projemizde, veritabanındaki mevcut siparişlerin listelendiği bir sayfa var olsun. Sadece "SIPARISLERI_GOREBILIR" adlı kontrol noktasına sahip olan kullanıcıların sayfayı görebilmelerini istiyoruz. Sayfa üzerinde sağlanan işlevlerden biri; listeden seçilen siparişlerin silinebilmesidir. Bu işlevin sayfayı görebilen tüm kullanıcılara açık olmasını istemiyoruz. Bu nedenlerle; bu işlevi "SIPARISLERI_SILEBILIR" kontrol noktası ile korumak istiyoruz.

"Siparişler" Sayfasını Korumak

"Siparişler" adlı sayfayı sadece "SIPARISLERI_GOREBILIR" kontrol noktasına sahip olan kullanıcıların görebilmelerini istiyoruz. Bunun için yapmamız gereken tek şey bu sayfanın "Erişim Kontrolu" özelliğinde aşağıdaki gibi bir tanım yapmaktır.

SIPARISLERI_GOREBILIR,GirisSayfasi,HataSayfasi

 
İlk parametre; kontrol noktasının adıdır. Bir kullanıcı, ancak sisteme giriş yapmış ise ve bu kontrol noktasına sahip ise bu sayfayı görebilecektir. Eğer kullanıcı henüz sisteme giriş yapmamış ise, 2. parametrede belirtilen sayfaya yönlendirilecektir. Muhtemelen bu sayfada sisteme girişi sağlayacak olan "Login" elemanı mevcuttur.

Eğer kullanıcı, sisteme giriş yapmış ancak; "SIPARISLERI_GOREBILIR" kontrol noktasına sahip değilse, kendisine 3. parametrede belirtilen hata sayfası gösterilecektir. 3. parametre verilmemiş ise bu durumda MoreMotion kendi hata sayfasını gösterecektir.

"Siparişler" sayfasındaki "Seçilen Siparişleri Sil" İşlevini Korumak

Sayfa üzerinde "Seçilen Siparişleri Sil" işlevi, bir komut düğmesi ile harekete geçirilmektedir. Amacımız; bu komut düğmesini sadece "SIPARISLERI_SILEBILIR" kontrol noktasına sahip olan kullanıcılara göstermektir.

"mor_security_userinfo_??" Bileşen Veri Kaynağı

Kullanıcı sisteme giriş yaptıktan sonra, güvenlik bileşeni içinde, kullanıcı ile ilgili tüm bilginin bulunduğu "mor_security_userinfo_??" adlı bir veri kaynağı hazırlar. '??' karakterlerinin olduğu yere güvenlik bölgesinin adı gelir.

 

  <mor_security_userinfo_main>

    <username>ahmet</username>

    <fullname>Ahmet Kılıç</fullname>

    <email>ahmet.kilic@firmasi.com.tr</email>

    <loggedin>true</loggedin>

    <checkpoints>

      <SIPARISLERI_GOREBILIR>true</SIPARISLERI_GOREBILIR>

      <SIPARISLERI_SILEBILIR>true</SIPARISLERI_SILEBILIR>

    </checkpoints>

  </mor_security_userinfo_main>

 

Veri kaynağı adının sonunda güvenlik gölgesinin adı olan 'main' yer almaktadır.

XML içindeki checkpoints düğümün alt düğümlerini kontrol ederek, sayfadaki dilediğimiz elemanı görünmez veya etkisiz hale getirebiliriz.
 

Komut Düğmesini Görünmez Yapmak

Aşağıdaki ifadeyi Komut Düğmesinin "Gösterme Koşulu" özelliğine girin.

boolean(/mor_security_userinfo_main.checkpoints.SIPARISLERI_SILEBILIR)

 

 

Komut Düğmesini Etkisiz Hale Getirmek

Aşağıdaki ifadeyi Komut Düğmesinin "İşlevsiz" özelliğine girin.

$vof(not(boolean(/mor_security_userinfo_main.checkpoints.SIPARISLERI_SILEBILIR)))