Giriş yapmadınız.

#1 19.06.2019 13:28:12

coder2
Üye
Yer: Antalya
Kayıtlı: 09.12.2018
Mesajlar: 53

Limit konusunda nasıl bir yol izliyorsunuz ?

Merhaba arkadaşlar,

Şuanda yazdığım bir sistem var ve role tanımlamaları için spatie permission kullanıyorum.

Tanımladığım rollere kategori ekleme, hesap ekleme, sorgu sayısı gibi limitler koyuyorum. Ayrıca bazı kullanıcılara bulunduğu role den daha farklı limitlerde tanımlayabilmek istiyorum.

Mesela category ekleme limiti bir rolde 10 ise bunu nasıl bir tabloda tutmam lazım. Ayrıca kullanıcılara ayrıcalıklı role tanımlarken tabloda bunları nasıl tutmam lazım diye düşünüyorum.

Kullanıcıyı oluştururken tanımlanan role gore limitlerini bir tabloya kaydedip limit sayısını işlem yapıldıkça oradan düşürme yolunu gittim fakat limit koyulacak işlem sayısı ve proje büyüdükçe bu alan sıkıntı çıkaracak gibi duruyor.  Bu tür limitlemeler için kullanılan bir paket tavsiyesi veya yontem paylaşan olursa sevinirim.

Çevrimdışı

#2 19.06.2019 14:48:22

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

Şöyle bir şeyler belki:

+---------+---------+----------+----------+-------------+--------+
| user_id | role_id |  model   | model_id |   process   | limits |
+---------+---------+----------+----------+-------------+--------+
|       1 |         | category |          | create      |     10 |
|       1 |         | category |          | query       |     15 |
|         |       2 | post     |          | create      |     10 |
|         |       3 | post     |          | create      |     20 |
|       4 |         |          |          | api_request |     10 |
+---------+---------+----------+----------+-------------+--------+

Çevrimdışı

#3 19.06.2019 15:49:04

coder2
Üye
Yer: Antalya
Kayıtlı: 09.12.2018
Mesajlar: 53

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

mgsmus yazdı:

Şöyle bir şeyler belki:

+---------+---------+----------+----------+-------------+--------+
| user_id | role_id |  model   | model_id |   process   | limits |
+---------+---------+----------+----------+-------------+--------+
|       1 |         | category |          | create      |     10 |
|       1 |         | category |          | query       |     15 |
|         |       2 | post     |          | create      |     10 |
|         |       3 | post     |          | create      |     20 |
|       4 |         |          |          | api_request |     10 |
+---------+---------+----------+----------+-------------+--------+

Peki hocam bu tabloya kalan limit değerini tutan field eklesem ve policy ile create/update gibi işlemlerde authorization kontrolü gerçekleştirsem  mantık olarak doğru olur mu ?

Çevrimdışı

#4 19.06.2019 16:16:48

neri
Üye
Kayıtlı: 24.07.2018
Mesajlar: 206

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

Hocam bilgi edinmek icin soruyorum neden limitleme yapiyorsun ? Ayrica spatie permission paketini kullanirken policy olusturmana ihtiyac var mi ?

Çevrimdışı

#5 19.06.2019 16:24:03

coder2
Üye
Yer: Antalya
Kayıtlı: 09.12.2018
Mesajlar: 53

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

neri yazdı:

Hocam bilgi edinmek icin soruyorum neden limitleme yapiyorsun ? Ayrica spatie permission paketini kullanirken policy olusturmana ihtiyac var mi ?

Kullanıcılara role tanımlanacak hocam. Rollere de limit. Sisteme üye olmak isteyen istediği role e gore para verecek.
Mesela basic hesapta 10 kategori, 5 sorgu hakkın var.
Middle role sahip hesapta 20 kategori 10 sorgu hakkın.

Fakat adam bana kategori değil sorgu lazım sadece dediğinde ekstra role oluşturmaktansa bu tür talebi olan müşteriye specific limit belirtmek için limitleme yapıyorum.

Spatie permission da policy e gerek yok zaten fakat middle role tanımladığım 20 kategori limitini kontrol etmek için policy ekleyeyim diyorum.

Çevrimdışı

#6 19.06.2019 16:40:11

neri
Üye
Kayıtlı: 24.07.2018
Mesajlar: 206

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

coder2 yazdı:
neri yazdı:

Hocam bilgi edinmek icin soruyorum neden limitleme yapiyorsun ? Ayrica spatie permission paketini kullanirken policy olusturmana ihtiyac var mi ?

Kullanıcılara role tanımlanacak hocam. Rollere de limit. Sisteme üye olmak isteyen istediği role e gore para verecek.
Mesela basic hesapta 10 kategori, 5 sorgu hakkın var.
Middle role sahip hesapta 20 kategori 10 sorgu hakkın.

Fakat adam bana kategori değil sorgu lazım sadece dediğinde ekstra role oluşturmaktansa bu tür talebi olan müşteriye specific limit belirtmek için limitleme yapıyorum.

Spatie permission da policy e gerek yok zaten fakat middle role tanımladığım 20 kategori limitini kontrol etmek için policy ekleyeyim diyorum.

Anladım hocam ben admin rolleriyle ilgili bişey zannetmiştim o yüzden öğrenmek istedim smile teşekkür ederim, kolay gelsin.

Çevrimdışı

#7 19.06.2019 16:49:20

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

Ben bu tür işlemlerde kalan limit gibi bir değeri tutmazdım, limit azaltma yapmazdım, anlık hesaplatırdım. Kullanıcının 10 post hakkı var, kaç post hakkı kaldığını post_hakki = post_limit - post_sayisi şeklinde öğrenirdim.

Policy olayında ise bu tabloya sorgu yapan bir PolicyLimits gibi trait oluştururdum ve policy oluştururken onu kullanırdım. Yani:

class PostPolicy {
    
    use PolicyLimits;

    // ...
}

gibi. PolicyLimits::getLimits() gibi bir yöntemle de örneğin PostPolicy::update() içerisinde limitleri çekip ona göre true/false dönderirdim.

Seçenek çok. Biraz uğraşarak istediğinize ulaşabilirsiniz.

(Bu işlemleri yaparken sorgu sayısı artabilir, ona göre bir strateji izleyip sorgu sayılarını azaltmanız gerekebilir. Ayrı bir tablo, önbellek vs... hangisi sizin sisteme uyarsa.)

Çevrimdışı

#8 19.06.2019 17:59:09

coder2
Üye
Yer: Antalya
Kayıtlı: 09.12.2018
Mesajlar: 53

Yanıt: Limit konusunda nasıl bir yol izliyorsunuz ?

@neri , rica ederim hocam. Size de iyi çalışmalar.

@mgsmus , ilginiz için teşekkür ederim hocam.

Çevrimdışı

Forum alt kısmı