Esempio n. 1
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        mode = request.POST.get('mode')
        access_token = request.POST.get('access_token')
        
    	if mode and access_token:
    		if mode == 'facebook':
    			response =  urllib2.urlopen("https://graph.facebook.com/v2.1/me?access_token="+access_token+"&format=json&method=get&pretty=0&suppress_http_code=1")
    			output = response.read()
                output = json.loads(output)
                try:
                    email = output['email']
                except KeyError:
                    return JsonError("Access token not valid")
                first_name = output['first_name']
                last_name = output['last_name']
                gender = output['gender']
                dob = None
                mobile = None
                password = None
                mode = "facebook"
                try:
                    user = User.objects.get(username=email)
                except User.DoesNotExist:
                    a = create_new_user(email, password, first_name, last_name, dob, gender, mobile, mode)
                    print a
                    user = User.objects.get(username=email)
                data = {
                        'token': token_generator.make_token(user),
                        'user': user.pk,
                }

                return JsonResponse(data)

        elif username and password:
            user = authenticate(username=username, password=password, mode=mode, access_token= access_token)

            if user:
                TOKEN_CHECK_ACTIVE_USER = getattr(settings, "TOKEN_CHECK_ACTIVE_USER", False)

                if TOKEN_CHECK_ACTIVE_USER and not user.is_active:
                    return JsonResponseForbidden("User account is disabled.")

                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JsonResponse(data)
            else:
                return JsonResponseUnauthorized("Unable to log you in, please try again.")
        else:
            return JsonError("Must include 'username' and 'password' or 'username' and 'mode' and 'access_token' as POST parameters.")
    else:
        return JsonError("Must access via a POST request.")
Esempio n. 2
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.test_question = {
         "questionText": 'Would a woodchuck ... ?',
         "answer1": 'Yes',
         "answer2": 'No',
         "answer3": 'I said Yes',
         "answer4": "YOU'RE WRONG",
         "difficulty": 100,
         "score": 100,
         "topic": 'Memetics',
         "rightAnswer": 1
     }
     self.question = Question(questionText='Would a woodchuck ... ?',
                              answer1='Yes',
                              answer2='No',
                              answer3='I said Yes',
                              answer4="YOU'RE WRONG",
                              difficulty=100,
                              score=100,
                              topic='Memetics',
                              rightAnswer=1)
     self.question.save()
     self.token = token_generator.make_token(self.test_admin)
Esempio n. 3
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                if not getattr(user, 'is_active', True):
                    return JsonResponseForbidden("User account is disabled.")

                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JsonResponse(data)
            else:
                return JsonResponseUnauthorized(
                    "Unable to log you in, please try again.")
        else:
            return JsonResponseBadRequest(
                "Must include 'username' and 'password' as POST parameters.")
    else:
        return JsonResponseNotAllowed("Must access via a POST request.")
Esempio n. 4
0
    def setUp(self):
        self.test_user1 = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******')
        self.player = Player(account=self.test_user1)
        self.player.positionx = -2.569110
        self.player.positiony = 1.256957
        self.player.lastActivity = get_time() - 1000
        self.player.save()

        self.test_user2 = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******')
        self.player = Player(account=self.test_user2)
        self.player.positionx = -3.569110
        self.player.positiony = 2.256957
        self.player.save()

        self.question = Question(questionText='Would a woodchuck ... ?',
                                 answer1='Yes',
                                 answer2='No',
                                 answer3='I said Yes',
                                 answer4="YOU'RE WRONG",
                                 difficulty=100,
                                 score=100,
                                 topic='Memetics',
                                 rightAnswer=1)
        self.question.save()
        self.stats = {'nbrQ': 1, 'nbrJ': 2, 'nbrJConnected': 1}
        self.test_admin = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******',
                                                   is_staff=True)
        self.token = token_generator.make_token(self.test_admin)
Esempio n. 5
0
    def setUp(self):
        self.test_user1 = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******')
        self.player = Player(account=self.test_user1)
        self.player.positionx = -2.569110
        self.player.positiony = 1.256957
        self.player.save()
        self.playerInfo1 = {
            'id': self.test_user1.pk,
            'x': -2.569110,
            'y': 1.256957,
            'z': 0.0
        }

        del self.player
        self.test_user2 = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******')
        self.player = Player(account=self.test_user2)
        self.player.positionx = -3.569110
        self.player.positiony = 2.256957
        self.player.save()
        self.playerInfo2 = {
            'id': self.test_user2.pk,
            'x': -3.569110,
            'y': 2.256957,
            'z': 0.0
        }

        self.test_admin = User.objects.create_user(username='******',
                                                   email='*****@*****.**',
                                                   password='******',
                                                   is_staff=True)
        self.token = token_generator.make_token(self.test_admin)
