authenction
This commit is contained in:
parent
1a2cc00aab
commit
6ecd93bfb1
|
@ -45,7 +45,7 @@
|
|||
<view class="weui-article__h2">正确答案是{{tm_current.right}},你的答案是{{tm_current.user_answer}}</view>
|
||||
<view class="weui-article__title">
|
||||
<span style="color:blue">解析: </span>
|
||||
<span wx:if="{{tm_current.resoluation != null}}">{{tm_current.resoluation}}</span>
|
||||
<span wx:if="{{tm_current.resolution != null}}">{{tm_current.resolution}}</span>
|
||||
<span wx:else>无</span>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<view class="weui-article__h2">正确答案是{{currentTm.right}},你的答案是{{currentTm.user_answer}}</view>
|
||||
<view class="weui-article__title">
|
||||
<span style="color:blue">解析: </span>
|
||||
<span wx:if="{{currentTm.resoluation != null}}">{{currentTm.resoluation}}</span>
|
||||
<span wx:if="{{currentTm.resolution != null}}">{{currentTm.resolution}}</span>
|
||||
<span wx:else>无</span>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<view class="weui-article__h2">正确答案是{{tm_current.right}},你的答案是{{tm_current.user_answer}}</view>
|
||||
<view class="weui-article__title">
|
||||
<span style="color:blue">解析: </span>
|
||||
<span wx:if="{{tm_current.resoluation != null}}">{{tm_current.resoluation}}</span>
|
||||
<span wx:if="{{tm_current.resolution != null}}">{{tm_current.resolution}}</span>
|
||||
<span wx:else>无</span>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<view class="weui-article__h2">正确答案是{{tm_current.question.right}},你的答案是{{tm_current.user_answer}}</view>
|
||||
<view class="weui-article__title">
|
||||
<span style="color:blue">解析: </span>
|
||||
<span wx:if="{{tm_current.question.resoluation != null}}">{{tm_current.question.resoluation}}</span>
|
||||
<span wx:if="{{tm_current.question.resolution != null}}">{{tm_current.question.resolution}}</span>
|
||||
<span wx:else>无</span>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
|
||||
class IsConsumerAuthenticated(IsAuthenticated):
|
||||
def has_permission(self, request, view):
|
||||
return bool(request.user)
|
|
@ -9,6 +9,7 @@ from rest_framework import status
|
|||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from openpyxl import Workbook, load_workbook
|
||||
import requests
|
||||
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
|
||||
from rest_framework_jwt.serializers import jwt_encode_handler
|
||||
import json
|
||||
import random
|
||||
|
@ -22,6 +23,7 @@ import warnings
|
|||
from utils.custom import CommonPagination
|
||||
from rbac.permission import RbacPermission
|
||||
from crm.authentication import ConsumerTokenAuthentication
|
||||
from crm.permission import IsConsumerAuthenticated
|
||||
from .models import Company, Consumer, PaySubject, SendCode
|
||||
from .serializers import CompanySerializer, ConsumerSerializer
|
||||
from question.serializers import QuestionSerializer
|
||||
|
@ -129,7 +131,7 @@ class ConsumerViewSet(ModelViewSet):
|
|||
PaySubject.objects.get_or_create(consumer = instance, subject__id=i, defaults={'consumer':instance,'subject':Questioncat.objects.get(id=i)})
|
||||
return Response(serializer.data)
|
||||
|
||||
@action(methods=['get'], detail=False, permission_classes=[], authentication_classes=[ConsumerTokenAuthentication],
|
||||
@action(methods=['get'], detail=False, permission_classes=[IsConsumerAuthenticated], authentication_classes=[ConsumerTokenAuthentication],
|
||||
url_path='subjectpaid', url_name='subject_paid')
|
||||
def has_paid(self, request):
|
||||
"""
|
||||
|
@ -156,7 +158,7 @@ class ConsumerViewSet(ModelViewSet):
|
|||
else:
|
||||
return Response({'error':result['data']})
|
||||
|
||||
@action(methods=['post','delete','get'], detail=False, permission_classes=[], authentication_classes=[ConsumerTokenAuthentication],
|
||||
@action(methods=['post','delete','get'], detail=False, permission_classes=[IsConsumerAuthenticated], authentication_classes=[ConsumerTokenAuthentication],
|
||||
url_path='collects', url_name='create_collects')
|
||||
def collects(self, request):
|
||||
'''
|
||||
|
|
|
@ -141,6 +141,7 @@ STATIC_ROOT = os.path.join(BASE_DIR,'static')
|
|||
REST_FRAMEWORK = {
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': [
|
||||
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
|
||||
'rest_framework.authentication.BasicAuthentication',
|
||||
],
|
||||
'DEFAULT_PERMISSION_CLASSES':[
|
||||
'rest_framework.permissions.IsAuthenticated',
|
||||
|
@ -150,6 +151,8 @@ REST_FRAMEWORK = {
|
|||
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
|
||||
# 指定用于支持coreapi的Schema
|
||||
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
|
||||
'UNAUTHENTICATED_USER': None,
|
||||
'UNAUTHENTICATED_TOKEN': None,
|
||||
}
|
||||
|
||||
JWT_AUTH = {
|
||||
|
|
|
@ -21,55 +21,55 @@ class CommonPagination(PageNumberPagination):
|
|||
"""
|
||||
page_size = 10
|
||||
page_size_query_param = 'limit'
|
||||
def paginate_queryset(self, queryset, request, view=None):
|
||||
"""
|
||||
重写该方法,确保post请求也可分页
|
||||
"""
|
||||
page_size = self.get_page_size(request)
|
||||
if not page_size:
|
||||
return None
|
||||
# def paginate_queryset(self, queryset, request, view=None):
|
||||
# """
|
||||
# 重写该方法,确保post请求也可分页
|
||||
# """
|
||||
# page_size = self.get_page_size(request)
|
||||
# if not page_size:
|
||||
# return None
|
||||
|
||||
paginator = self.django_paginator_class(queryset, page_size)
|
||||
if self.page_query_param in request.query_params:
|
||||
page_number = request.query_params.get(self.page_query_param)
|
||||
elif self.page_query_param in request.data:
|
||||
page_number = request.data.get(self.page_query_param)
|
||||
else:
|
||||
page_number = 1
|
||||
if page_number in self.last_page_strings:
|
||||
page_number = paginator.num_pages
|
||||
# paginator = self.django_paginator_class(queryset, page_size)
|
||||
# if self.page_query_param in request.query_params:
|
||||
# page_number = request.query_params.get(self.page_query_param)
|
||||
# elif self.page_query_param in request.data:
|
||||
# page_number = request.data.get(self.page_query_param)
|
||||
# else:
|
||||
# page_number = 1
|
||||
# if page_number in self.last_page_strings:
|
||||
# page_number = paginator.num_pages
|
||||
|
||||
try:
|
||||
self.page = paginator.page(page_number)
|
||||
except InvalidPage as exc:
|
||||
msg = self.invalid_page_message.format(
|
||||
page_number=page_number, message=str(exc)
|
||||
)
|
||||
raise NotFound(msg)
|
||||
# try:
|
||||
# self.page = paginator.page(page_number)
|
||||
# except InvalidPage as exc:
|
||||
# msg = self.invalid_page_message.format(
|
||||
# page_number=page_number, message=str(exc)
|
||||
# )
|
||||
# raise NotFound(msg)
|
||||
|
||||
if paginator.num_pages > 1 and self.template is not None:
|
||||
# The browsable API should display pagination controls.
|
||||
self.display_page_controls = True
|
||||
# if paginator.num_pages > 1 and self.template is not None:
|
||||
# # The browsable API should display pagination controls.
|
||||
# self.display_page_controls = True
|
||||
|
||||
self.request = request
|
||||
return list(self.page)
|
||||
# self.request = request
|
||||
# return list(self.page)
|
||||
|
||||
def get_page_size(self, request):
|
||||
if self.page_size_query_param:
|
||||
try:
|
||||
if self.page_size_query_param in request.query_params:
|
||||
page_size = request.query_params.get(self.page_size_query_param)
|
||||
else:
|
||||
page_size = request.data.get(self.page_size_query_param)
|
||||
return _positive_int(
|
||||
page_size,
|
||||
strict=True,
|
||||
cutoff=self.max_page_size
|
||||
)
|
||||
except (KeyError, ValueError):
|
||||
pass
|
||||
# def get_page_size(self, request):
|
||||
# if self.page_size_query_param:
|
||||
# try:
|
||||
# if self.page_size_query_param in request.query_params:
|
||||
# page_size = request.query_params.get(self.page_size_query_param)
|
||||
# else:
|
||||
# page_size = request.data.get(self.page_size_query_param)
|
||||
# return _positive_int(
|
||||
# page_size,
|
||||
# strict=True,
|
||||
# cutoff=self.max_page_size
|
||||
# )
|
||||
# except (KeyError, ValueError):
|
||||
# pass
|
||||
|
||||
return self.page_size
|
||||
# return self.page_size
|
||||
|
||||
|
||||
class TreeSerializer(serializers.Serializer):
|
||||
|
|
Loading…
Reference in New Issue