Account Views

Brightcells 7 gadi atpakaļ
vecāks
revīzija
46b6371c5f
4 mainītis faili ar 125 papildinājumiem un 119 dzēšanām
  1. 120 0
      account/account_views.py
  2. 3 116
      account/views.py
  3. 1 2
      api/urls.py
  4. 1 1
      pai2/urls.py

+ 120 - 0
account/account_views.py

@@ -0,0 +1,120 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from curtail_uuid import CurtailUUID
4
+from django.contrib.auth.models import Group, User
5
+from django.db import transaction
6
+from django_response import response
7
+from ipaddr import client_ip
8
+from logit import logit
9
+from rest_framework import viewsets
10
+from TimeConvert import TimeConvert as tc
11
+
12
+from account.models import LensmanInfo, UserInfo
13
+from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfoSerializer, UserSerializer
14
+from operation.models import GuestEntranceControlInfo
15
+from utils.error.errno_utils import UserStatusCode
16
+from utils.redis.rguest import get_guest_entrance_control
17
+from utils.redis.rprofile import set_profile_info
18
+from utils.version_utils import is_version_match
19
+
20
+
21
+@logit
22
+@transaction.atomic
23
+def user_wx_authorize_api(request):
24
+    # Get or Create User
25
+    user, created = UserInfo.objects.select_for_update().get_or_create(unionid=request.POST.get('unionid', ''))
26
+
27
+    # Set User_id
28
+    if created:
29
+        user.user_id = CurtailUUID.uuid(UserInfo, 'user_id')
30
+
31
+    # Set User Key's Value
32
+    user.user_from = UserInfo.USER_USER
33
+    user.openid = request.POST.get('wx_uid', '')
34
+    user.sex = request.POST.get('sex', 0)
35
+    user.nickname = request.POST.get('nickname', '') or request.POST.get('screen_name', '')
36
+    user.avatar = request.POST.get('headimgurl', '') or request.POST.get('profile_image_url', '')
37
+    user.country = request.POST.get('country', '')
38
+    user.province = request.POST.get('province', '')
39
+    user.city = request.POST.get('city', '')
40
+    user.user_status = UserInfo.ACTIVATED
41
+    user.signup_ip = client_ip(request)
42
+    user.signup_at = tc.utc_datetime()
43
+    user.save()
44
+
45
+    set_profile_info(user)
46
+
47
+    return response(200, 'User Login Success', u'用户端登录成功', user.data)
48
+
49
+
50
+@logit
51
+@transaction.atomic
52
+def user_guest_login_api(request):
53
+    """ 游客登录 """
54
+    gen = get_guest_entrance_control()
55
+
56
+    # 是否配置游客入口控制信息
57
+    if not gen:
58
+        return response(UserStatusCode.GUEST_NOT_ALLOWED)
59
+
60
+    # 平台校验
61
+    platform = gen.get('platform', '')
62
+    if request.Android:
63
+        if platform not in [GuestEntranceControlInfo.ADR, GuestEntranceControlInfo.BOTH]:
64
+            return response(UserStatusCode.GUEST_NOT_ALLOWED)
65
+    else:
66
+        if platform not in [GuestEntranceControlInfo.IOS, GuestEntranceControlInfo.BOTH]:
67
+            return response(UserStatusCode.GUEST_NOT_ALLOWED)
68
+
69
+    # 版本校验
70
+    if not is_version_match(request, gen):
71
+        return response(UserStatusCode.GUEST_NOT_ALLOWED)
72
+
73
+    # 通用唯一识别码 (Universally Unique Identifier)
74
+    uuid = request.POST.get('uuid', '')
75
+    # 游客字段
76
+    fields = {
77
+        'user_id': CurtailUUID.uuid(UserInfo, 'user_id'),
78
+        'user_from': UserInfo.GUEST_USER,
79
+        'uuid': uuid,
80
+        'nickname': u'游客',
81
+        'user_status': UserInfo.ACTIVATED,
82
+    }
83
+    # 若 uuid 存在,则 get_or_create,否则 create
84
+    if uuid:
85
+        user, created = UserInfo.objects.select_for_update().get_or_create(user_from=UserInfo.GUEST_USER, uuid=uuid, defaults=fields)
86
+        if created:
87
+            user.nickname = u'游客{}'.format(user.pk)
88
+            user.save()
89
+    else:
90
+        user = UserInfo.objects.select_for_update().create(**fields)
91
+        user.nickname = u'游客{}'.format(user.pk)
92
+        user.save()
93
+
94
+    return response(200, 'Guest Login Success', u'游客登录成功', user.data)
95
+
96
+
97
+class UserViewSet(viewsets.ModelViewSet):
98
+    """
99
+    API endpoint that allows users to be viewed or edited.
100
+    """
101
+    queryset = User.objects.all().order_by('-pk')
102
+    serializer_class = UserSerializer
103
+
104
+
105
+class GroupViewSet(viewsets.ModelViewSet):
106
+    """
107
+    API endpoint that allows groups to be viewed or edited.
108
+    """
109
+    queryset = Group.objects.all()
110
+    serializer_class = GroupSerializer
111
+
112
+
113
+class LensmanInfoViewSet(viewsets.ModelViewSet):
114
+    queryset = LensmanInfo.objects.all().order_by('-pk')
115
+    serializer_class = LensmanInfoSerializer
116
+
117
+
118
+class UserInfoViewSet(viewsets.ModelViewSet):
119
+    queryset = UserInfo.objects.all().order_by('-pk')
120
+    serializer_class = UserInfoSerializer

