Brak opisu

screen_views.py 2.6KB

    # -*- coding: utf-8 -*- import shortuuid from django.conf import settings from django_response import response from json_render import json_render from guideline.models import ScreenAdminInfo from utils.error.errno_utils import PermissionStatusCode from utils.redis.connect import r from utils.redis.rkeys import SCREEN_ADMIN_LOGIN def screen_admin_oauthqr(request): brand_id = request.GET.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) return json_render(request, 'page/screen_admin_oauth_qrcode.html', unjsondumpsdict={ 'qr': settings.KODO_SCREEN_AUTH_URL.format(brand_id) }) def screen_admin_oauth(request): brand_id = request.GET.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) unionid = request.GET.get('unionid', '') openid = request.GET.get('openid', '') ScreenAdminInfo.objects.update_or_create(brand_id=brand_id, unionid=unionid, openid=openid, defaults={ 'nickname': request.GET.get('nickname', ''), 'avatar': request.GET.get('avatar', '') or request.GET.get('headimgurl', ''), 'user_status': ScreenAdminInfo.ACTIVATED, }) return json_render(request, 'page/screen_admin_oauth_success.html', unjsondumpsdict={ }) def screen_admin_loginqr(request): brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) token = shortuuid.uuid() return response(200, data={ 'qr': settings.KODO_SCREEN_LOGIN_URL.format(brand_id, token), 'token': token, }) def screen_admin_login(request): brand_id = request.GET.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) unionid = request.GET.get('unionid', '') openid = request.GET.get('openid', '') token = request.GET.get('token', '') try: admin = ScreenAdminInfo.objects.get(unionid=unionid, user_status=ScreenAdminInfo.ACTIVATED) except ScreenAdminInfo.DoesNotExist: return json_render(request, 'page/screen_admin_login_fail.html', unjsondumpsdict={ }) r.setex(SCREEN_ADMIN_LOGIN % (brand_id, token), r.REDIS_EXPIRED_HALF_HOUR, unionid) return json_render(request, 'page/screen_admin_login_success.html', unjsondumpsdict={ }) def screen_admin_loginrst(request): brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) token = request.POST.get('token', '') unionid, _ = r.getdelete(SCREEN_ADMIN_LOGIN % (brand_id, token)) try: admin = ScreenAdminInfo.objects.get(unionid=unionid, user_status=ScreenAdminInfo.ACTIVATED) except ScreenAdminInfo.DoesNotExist: return response(PermissionStatusCode.PERMISSION_DENIED) return response(200, data={ 'info': admin.data, })