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.")
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)
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.")
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)
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)
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)
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)
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()
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)
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)
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': {} })
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)
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 })
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.")
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.")
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 })
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")
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")
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()
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")
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")
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)
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")
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" }
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")
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.")
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')
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, })
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.")
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)
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 })
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)
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)
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
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)
def _get_inactive_token(self): return token_generator.make_token(self.inactive_user)
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')
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')
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)
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