Esempio n. 6
0
 def setUp(self):
     self.test_user = User.objects.create_user(username='******',
                                               email='*****@*****.**',
                                               password='******')
     self.player = Player(account=self.test_user)
     self.player.save()
     self.token = token_generator.make_token(self.test_user)
Esempio n. 7
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.questionInfo = {
         'id': self.test_question.id,
         'question': self.test_question.questionText,
         'answer1': self.test_question.answer1,
         'answer2': self.test_question.answer2,
         'answer3': self.test_question.answer3,
         'answer4': self.test_question.answer4,
         'score': self.test_question.score,
         'difficulty': self.test_question.difficulty,
         'rightAnswer': self.test_question.rightAnswer,
         'topic': self.test_question.topic
     }
     self.token = token_generator.make_token(self.test_admin)
Esempio n. 8
0
 def setUp(self):
     # TODO: Use mockup to properly test this.
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_spot = Spot(
         centrex=-2.569111,
         centrey=1.256950,
         centrez=0,
         currentQuestion=self.test_question,
         delay=500,
         rayon=5,
         questionList=str(self.test_question.pk),
     )
     self.test_spot.save()
     self.test_zone = ExclusionZone(name='Test Zone',
                                    points=json.dumps(
                                        [[48.2251, -3.8735, 0],
                                         [48.1961, -3.8371, 0],
                                         [48.2005, -3.9015, 0]]))
     self.test_zone.save()
     self.test_user = User.objects.create_user(username='******',
                                               email='*****@*****.**',
                                               password='******')
     self.player = Player(account=self.test_user)
     self.token = token_generator.make_token(self.test_user)
     self.player.save()
Esempio n. 9
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_spot = {
         "centrex": -2.569111,
         "centrey": 1.256950,
         "centrez": 0,
         "currentQuestion": self.test_question.pk,
         "delay": 0,
         "rayon": 5,
         "questionList": [self.test_question.pk],
         "startTime": get_time()
     }
     self.token = token_generator.make_token(self.test_admin)
Esempio n. 10
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_spot = Spot(
         centrex=-2.569111,
         centrey=1.256950,
         centrez=0,
         currentQuestion=self.test_question,
         delay=0,
         rayon=5,
         questionList=str(self.test_question.pk),
     )
     self.test_spot.save()
     self.token = token_generator.make_token(self.test_admin)
Esempio n. 11
0
    def get(self, request):
        session = request.session
        openid = session.get('openid')

        if not openid:
            return JsonResponse({
                'status': 'auth_fail',
                'msg': 'auth fail',
                'auth_info': {},
            })

        weixin_user = WeixinService.get_weixin_user(
            openid=openid
        )

        if weixin_user and weixin_user.user.is_active:
            industrys = weixin_user.user.company_set.all().values_list('category__industry__code_name', flat=True)
            user_industry = industrys[0] if len(industrys) > 0 else ''
            return JsonResponse({
                'status': 'ok',
                'msg': 'ok',
                'auth_info': {
                    'token': token_generator.make_token(weixin_user.user),
                    'user': weixin_user.user_id,
                },
                'username': weixin_user.user.username,
                'user_industry': user_industry
            })

        return JsonResponse({
            'status': 'auth_fail',
            'msg': 'auth fail',
            'auth_info': {}
        })
Esempio n. 12
0
 def setUp(self):
     # TODO: Use mockup to properly test this.
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_spot = Spot(
         centrex=-2.569111,
         centrey=1.256950,
         centrez=0,
         currentQuestion=self.test_question,
         delay=0,
         rayon=5,
         questionList='1',
     )
     self.test_spot.save()
     self.test_user = User.objects.create_user(username='******',
                                               email='*****@*****.**',
                                               password='******')
     self.player = Player(account=self.test_user)
     self.token = token_generator.make_token(self.test_user)
Esempio n. 13
0
    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(
            username=username,
            password=password
        )

        if user is None:
            return JsonResponse({
                'status': 'error',
                'msg': 'error user'
            })

        if not user.user_permissions.filter(codename='spider_msg').exists():
            return JsonResponse({
                'status': 'error',
                'msg': 'no permission'
            })

        login(request, user)
        auth_info = {
            'token': token_generator.make_token(user),
            'user': user.pk,
        }

        return JsonResponse({
            'status': 'ok',
            'msg': 'success',
            'username': username,
            'auth_info': auth_info
        })
Esempio n. 14
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                TOKEN_CHECK_ACTIVE_USER = getattr(settings,
                                                  "TOKEN_CHECK_ACTIVE_USER",
                                                  False)

                if TOKEN_CHECK_ACTIVE_USER and not user.is_active:
                    return JSONError("User account is disabled.")

                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JSONResponse(data)
            else:
                return JSONError("Unable to log you in, please try again.")
        else:
            return JSONError(
                "Must include 'username' and 'password' as POST parameters.")
    else:
        return JSONError("Must access via a POST request.")