+ 3 - 116
account/views.py

@@ -1,120 +1,7 @@
1 1
 # -*- coding: utf-8 -*-
2
+from __future__ import unicode_literals
2 3
 
3
-from curtail_uuid import CurtailUUID
4
-from django.contrib.auth.models import Group, User
5
-from django.db import transaction
6
-from django_response import response
7
-from ipaddr import client_ip
8
-from logit import logit
9
-from rest_framework import viewsets
10
-from TimeConvert import TimeConvert as tc
4
+from django.shortcuts import render
11 5
 
12
-from account.models import LensmanInfo, UserInfo
13
-from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfoSerializer, UserSerializer
14
-from operation.models import GuestEntranceControlInfo
15
-from utils.error.errno_utils import UserStatusCode
16
-from utils.redis.rguest import get_guest_entrance_control
17
-from utils.redis.rprofile import set_profile_info
18
-from utils.version_utils import is_version_match
19 6
 
20
-
21
-@logit
22
-@transaction.atomic
23
-def user_wx_authorize_api(request):
24
-    # Get or Create User
25
-    user, created = UserInfo.objects.select_for_update().get_or_create(unionid=request.POST.get('unionid', ''))
26
-
27
-    # Set User_id
28
-    if created:
29
-        user.user_id = CurtailUUID.uuid(UserInfo, 'user_id')
30
-
31
-    # Set User Key's Value
32
-    user.user_from = UserInfo.USER_USER
33
-    user.openid = request.POST.get('wx_uid', '')
34
-    user.sex = request.POST.get('sex', 0)
35
-    user.nickname = request.POST.get('nickname', '') or request.POST.get('screen_name', '')
36
-    user.avatar = request.POST.get('headimgurl', '') or request.POST.get('profile_image_url', '')
37
-    user.country = request.POST.get('country', '')
38
-    user.province = request.POST.get('province', '')
39
-    user.city = request.POST.get('city', '')
40
-    user.user_status = UserInfo.ACTIVATED
41
-    user.signup_ip = client_ip(request)
42
-    user.signup_at = tc.utc_datetime()
43
-    user.save()
44
-
45
-    set_profile_info(user)
46
-
47
-    return response(200, 'User Login Success', u'用户端登录成功', user.data)
48
-
49
-
50
-@logit
51
-@transaction.atomic
52
-def user_guest_login_api(request):
53
-    """ 游客登录 """
54
-    gen = get_guest_entrance_control()
55
-
56
-    # 是否配置游客入口控制信息
57
-    if not gen:
58
-        return response(UserStatusCode.GUEST_NOT_ALLOWED)
59
-
60
-    # 平台校验
61
-    platform = gen.get('platform', '')
62
-    if request.Android:
63
-        if platform not in [GuestEntranceControlInfo.ADR, GuestEntranceControlInfo.BOTH]:
64
-            return response(UserStatusCode.GUEST_NOT_ALLOWED)
65
-    else:
66
-        if platform not in [GuestEntranceControlInfo.IOS, GuestEntranceControlInfo.BOTH]:
67
-            return response(UserStatusCode.GUEST_NOT_ALLOWED)
68
-
69
-    # 版本校验
70
-    if not is_version_match(request, gen):
71
-        return response(UserStatusCode.GUEST_NOT_ALLOWED)
72
-
73
-    # 通用唯一识别码 (Universally Unique Identifier)
74
-    uuid = request.POST.get('uuid', '')
75
-    # 游客字段
76
-    fields = {
77
-        'user_id': CurtailUUID.uuid(UserInfo, 'user_id'),
78
-        'user_from': UserInfo.GUEST_USER,
79
-        'uuid': uuid,
80
-        'nickname': u'游客',
81
-        'user_status': UserInfo.ACTIVATED,
82
-    }
83
-    # 若 uuid 存在,则 get_or_create,否则 create
84
-    if uuid:
85
-        user, created = UserInfo.objects.select_for_update().get_or_create(user_from=UserInfo.GUEST_USER, uuid=uuid, defaults=fields)
86
-        if created:
87
-            user.nickname = u'游客{}'.format(user.pk)
88
-            user.save()
89
-    else:
90
-        user = UserInfo.objects.select_for_update().create(**fields)
91
-        user.nickname = u'游客{}'.format(user.pk)
92
-        user.save()
93
-
94
-    return response(200, 'Guest Login Success', u'游客登录成功', user.data)
95
-
96
-
97
-class UserViewSet(viewsets.ModelViewSet):
98
-    """
99
-    API endpoint that allows users to be viewed or edited.
100
-    """
101
-    queryset = User.objects.all().order_by('-pk')
102
-    serializer_class = UserSerializer
103
-
104
-
105
-class GroupViewSet(viewsets.ModelViewSet):
106
-    """
107
-    API endpoint that allows groups to be viewed or edited.
108
-    """
109
-    queryset = Group.objects.all()
110
-    serializer_class = GroupSerializer
111
-
112
-
113
-class LensmanInfoViewSet(viewsets.ModelViewSet):
114
-    queryset = LensmanInfo.objects.all().order_by('-pk')
115
-    serializer_class = LensmanInfoSerializer
116
-
117
-
118
-class UserInfoViewSet(viewsets.ModelViewSet):
119
-    queryset = UserInfo.objects.all().order_by('-pk')
120
-    serializer_class = UserInfoSerializer
7
+# Create your views here.

+ 1 - 2
api/urls.py

@@ -2,8 +2,7 @@
2 2
 
3 3
 from django.conf.urls import url
4 4
 
5
-from account import tourguide_views
6
-from account import views as account_views
5
+from account import account_views, tourguide_views
7 6
 from api import encrypt_views, mch_views
8 7
 from box import views as box_views
9 8
 from geo import views as geo_views

+ 1 - 1
pai2/urls.py

@@ -21,7 +21,7 @@ from django.conf.urls.static import static
21 21
 from django.contrib import admin
22 22
 from rest_framework import routers
23 23
 
24
-from account import views as account_views
24
+from account import account_views
25 25
 from group import group_views, grouppage_views
26 26
 from miniapp import views as mini_views
27 27
 from photo import views as photo_views