21 lines
1.1 KiB
Python
21 lines
1.1 KiB
Python
from rest_framework.permissions import BasePermission
|
|
|
|
|
|
class HasActiveFeature(BasePermission):
|
|
"""اجازهی استفاده از یک ریزاپ را فقط به کاربری میدهد که آن را فعال دارد
|
|
(دورهی آزمایشی یا خریداریشده با جم). گیت اصلی سمت اپ فلاتر (لانچر) فقط
|
|
برای تجربهی کاربری است؛ بدون این چک سمت سرور، هرکسی با صدازدن مستقیم API
|
|
(مثلا با curl/Postman) میتوانست کل مدل پرداختی را دور بزند. `view` باید
|
|
`feature_key` را ست کند؛ اگر نکرد، این پرمیشن چیزی را مسدود نمیکند."""
|
|
|
|
message = "برای استفاده از این بخش باید آن را از فروشگاه فعال کنی."
|
|
|
|
def has_permission(self, request, view) -> bool:
|
|
feature_key = getattr(view, "feature_key", None)
|
|
if not feature_key:
|
|
return True
|
|
|
|
from apps.billing.api.services import FeatureAccessService
|
|
|
|
return FeatureAccessService.is_active(request.user, feature_key)
|