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)