Esempio n. 15
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                TOKEN_CHECK_ACTIVE_USER = getattr(settings, "TOKEN_CHECK_ACTIVE_USER", False)

                if TOKEN_CHECK_ACTIVE_USER and not user.is_active:
                    return JsonResponseForbidden("User account is disabled.")

                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JsonResponse(data)
            else:
                return JsonResponseUnauthorized("Unable to log you in, please try again.")
        else:
            return JsonError("Must include 'username' and 'password' as POST parameters.")
    else:
        return JsonError("Must access via a POST request.")
Esempio n. 16
0
    def post(self, request):
        form = LoginForm(request.POST)

        if not form.is_valid():
            return JsonResponse({
                'status': 'form_error',
                'msg': form.get_first_errors(),
                'errors': form.errors,
            })

        form_data = form.cleaned_data

        username = form_data['username']
        password = form_data['password']

        user = authenticate(
            username=username,
            password=password,
        )

        if not user.is_active:
            return JsonResponse({
                'status': 'not_active',
                'msg': '用户未激活',
            })

        if not hasattr(user, 'userprofile'):
            return JsonResponse({
                'status': 'not_hr',
                'msg': '不是有效的HR用户,请更换邮箱注册HR用户',
            })

        if self.malice_ip():
            return JsonResponse({
                'status': 'malice_login',
                'msg': '登录错误次数过多,请稍后再试',
            })

        login(request, user)
        auth_info = {
            'token': token_generator.make_token(user),
            'user': user.pk,
        }
        openid = request.session.get('openid')
        WeixinService.bind_weixin_openid(user, openid)
        WeixinService.update_weixin_userinfo(openid)

        self.clean_malice()

        industrys = user.company_set.all().values_list('category__industry__code_name', flat=True)
        user_industry = industrys[0] if len(industrys) > 0 else ''

        return JsonResponse({
            'status': 'ok',
            'msg': '登录成功',
            'username': user.username,
            'auth_info': auth_info,
            'user_industry': user_industry
        })
Esempio n. 17
0
File: views.py Progetto: banjin/klb
def Register(request):
    Check = AppCheck()
    UK = UserKey()
    EchoJson = PrintJson()
    if request.method == 'GET' or request.method == 'POST':
        Mobile = request.REQUEST.get("Mobile", "")
        ValidatedCode = request.REQUEST.get("ValidatedCode", "")
        Password = request.REQUEST.get("Password", "")
        ConfirmPassword = request.REQUEST.get("ConfirmPassword", "")
        RecomCode = request.REQUEST.get("RecomCode", "")

        # 判断手机
        if Check.phonecheck(Mobile) == False:
            J = EchoJson.echo(msg="手机号不正确", error=1)
            return HttpResponse(J,content_type="application/json")
        if User.objects.filter(phone=Mobile).exists():
            J = EchoJson.echo(msg="该手机已经被注册,请不要重复注册", error=1)
            return HttpResponse(J,content_type="application/json")
        # 判断密码
        if Password == "" or len(Password) < 6 or Password <> ConfirmPassword:
            J = EchoJson.echo(msg="密码不能少于6位,且两次输入必须一致", error=1)
            return HttpResponse(J,content_type="application/json")
        # 检查验证码
        CKV = _CheckVcode(Mobile, ValidatedCode)
        if CKV == -1:
            J = EchoJson.echo(msg="验证码不正确", error=1)
            return HttpResponse(J,content_type="application/json")
        if CKV == -2:
            J = EchoJson.echo(msg="验证码过期", error=1)
            return HttpResponse(J,content_type="application/json")

        if CKV == 1:
            J = EchoJson.echo(msg="验证码已经被使用,请更换", error=1)
            return HttpResponse(J,content_type="application/json")
        # 检查推荐码
        if RecomCode <> "":
            Is_recomcode = recomcode.objects.filter(code=RecomCode).exists()
            if Is_recomcode == False:
                J = EchoJson.echo(msg="推荐码不存在", error=1)
                return HttpResponse(J,content_type="application/json")

        CreateUser = User.objects.create_user(username=Mobile,
                                              password=Password,
                                              phone=Mobile
                                              )
        CreateUser.save()
        sendsms.objects.filter(phone=Mobile,validated_code=ValidatedCode).update(is_active=1)
        user = auth.authenticate(username=Mobile, password=Password)
        data = {
            'token': token_generator.make_token(user),
            'user': user.pk,
        }
        J = EchoJson.echo(data=data,msg="注册成功", error=0)
        return HttpResponse(J,content_type="application/json")
    else:
        J = EchoJson.echo(msg="禁止访问", error=1)
        return HttpResponse(J,content_type="application/json")
