DEV Community

Ali Buğra Okkalı for Açıklab

Posted on

5 1

Liman Üzerinde Fonksiyon Yetkileri

Bir Liman eklentisinde fonksiyon yetkilendirmesinin nasıl yapıldığını inceleyeceğiz.

Örnek olarak Training eklentisindeki "Task Çalıştır" butonunu yetkiye göre görünür hale getirelim.

Image description

db.json

db.json'a aşağıdaki array'i ekleyelim. Array'in her bir elemanı bir fonksiyon yetkisine karşılık gelir.

name: Fonksiyon Adı
description: Açıklama
isActive: Yetki Sistemine Dahil Et
display: Sunucu Loglarında Görüntüle

"functions": [
        {
            "name": "runTask",
            "description": "RUN_TASK",
            "isActive": "true",
            "display": "true"
        }
],
Enter fullscreen mode Exit fullscreen mode

views/taskview/main.blade.php

Butonun olduğu dosyaya gidip butonu db.json'da tanımladığımız fonksiyon yetkisi ile bağlayalım.

...
  @if(can('runTask'))
    <button class="btn btn-primary" onclick="exampleTask()"><i class="fas fa-check-circle"></i> {{ __("Task çalıştır") }}</button>
  @else
    <b> Task Çalıştırmak İçin Yetkiniz Yok ! </b>
  @endif
...
Enter fullscreen mode Exit fullscreen mode

Test

  • Yetkisiz Kullanıcı

Liman arayüzünden yeni bir kullanıcı oluşturalım. Eklentinin çalıştığı sunucuya ve eklentiye yetki verelim. O kullanıcı ile giriş yaptığımızda eklentide butonun yerine bir uyarı mesajı olduğunu görebiliriz.

Image description

  • Yetkili Kullanıcı

Aynı kullanıcıya Administrator hesabı ile arayüzden fonksiyon yetkisi verelim.

Image description

Kullanıcı uyarı mesajı yerine butonu görebilir hale geldi.

Image description

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more