permission.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 util.wx.wechat import WeChat
  7. from util.exceptions import CustomError
  8. from util import response_error
  9. class IsCustomerUser(permissions.BasePermission):
  10. def has_permission(self, request, view):
  11. if not request.user or not request.user.is_authenticated:
  12. return False
  13. if not request.user.type != User.CUSTOMER:
  14. return False
  15. appid = request.GET.get('appid', None)
  16. if not appid:
  17. appid = request.POST.get('appid')
  18. activity_id = request.GET.get('activity_id', None)
  19. if not activity_id:
  20. activity_id = request.POST.get('activity_id')
  21. try:
  22. WeChat.checkAppid(appid)
  23. activity = Activity.getById(activity_id)
  24. except:
  25. return False
  26. customer = Customer.objects.filter(branch_id=activity.branch_id, user_id=request.user.id).first()
  27. if not customer:
  28. return False
  29. request.customer = customer
  30. return True