Ana içeriğe atla

Serene'de İzinleri Kaydetme


Serene, kullanıcı ve rol izin iletişim kutularında izinlerin bir listesini gösterir. Burada kendi izinlerinizi göstermek için bu izinleri aşağıdaki özelliklerden biriyle kullanmanız gerekir:

  • PermissionAttributeBase'den türetilen nitelikler:

    • İzin Okuma
    • İzin Değiştirme
    • İzin Ekle
    • Güncelleme İzni
    • İzni Sil
  • Sayfa ve Uç Nokta Erişim Kontrolü Nitelikleri:

    • Sayfa Yetkilendir
    • Hizmet Yetkilendirmesi

Bu nitelikler aşağıdaki türlerden biriyle birlikte kullanılabilir ve bunlardan birinde bulunabilir:

  • XYZRow'un üstünde (Okuma, Yazma, Ekleme, Güncelleme, Silme izinleri)
  • XYZPage'in üstünde ve eylem yöntemlerinde (PageAuthorize)
  • XYZEndpoint'in yanı sıra hizmet içi eylemler (ServiceAuthorize)

Bu özelliklerden birine sahip bir izin anahtarı kullandığınızda Serene, uygulama başlangıcında yansımayı kullanarak bunları otomatik olarak keşfeder.

Bunlardan herhangi birinde bir izin anahtarı kullanmıyorsanız ancak yine de bunu izin iletişim kutularında göstermek istiyorsanız, Assembly'de RegisterPermission niteliğini kullanabilirsiniz (bunu YourProject.Web'in herhangi bir yerine yazın):

[assembly: Serenity.ComponentModel.RegisterPermissionKey("MySpecialPermissionKey")]

PermissionKeys Sınıfı

Serene'deki her modül için AdminPermissionKeys.cs, NorthwindPermissionKeys.cs vb. dosyalarda PermissionKeys sınıfları vardır:

[NestedPermissionKeys]
[DisplayName("Northwind")]
public class PermissionKeys
{
    [DisplayName("Customers")]
    public class Customer
    {
        [ImplicitPermission(General), ImplicitPermission(View)]
        public const string Delete = "Northwind:Customer:Delete";
        [Description("Create/Update"), ImplicitPermission(General), ImplicitPermission(View)]
        public const string Modify = "Northwind:Customer:Modify";
        public const string View = "Northwind:Customer:View";
    }

    [Description("[General]")]
    public const string General = "Northwind:General";
}

[NestedPermissionKeys] özelliği, burada tanımlanan izin anahtarlarının da kaydedilmesini ve izin iletişim kutusunda gösterilmesini sağlar.

Bu örnekteki [ImplicitPermission] şu anda yalnızca Start#'ta çalışıyor ve bu izne sahip bir kullanıcının otomatik olarak hangi izinlere sahip olacağını kontrol ediyor.

Örneğin, bir kullanıcının "Northwind:Customer:Delete" izni işaretliyse, bu izinler kendisine açıkça verilmemiş olsa bile, "Northwind:Customer:View" ve "Northwind:General" izinlerine de sahip olduğu kabul edilir.

İzin Ağacını Düzenleme

Ağaç hiyerarşisinde izinler oluşturmak için izin anahtarlarınızda ayırıcı olarak iki nokta üst üste (:) kullanın:

  • MyModule:SubModule:Genel
  • MyModule:SubModule:İzin1
  • MyModule:SubModule:İzin2

Bu tuşlar MyModule / SubModule kategorisi altında gösterilecektir. Böylece kategori anahtarları şöyle olacaktır:

  • MyModule:AltModule:

Kategori anahtarları iki nokta üst üste ile biter. İki nokta üst üste ile biten izin anahtarlarını kullanmayın.

Lütfen kategori anahtarlarıyla eşleşen izin anahtarlarını kullanmayın. Bu tür tuşları kullanırsanız, örneğin MyModule:SubModule, MyModule / SubModule kategorisi altında değil, aynı seviyede onun yanında gösterilecektir .

