permission.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. # coding=utf-8
  2. from rest_framework import permissions
  3. from apps.customer.models import Customer
  4. from apps.account.models import User
  5. from apps.activity.models import Activity
  6. from apps.WechatApplet.models import WechatApplet
  7. class IsCustomerUser(permissions.BasePermission):
  8. def has_permission(self, request, view):
  9. if not request.user or not request.user.is_authenticated:
  10. return False
  11. if not request.user.type or request.user.type != User.CUSTOMER:
  12. return False
  13. appid = request.GET.get('appid', None)
  14. if not appid:
  15. appid = request.POST.get('appid')
  16. activity_id = request.GET.get('activity_id', None)
  17. if not activity_id:
  18. activity_id = request.POST.get('activity_id')
  19. try:
  20. WechatApplet.getByAppid(appid)
  21. activity = Activity.getById(activity_id)
  22. except:
  23. return False
  24. customer = Customer.objects.filter(branch_id=activity.branch_id, user_id=request.user.id).first()
  25. if not customer:
  26. return False
  27. request.customer = customer
  28. return True