authenction

This commit is contained in:
caoqianming 2020-03-25 09:51:30 +08:00
parent 1a2cc00aab
commit 6ecd93bfb1
8 changed files with 60 additions and 49 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,6 @@
from rest_framework.permissions import IsAuthenticated
class IsConsumerAuthenticated(IsAuthenticated):
def has_permission(self, request, view):
return bool(request.user)

View File

@ -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):
'''

View File

@ -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 = {

View File

@ -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):