Esempio n. 18
0
def Register(request):
    Check = AppCheck()
    UK = UserKey()
    EchoJson = PrintJson()
    if request.method == 'GET' or request.method == 'POST':
        Mobile = request.REQUEST.get("Mobile", "")
        ValidatedCode = request.REQUEST.get("ValidatedCode", "")
        Password = request.REQUEST.get("Password", "")
        ConfirmPassword = request.REQUEST.get("ConfirmPassword", "")
        RecomCode = request.REQUEST.get("RecomCode", "")

        # 判断手机
        if Check.phonecheck(Mobile) == False:
            J = EchoJson.echo(msg="手机号不正确", error=1)
            return HttpResponse(J, content_type="application/json")
        if User.objects.filter(phone=Mobile).exists():
            J = EchoJson.echo(msg="该手机已经被注册,请不要重复注册", error=1)
            return HttpResponse(J, content_type="application/json")
        # 判断密码
        if Password == "" or len(Password) < 6 or Password <> ConfirmPassword:
            J = EchoJson.echo(msg="密码不能少于6位,且两次输入必须一致", error=1)
            return HttpResponse(J, content_type="application/json")
        # 检查验证码
        CKV = _CheckVcode(Mobile, ValidatedCode)
        if CKV == -1:
            J = EchoJson.echo(msg="验证码不正确", error=1)
            return HttpResponse(J, content_type="application/json")
        if CKV == -2:
            J = EchoJson.echo(msg="验证码过期", error=1)
            return HttpResponse(J, content_type="application/json")

        if CKV == 1:
            J = EchoJson.echo(msg="验证码已经被使用,请更换", error=1)
            return HttpResponse(J, content_type="application/json")
        # 检查推荐码
        if RecomCode <> "":
            Is_recomcode = recomcode.objects.filter(code=RecomCode).exists()
            if Is_recomcode == False:
                J = EchoJson.echo(msg="推荐码不存在", error=1)
                return HttpResponse(J, content_type="application/json")

        CreateUser = User.objects.create_user(username=Mobile,
                                              password=Password,
                                              phone=Mobile)
        CreateUser.save()
        sendsms.objects.filter(
            phone=Mobile, validated_code=ValidatedCode).update(is_active=1)
        user = auth.authenticate(username=Mobile, password=Password)
        data = {
            'token': token_generator.make_token(user),
            'user': user.pk,
        }
        J = EchoJson.echo(data=data, msg="注册成功", error=0)
        return HttpResponse(J, content_type="application/json")
    else:
        J = EchoJson.echo(msg="禁止访问", error=1)
        return HttpResponse(J, content_type="application/json")
Esempio n. 19
0
    def setUp(self):
        self.user = User.objects.create_user(self.username, self.email, self.password)
        self.user.save()
        self.token = token_generator.make_token(self.user)

        self.inactive_user = User.objects.create_user(self.inactive_username, self.inactive_email, self.inactive_password)
        self.inactive_user.is_active = False
        self.inactive_user.save()
        self.inactive_token = self._get_inactive_token()
Esempio n. 20
0
    def setUp(self):
        self.user = User.objects.create_user(self.username, self.email,
                                             self.password)
        self.user.save()
        self.token = token_generator.make_token(self.user)

        self.inactive_user = User.objects.create_user(self.inactive_username,
                                                      self.inactive_email,
                                                      self.inactive_password)
        self.inactive_user.is_active = False
        self.inactive_user.save()
        self.inactive_token = self._get_inactive_token()
Esempio n. 21
0
 def testGoodPassword(self):
     r = self.client.post('/api/auth/',
                          data=json.dumps({
                              'username': '******',
                              'password': '******'
                          }),
                          content_type=JSON_CONTENT_TYPE)
     self.assertEqual(r.status_code, 200, "[API][Auth] Wrong status code.")
     data = r.json()
     self.assertEqual(token_generator.make_token(self.test_user),
                      data['token'], "[API][Auth] Wrong token.")
     self.assertEqual(self.test_user.pk, data['user_id'],
                      "[API][Auth] Wrong user_id")