Böyle bir kategori için genel izne ihtiyacınız varsa MyModule:SubModule:General gibi bir şey kullanın .

Genel'in özel bir anlamı yoktur, Ortak, Modül, Görünüm vb. dilediğinizi kullanabilirsiniz.

Kategori Görüntüleme Metinlerini Kullanma

Kategoriler izin anahtarlarından otomatik olarak belirlendiğinden kullanıcı dostu bir ekran metni yoktur.

Yerelleştirme sistemini kullanarak bunlar için ekran metinleri eklemeniz gerekir.

Yerelleştirmeye ihtiyacınız yoksa site.texts.invariant.json'a metin eklemeniz yeterli

Örneğin site.texts.invariant.json dosyasında şu anahtarlar vardır:

    "Permission.Administration:": "Administration",
    "Permission.Administration:Security": "User, Role Management and Permissions",
    "Permission.Administration:Translation": "Languages and Translations",
    "Permission.Northwind:Customer:": "Customers",
    "Permission.Northwind:Customer:View": "View",
    "Permission.Northwind:Customer:Delete": "Delete",
    "Permission.Northwind:Customer:Modify": "Create/Update",
    "Permission.Northwind:General": "[General]"

Yönetim: ve Müşteri: gibi iki nokta üst üste (:) ile biten tuşlar kategorilere karşılık gelir ve bunlar onların ekran metinleridir.

En azından değişmez dile kategoriler için metinler eklemeniz gerekir. Yerelleştirme istiyorsanız başka dillere de ekleyebilirsiniz.

Bu blogdaki popüler yayınlar

Code generetor ile oluşturulan dosyaların açıklamaları

  1. Sunum (Presentation/UI) Katmanı (Kullanıcı arayüzü - HTML, TypeScript, Dialog, Grid) 🔹 XYZPage.ts 📌 Ne İşe Yarar? Kullanıcı arayüzünün TypeScript tarafındaki tanımıdır. Serenity'nin Dialog ve Grid bileşenlerini içeren bir TypeScript sınıfıdır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcıdan veri almak ve göstermek için kullanılır. 🔹 XYZGrid.ts 📌 Ne İşe Yarar? Tablo (Grid) yapısını oluşturur ve verileri listeler. Filtreleme, sıralama ve sayfalama işlemleri için kullanılır. columnsKey ile hangi kolonların gösterileceğini belirler. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcının verileri listelediği ve etkileşimde bulunduğu yerdir. 🔹 XYZDialog.ts 📌 Ne İşe Yarar? CRUD (Create, Read, Update, Delete) işlemlerini yöneten pencere (modal) bileşeni Kullanıcı form aracılığıyla veri ekler, günceller veya siler. XYZForm.cs ile birlikte çalışır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kull...

Serenity Web Nedir?

   Serenity  , açık kaynak teknolojileri üzerine kurulu bir ASP.NET Core/TypeScript uygulama platformudur. Standart kodlardan kaçınarak, tekrarlanan görevlere harcanan zamanı azaltarak ve en iyi yazılım tasarımı uygulamalarını uygulayarak bakım maliyetlerini düşürürken geliştirmeyi kolaylaştırmayı amaçlamaktadır. Serene  , Serenity platformunu temel alan ücretsiz, açık kaynaklı başlangıç ​​uygulama şablonumuzdur.  Bu dokümantasyon aracılığıyla eğitimimiz ve diğer örnekler için esas olarak Serene'yi kullanacağız. StartSharp  , ücretli müşterilerimize sunduğumuz premium uygulama şablonudur.  Daha gösterişli bir temaya ve bazı ekstra özelliklere  ek olarak Serene'deki her şeyi içerir  .  İkisi de Serenity platformunu temel alıyor. Adında Ne Var Serenity'nin sözlük anlamları  barış  ,  rahatlık  ve  sakinliktir  . Serenity ile bunu başarmaya çalışıyoruz.  Umarız yükledikten ve kullandıktan sonra siz de bu ş...