def authenticate(self, request): if request.path == "/docs/": return ('docs', 'ok') else: openid = request._request.GET.get('openid', '') if Users.objects.filter(openid=openid, is_delete=0).exists(): user = Users.objects.filter(openid=openid, is_delete=0).first() return (user, openid) else: raise exceptions.AuthenticationFailed(FBMsg.err_auth())
def post(self, request, *args, **kwargs): data = request.data data = {"openid": request.auth, "authid": data.get('authid', '')} ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') if (data['authid']) == '': err_authid = FBMsg.err_authid() err_authid['ip'] = ip return JsonResponse(err_authid) else: if (data['openid']) == '': if Users.objects.filter(openid=data['authid'], is_delete=0).exists(): err_openid = FBMsg.err_openid() err_openid['ip'] = ip err_openid['data'] = { 'authid': Users.objects.filter(openid=data['authid'], is_delete=0).first().openid, } return JsonResponse(err_openid) else: err_auth = FBMsg.err_auth() err_auth['ip'] = ip return JsonResponse(err_auth) else: if Users.objects.filter(openid=data['authid'], is_delete=0).exists(): if Users.objects.filter(openid=data['openid'], is_delete=0).exists(): admin = Users.objects.filter( openid=data['authid']).first() user = Users.objects.filter( openid=data['openid']).first() if user.appid == admin.appid: today = datetime.date.today() note_date = today.strftime('%Y-%m-%d') today_note = NoteBook.objects.filter( openid=data['openid'], note_day__gte=note_date, is_delete=0).order_by('note_day')[:30] today_note_ser = NoteBookSerializers(today_note, many=True) note_num = NoteBook.objects.filter( openid=data['openid'], note_day=note_date, progress=0, is_delete=0).count() delta = datetime.timedelta(days=90) start_date = (today - delta).strftime('%Y-%m-%d') end_date = (today + delta).strftime('%Y-%m-%d') events = NoteBook.objects.filter( openid=data['openid'], note_day__range=[start_date, end_date ]).order_by('-create_time') events_ser = NoteBookEventSerializers(events, many=True) ret_auth = FBMsg.ret_auth() ret_auth['ip'] = ip ret_auth['events'] = events_ser.data ret_auth['today_note'] = today_note_ser.data ret_auth['note_num'] = note_num ret_auth['data'] = { 'authid': Users.objects.filter( openid=data['authid'], is_delete=0).first().openid, "openid": Users.objects.filter( openid=data['openid'], is_delete=0).first().openid } return JsonResponse(ret_auth) else: err_auth_open = FBMsg.err_auth_open() err_auth_open['ip'] = ip return JsonResponse(err_auth_open) else: err_openid = FBMsg.err_openid() err_openid['ip'] = ip err_openid['data'] = { 'authid': Users.objects.filter(openid=data['authid'], is_delete=0).first().openid, } return JsonResponse(err_openid) else: err_auth = FBMsg.err_auth() err_auth['ip'] = ip return JsonResponse(err_auth)
def post(self, request, *args, **kwargs): if models.Users.objects.filter(openid=request.auth, appid=request.user.appid, developer=1, is_delete=0).exists(): pass else: return Response(FBMsg.err_dev()) data = DataSolve.datasolve(request) try: if data['code'] == "1031": return Response(FBMsg.err_bad()) except: ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get( 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR') if models.Users.objects.filter(appid=request.user.appid, name=data['name'], is_delete=0).exists(): user = models.Users.objects.filter(appid=request.user.appid, name=data['name'], is_delete=0).first() if 'password' not in data: return Response(FBMsg.err_psw()) else: if data['password'] == '': return Response(FBMsg.err_psw()) else: if user.password == data['password']: today = datetime.date.today() note_date = today.strftime('%Y-%m-%d') today_note = NoteBook.objects.filter( openid=user.openid, note_day__gte=note_date, is_delete=0).order_by('note_day')[:30] today_note_ser = NoteBookSerializers(today_note, many=True) note_num = NoteBook.objects.filter( openid=user.openid, note_day=note_date, progress=0, is_delete=0).count() delta = datetime.timedelta(days=90) start_date = (today - delta).strftime('%Y-%m-%d') end_date = (today + delta).strftime('%Y-%m-%d') events = NoteBook.objects.filter( openid=user.openid, note_day__range=[start_date, end_date ]).order_by('-create_time') events_ser = NoteBookEventSerializers(events, many=True) ret = FBMsg.ret() data.pop('name') data.pop('password') ret['ip'] = ip ret['events'] = events_ser.data ret['today_note'] = today_note_ser.data ret['note_num'] = note_num data['openid'] = user.openid ret['data'] = data return Response(ret) else: err_ret = FBMsg.err_ret() return Response(err_ret) else: return Response(FBMsg.err_auth())