Ana içeriğe atla

Kullanıcı Formundan Kiracı Açılır Listesini Kaldırma

 Yeniden oluşturup başlattıktan sonra kullanıcı sayfası şu şekilde olacaktır:

Kiracı2 Giriş Yaptı

Evet, artık yönetici kullanıcıyı göremiyor ama bir sorun var. tenant2 öğesine tıkladığınızda hiçbir şey olmayacak ve tarayıcı konsolunda "Komut dosyası verisi yüklenemiyor: Lookup.Administration.Tenant " hatası alacaksınız :

Bu hata, depo düzeyindeki son filtrelememizle ilgili değil. Geçerli kullanıcının Kiracılar tablosuna izni olmadığından bu arama komut dosyasını yükleyemiyor Peki bunu en son (bir durumda) nasıl gördü?

Bunu görebiliyordu çünkü ilk önce yönetici olarak oturum açtık ve kullanıcı için düzenleme iletişim kutusunu açtığımızda bu arama komut dosyasını yükledik. Tarayıcı bunu önbelleğe aldı, bu nedenle tenant2 ile oturum açıp düzenleme iletişim kutusunu açtığımızda, kiracıları tarayıcı önbelleğinden yükledi.

Ancak bu sefer projeyi yeniden inşa ederken tarayıcı onu sunucudan yüklemeye çalıştı ve tenant2'nin bu izne sahip olmaması nedeniyle bu hatayı aldık. Sorun değil, bu izne sahip olmasını istemiyoruz ama bu hatadan nasıl kaçınılır?

Kiracı alanını kullanıcı formundan kaldırmamız gerekiyor . Ancak yönetici kullanıcı için bu alana ihtiyacımız var , dolayısıyla onu UserForm.cs'den silemeyiz Bu nedenle bunu şartlı olarak yapmamız gerekiyor.

Projeyi oluşturun, hepsini otomatik olarak dönüştürün ve aşağıdaki yöntemi UserDialog.ts dosyasına ekleyin :

import { localText, Authorization } from "@serenity-is/corelib";
//...
protected getPropertyItems() {
    var items = super.getPropertyItems();
    if (!Authorization.hasPermission("Administration:Tenants"))
        items = items.filter(x => x.name != UserRow.Fields.TenantId);
    return items;
}

Dialogs, kendi formunda göstereceği alanların listesini getPropertyItems yöntemiyle alır ve bu da bunları sunucu tarafı form tanımından yükler.

Mevcut kullanıcının kiracı iznine sahip olmaması durumunda TenantId alanını hariç tutarız.

Bu, orijinal kullanıcı formunu değiştirmez, yalnızca bu iletişim kutusu örneğinin listesini değiştirir.

Kullanıcı kiracı2 artık kullanıcı iletişim kutusunu açabilir.

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 ş...