Esempio n. 22
0
def token_new(request):
    if request.method == 'POST':
        if 'username' in request.POST and 'password' in request.POST:
            user = authenticate(username=request.POST['username'],
                password=request.POST['password'])
            if user:
                data = {
                    'success': True,
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JSONResponse(data)
            else:
                return JSONError("Unable to log you in, please try again")
Esempio n. 23
0
 def setUp(self):
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_user = User.objects.create_user(username='******',
                                               email='*****@*****.**',
                                               password='******')
     self.token = token_generator.make_token(self.test_user)
Esempio n. 24
0
File: views.py Progetto: banjin/klb
def Login(request):
    EchoJson = PrintJson()
    Check = AppCheck()
    if request.method == "GET" or request.method == "POST":
        UserName = request.REQUEST.get("username","")
        PassWord = request.REQUEST.get("password","")


        Is_User = False

        if Check.phonecheck(UserName):
            Is_User = "******"
        elif Check.validateEmail(UserName):
            Is_User = "******"
        elif Check.UserCheck(UserName):
            Is_User = "******"
        else:
            Is_User = False

        if Is_User==False:

            J = EchoJson.echo(msg="用户名格式不正确", error=1)
            return HttpResponse(J,content_type="application/json")
        if Check.PwdCheck(PassWord) == False:

            J = EchoJson.echo(msg="密码只能为6位至20位,并且不能包含空格", error=1)
            return HttpResponse(J,content_type="application/json")

        user = auth.authenticate(username=UserName, password=PassWord)
        if user:
            data = {
                'token': token_generator.make_token(user),
                'user': user.id,
            }
            J = EchoJson.echo(msg="登录成功", error=0,data=data)
            return HttpResponse(J,content_type="application/json")
        else:
            J = EchoJson.echo(msg="认证失败", error=1)
            return HttpResponse(J,content_type="application/json")



    else:
        J = EchoJson.echo(msg="", error=1)
        return HttpResponse(J,content_type="application/json")
Esempio n. 25
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        if username and password:
            user = authenticate(username=username, password=password)
            if user:
                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JSONResponse(data)
            else:
                return JSONError("Unable to log you in, please try again.")
        else:
            return JSONError("Must include 'username' and 'password' as POST parameters.")
    else:
        return JSONError("Must access via a POST request.")
def authenticate_login(post_parameters):
    """
    Given a valid username and password, return an api token
    """
    username = post_parameters.get("username")
    password = post_parameters.get("password")
    if username and password:
        user = authenticate(username=username, password=password)
        if user and user.is_active:
            return {"status": 0, "token": token_generator.make_token(user)}
        else:
            return {
                "status": 1,
                "error": "Unable to authenticate with credentials provided",
            }
    return {
        "status": 1,
        "error": "Must include username and password in request"
    }
Esempio n. 27
0
def Login(request):
    EchoJson = PrintJson()
    Check = AppCheck()
    if request.method == "GET" or request.method == "POST":
        UserName = request.REQUEST.get("username", "")
        PassWord = request.REQUEST.get("password", "")

        Is_User = False

        if Check.phonecheck(UserName):
            Is_User = "******"
        elif Check.validateEmail(UserName):
            Is_User = "******"
        elif Check.UserCheck(UserName):
            Is_User = "******"
        else:
            Is_User = False

        if Is_User == False:

            J = EchoJson.echo(msg="用户名格式不正确", error=1)
            return HttpResponse(J, content_type="application/json")
        if Check.PwdCheck(PassWord) == False:

            J = EchoJson.echo(msg="密码只能为6位至20位,并且不能包含空格", error=1)
            return HttpResponse(J, content_type="application/json")

        user = auth.authenticate(username=UserName, password=PassWord)
        if user:
            data = {
                'token': token_generator.make_token(user),
                'user': user.id,
            }
            J = EchoJson.echo(msg="登录成功", error=0, data=data)
            return HttpResponse(J, content_type="application/json")
        else:
            J = EchoJson.echo(msg="认证失败", error=1)
            return HttpResponse(J, content_type="application/json")

    else:
        J = EchoJson.echo(msg="", error=1)
        return HttpResponse(J, content_type="application/json")
Esempio n. 28
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                data = {
                    'token': token_generator.make_token(user),
                }
                return JSONResponse(data)
            else:
                return JSONError("Unable to log you in, please try again.")
        else:
            return JSONError(
                "Must include 'username' and 'password' as POST parameters.")
    else:
        return JSONError("Must access via a POST request.")
Esempio n. 29
0
def handle_empous_user(iostoken, username, password, first_name, last_name, email, empous_build, using_lite_version, can_play_with_continents):
    #Make sure there is something defined all the arguments
    if not (username and password and first_name and last_name and email):
        return HttpResponse(json.dumps(StatusCodes.FIELDS_MISSING), mimetype='application/json')

    #Make sure the username does not exists first
    if User.objects.filter(username__iexact=username).exists():
        return HttpResponse(json.dumps({'error':'Username is not available'}), mimetype='application/json') 
    
    user, wasCreated = EmpousUser.objects.get_or_create(
        username=username.lower(),
        defaults={
            'password':make_password(password),
            'invited':False,
            'first_name':first_name,
            'last_name':last_name,
            'last_seen_build':empous_build,
            'username':username,
            'email':email
        }
    )

    #Check to see if the iostoken was specified for push notifications
    if iostoken:
        device, wasCreated = IosPushDevice.objects.get_or_create(ios_token=iostoken)
        user.ios_device = device
        user.save()

    #Check app version - only care if not using the lite_version
    if using_lite_version == "0":
        user.using_lite_version = False
        user.save()

    #Check to see if the user is playing with a new version of Empous that supports continents
    if can_play_with_continents == "1":
        user.can_play_with_continents = True
        user.save()

    #Create a token for the user
    token = token_generator.make_token(user)
    return HttpResponse(json.dumps({'result': 0, 'token':token, 'empous_id':user.id, 'username':user.username, 'first_name':user.first_name, 'matchmaking_enabled':user.matchmaking_enabled}), mimetype='application/json')
Esempio n. 30
0
    def post(self, request):
        form = self.form_obj(request.POST, request=request)

        if form.is_valid():
            user_profile = form.save()
            user = user_profile.user

            self.active_weixin_register(user)

            user.is_active = True
            user_profile.is_phone_bind = True

            user.save()
            user_profile.save()
            # 激活体验用户
            SelfServiceUtils.active_experience_service(user)
            # 记录推广注册信息
            PromotionUtils.register_promotion(request, user)
            PromotionUtils.promotion_success(user)

            user.backend = 'django.contrib.auth.backends.ModelBackend'
            login(request, user)
            auth_info = {
                'token': token_generator.make_token(user),
                'user': user.pk,
            }

            return JsonResponse({
                'status': 'ok',
                'msg': u'注册成功',
                'username': user.username,
                'auth_info': auth_info,
            })
        else:
            return JsonResponse({
                'status': 'form_error',
                'msg': form.get_first_errors(),
                'errors': form.errors,
            })
Esempio n. 31
0
def token_new(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        if username and password:
            user = authenticate(username=username, password=password)

            if user:
                if not getattr(user, 'is_active', True):
                    return JsonResponseForbidden("User account is disabled.")

                data = {
                    'token': token_generator.make_token(user),
                    'user': user.pk,
                }
                return JsonResponse(data)
            else:
                return JsonResponseUnauthorized("Unable to log you in, please try again.")
        else:
            return JsonResponseUnauthorized("Must include 'username' and 'password' as POST parameters.")
    else:
        return JsonResponseNotAllowed("Must access via a POST request.")
Esempio n. 32
0
def token_new(request, admin=False):
    if ('username' in request.json_data) or ('password' in request.json_data):
        username = request.json_data['username']
        password = request.json_data['password']
    else:
        username = None
        password = None

    if username and password:
        user = authenticate(username=username, password=password)
        if user:
            if admin:
                if not user.is_staff:
                    return HttpResponseForbidden("Not an admin.")
            data = {
                'token': token_generator.make_token(user),
                'user_id': user.pk,
            }
            return JsonResponse(data)
        else:
            return JsonResponse("Unable to log you in, please try again.", status=403, safe=False)
    else:
        return JsonResponse("Must include 'username' and 'password' as parameters.", status=403, safe=False)
Esempio n. 33
0
    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username, password=password)

        if user is None:
            return JsonResponse({'status': 'error', 'msg': 'error user'})

        if not user.user_permissions.filter(codename='spider_msg').exists():
            return JsonResponse({'status': 'error', 'msg': 'no permission'})

        login(request, user)
        auth_info = {
            'token': token_generator.make_token(user),
            'user': user.pk,
        }

        return JsonResponse({
            'status': 'ok',
            'msg': 'success',
            'username': username,
            'auth_info': auth_info
        })
Esempio n. 34
0
    def setUp(self):
        self.user = User.objects.create_user(self.username, self.email, self.password)
        self.user.save()

        self.token = token_generator.make_token(self.user)
Esempio n. 35
0
    def setUp(self):
        self.user = get_user_model().objects.create_user(username=self.username, password=self.password)
        self.user.save()

        self.token = token_generator.make_token(self.user)
Esempio n. 36
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.test_question = Question(questionText='Would a woodchuck ... ?',
                                   answer1='Yes',
                                   answer2='No',
                                   answer3='I said Yes',
                                   answer4="YOU'RE WRONG",
                                   difficulty=100,
                                   score=100,
                                   topic='Memetics',
                                   rightAnswer=1)
     self.test_question.save()
     self.test_spot = Spot(
         centrex=-2.569111,
         centrey=1.256950,
         centrez=0,
         currentQuestion=self.test_question,
         delay=0,
         rayon=5,
         questionList=str(self.test_question.pk),
     )
     self.test_spot.save()
     self.token = token_generator.make_token(self.test_admin)
     self.info = {
         "id":
         int(self.test_spot.pk),
         "centrex":
         self.test_spot.centrex,
         "centrey":
         self.test_spot.centrey,
         "centrez":
         self.test_spot.centrez,
         "rayon":
         self.test_spot.rayon,
         "startTime":
         self.test_spot.startTime,
         "delay":
         self.test_spot.delay,
         "currentQuestion": {
             'id': self.test_question.id,
             'question': self.test_question.questionText,
             'answer1': self.test_question.answer1,
             'answer2': self.test_question.answer2,
             'answer3': self.test_question.answer3,
             'answer4': self.test_question.answer4,
             'score': self.test_question.score,
             'difficulty': self.test_question.difficulty,
             'rightAnswer': self.test_question.rightAnswer,
             'topic': self.test_question.topic
         },
         "questions": [{
             'id': self.test_question.pk,
             'question': self.test_question.questionText,
             'answer1': self.test_question.answer1,
             'answer2': self.test_question.answer2,
             'answer3': self.test_question.answer3,
             'answer4': self.test_question.answer4,
             'score': self.test_question.score,
             'difficulty': self.test_question.difficulty,
             'rightAnswer': self.test_question.rightAnswer,
             'topic': self.test_question.topic
         }]
     }
     self.maxDiff = None
Esempio n. 37
0
 def setUp(self):
     self.test_admin = User.objects.create_user(username='******',
                                                email='*****@*****.**',
                                                password='******',
                                                is_staff=True)
     self.token = token_generator.make_token(self.test_admin)
Esempio n. 38
0
    def setUp(self):
        self.user = User.objects.create_user(self.username, self.email,
                                             self.password)
        self.user.save()

        self.token = token_generator.make_token(self.user)
Esempio n. 39
0
 def _get_inactive_token(self):
     return token_generator.make_token(self.inactive_user)
Esempio n. 40
0
def handle_facebook_user(iostoken, facebook_token, desired_username, empous_build, using_lite_version, can_play_with_continents):
    #Loggin in via Facebook token
    graph_app = "https://graph.facebook.com/app?access_token="+facebook_token
    fb_response_app = urllib.urlopen(graph_app)
    app_response = json.loads(fb_response_app.read())
    
    #Check to see if query was successful and if this is an Empous Token
    if app_response.has_key('id') and app_response['id'] == EMPOUS_ID:
        graph_url = "https://graph.facebook.com/me?fields=installed,id,first_name,last_name,email,username&access_token="+facebook_token
        fb_response = urllib.urlopen(graph_url)
        responseText = fb_response.read()
        response = json.loads(responseText)

        if response.has_key('installed'):

            #Check if the facebook user exists already. If they don't the username must be specified in order to create the user.
            if EmpousUser.objects.filter(facebook_id=response['id']).exists() or desired_username:

                #Check to see if email is provided...some people block this
                email = response.get('email','')
                
                #Get the user by facebook ID or create one if doesn't exit
                user, userCreated = EmpousUser.objects.get_or_create(
                    facebook_id=response['id'],
                    defaults={
                        'password':generate_password(),
                        'invited':False,
                        'username':desired_username,
                        'first_name':response['first_name'],
                        'last_name':response['last_name'],
                        'email':email,
                        'last_seen_build':empous_build
                    }
                )
    
                #If a user was invited then update the information
                # Make sure they supplied a username 
                if user.invited:
                    if desired_username:
                        user.invited = False
                        user.username = desired_username
                        user.first_name = response['first_name']
                        user.last_name = response['last_name']
                        user.email = email
                        user.last_seen_build = empous_build
                        user.save()
                    else:
                        return HttpResponse(json.dumps(StatusCodes.USERNAME_NEEDED),mimetype='application/json')


                #Check to see if the iostoken was specified for push notifications
                if iostoken:
                    device, wasCreated = IosPushDevice.objects.get_or_create(ios_token=iostoken)
                    user.ios_device = device
                    user.save()

                #Check app version - only care if not using the lite_version
                if using_lite_version == "0":
                    user.using_lite_version = False
                    user.save()

                #Check to see if the user is playing with a new version of Empous that supports continents
                if can_play_with_continents == "1":
                    user.can_play_with_continents = True
                    user.save()

                #Get the facebook friends of the user and add them to the users list of friends
                friends_url = "https://graph.facebook.com/me/friends?fields=installed,name,first_name,last_name&access_token=" + facebook_token
                fb_response = urllib.urlopen(friends_url)
                responseText = fb_response.read()
                response = json.loads(responseText)
                friends = response['data']

                #Friends now contains a list of dictionaries the keys are 
                #"first_name","last_name","name","id" where id is the facebook id
                #may have the key "installed" if they have empous. These are the ones we care about.
                for friend in friends:
                    if "installed" in friend:
                        try:
                            #Get the empous user id using the facebook id
                            empous_player = EmpousUser.objects.get(facebook_id=friend['id'])
                            user.friends.add(empous_player)

                            #Notify your friend that you have empous now.
                            if userCreated:
                                empous_player.send_push_message("Your Facebook friend, %s (%s), has joined Empous" % (user.first_name, user.username), user.playable_games)

                        except EmpousUser.DoesNotExist:
                            #This can happen when the user installed empous but I wiped the DB and they haven't reconnected
                            empous_player = invite_user(friend['id'],friend['first_name'],friend['last_name'])
                            user.friends.add(empous_player)

                #save the user, generate a token,       
                user.save()
                token = token_generator.make_token(user)
                return HttpResponse(json.dumps({'result': 0, 'token':token, 'empous_id':user.id, 'username':user.username, 'first_name':user.first_name, 'matchmaking_enabled':user.matchmaking_enabled}), mimetype='application/json')
            else:
                return HttpResponse(json.dumps(StatusCodes.USERNAME_NEEDED), mimetype='application/json')
        else:
            return HttpResponse(json.dumps(StatusCodes.FB_NOT_INSTALLED), mimetype='application/json')
    else:
        return HttpResponse(json.dumps(StatusCodes.EMPOUS_CODE_ERROR), mimetype='application/json') 
Esempio n. 41
0
def login_empous_user(request):
    username_or_email = request.POST.get('username_or_email',None)
    password = request.POST.get('password',None)
    token = request.POST.get('token',None)
    user = request.POST.get('user',None)
    empous_build = request.POST.get('build',-1)
    ios_token = request.POST.get('iostoken', None)
    using_lite_version = request.POST.get('isEmpousLite', "1")
    can_play_with_continents = request.POST.get('canPlayWithContinents', "0")

    #Check to see if the empous build is supplied is greater than the minimum version
    if empous_build < MIN_EMPOUS_BUILD:
        return HttpResponse(json.dumps(StatusCodes.APP_VERSION_OUTDATED), mimetype='application/json')

    #Check to see if the token is valid, if it is get a new one
    try:
        user = EmpousUser.objects.get(pk=user)
        if token_generator.check_token(user, token):

            #Check app version - only care if not using the lite_version
            if using_lite_version == "0":
                user.using_lite_version = False
                user.save()

            #Check to see if the user is playing with a new version of Empous that supports continents
            if can_play_with_continents == "1":
                user.can_play_with_continents = True
                user.save()

            #Check to see if the iostoken was specified for push notifications
            if ios_token:
                device, wasCreated = IosPushDevice.objects.get_or_create(ios_token=iostoken)
                user.ios_device = device
                user.save()

            #Generate a new token for the user
            token = token_generator.make_token(user)
            return HttpResponse(json.dumps(dict(StatusCodes.SUCCESS.items() + user.dictify(token).items())), mimetype='application/json')
    
    except User.DoesNotExist:
        pass

    if username_or_email and password:
        try:
            empous_user = EmpousUser.objects.get(Q(username__iexact=username_or_email)|Q(email__iexact=username_or_email))

            #Check app version - only care if not using the lite_version
            if using_lite_version == "0":
                empous_user.using_lite_version = False
                empous_user.save()

            #Check to see if the user is playing with a new version of Empous that supports continents
            if can_play_with_continents == "1":
                empous_user.can_play_with_continents = True
                empous_user.save()

            #Check to see if the iostoken was specified for push notifications
            if ios_token:
                device, wasCreated = IosPushDevice.objects.get_or_create(ios_token=iostoken)
                user.ios_device = device
                user.save()

            if password and authenticate(username=empous_user.username, password=password):
                #Get a token for the user
                token = token_generator.make_token(empous_user)
                return HttpResponse(json.dumps(dict(StatusCodes.SUCCESS.items() + empous_user.dictify(token).items())), mimetype='application/json')
        except EmpousUser.DoesNotExist:
            pass

    return HttpResponse(json.dumps(StatusCodes.BAD_CREDENTIALS), mimetype='application/json')
Esempio n. 42
0
    def setUp(self):
        self.user = get_user_model().objects.create_user(
            username=self.username, password=self.password)
        self.user.save()

        self.token = token_generator.make_token(self.user)
Esempio n. 43
0
 def _get_inactive_token(self):
     return token_generator.make_token(self.inactive_user)
 def generate_token(username, password):
     user = authenticate(username=username, password=password)
     if user and user.is_active:
         return token_generator.make_token(user)
     return None