|  | # -*- 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 KODO_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(KODO_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.get(KODO_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,
    })
 |