كيف اسمح فقط لمن سجل الدخول في جانقو؟

كيف اقوم بتحديد السماحيات للعمليات مثلا اريد أن يسمح بالعرض للجميع لكن لا اريد ان يسمح بالاضافة إلا لمن قام بتسجيل الدخول

class ArticlesView(viewsets.ModelViewSet):
    queryset = Articles.objects.all()
    serializer_class = ArticlesSerializer
    permission_classes = [AllowAny]
5 Likes

IsAuthenticatedOrReadOnly

class ArticlesView(viewsets.ModelViewSet):
    queryset = Articles.objects.all()
    serializer_class = ArticlesSerializer
    permission_classes = [IsAuthenticatedOrReadOnly]

موضح كل شيء في DRF Permissions

3 Likes

شكرا سامر
نعم هذه تحل المشكلة

class ReadOnly(BasePermission):
    def has_permission(self, request, view):
        return request.method in ('GET', 'HEAD')

ومن هنا استطيع ان احدد اي عملية اريد ان اسمح بها :+1::+1:

3 Likes

لكن لدي سؤال في هذا الصدد
هل هذه العملية تكفي للأمان يعني هذه السماحيات كافية أم انه يوجد ايضا اشياء لازمة مثل Access Policy

2 Likes

هل انت كتبت هذا الكلاس في المشروع ؟
هل حددت ذلك في الاعدادات ؟

2 Likes

اعملت permission.py ضمن المشروع واستدعيت الكلاس

from rest_framework.permissions import BasePermission
class ReadOnly(BasePermission):
    def has_permission(self, request, view):
        return request.method in ('GET', 'HEAD')
2 Likes

بالنسبة لي لم اعمل مشروع متكامل في DRF حتى اللحظة قريبا جداً

اعتقد انها كافية، وهنا نسأل الخبراء في الموضوع @YaserAlnajjar @hichem2h

قريباً جدا سأبدأ ب العمل على DRF بعد تعلم vue
وبخصوص الموضوع وجدت هذه الوثائق
اقرأها ستكون مفيدة لك .

2 Likes

ممكن تشوف هذه الامثلة لكتابة actions

https://rsinger86.github.io/drf-access-policy/usage/view_set_usage/

2 Likes

ربما يجب تخصصيه في الاعدادات الخاصة بدجانقو!

2 Likes

لا ما في داعي شغال نظامي

2 Likes

سامر @SamerElhamdo كفى ووفى ما شاء الله :smile:

ونعم permission class كافية كونها تم اضافتها على ال views

2 Likes