Esempio n. 1
0
def forgot_password(request):
    try:
        user = User.objects.get(username=request.POST['username'])
    except:
        return decors.code_response(codes.BAD_REQUEST,
                                    message=messages.USER_NOT_FOUND)
    if not user.email_approved:
        return decors.code_response(codes.BAD_REQUEST,
                                    message=messages.EMAIL_NOT_APPROVED)
    new_password = utils.generate_random_pass(10)
    user.set_password(new_password)
    user.save()
    tasks.email.delay(to=user.email, subject=messages.NEW_PASSWORD, \
        message=render_to_string('emails/new_password.txt', {'new_password': new_password}))
    return decors.code_response(code=codes.OK,
                                message=messages.PASSWORD_SENT_TO_EMAIL)
Esempio n. 2
0
def register(request):
    """
    View for registering to game
    """
    try:
    	user = User.objects.get(username=request.SESSION['username'])
        game = Game.objects.get(pk=request.POST['game_id'])
    except:
    	return decors.code_response(code=codes.BAD_REQUEST, message=messages.GAME_OR_USER_NOT_FOUND)
    if game.status != Game.NOT_STARTED:
    	return decors.code_response(code=codes.BAD_REQUEST, message=messages.GAME_STARTED)
    if GameEntry.objects.filter(game=game, player=user).exists():
    	return decors.code_response(code=codes.BAD_REQUEST, message=messages.USER_ALREADY_REGISTERED)
    game_entry = GameEntry.objects.create(game=game, player=user)
    return {
        'result': game_entry.to_json(),
        'message': messages.SUCCESS_REGISTRATION
    }
Esempio n. 3
0
def register(request):
    """
    Simple registration
    if OK, returns token
    """
    username = request.POST['username']
    email = request.POST.get('email')
    password = request.POST['password']
    # TODO email regex check
    if email is not None or email != '':
        if User.objects.filter(email=email, email_approved=True).exists():
            return decors.code_response(code=codes.EMAIL_ALREADY_EXISTS,
                                        message=messages.EMAIL_ALREADY_EXISTS)
    if User.objects.filter(username=username).exists():
        return decors.code_response(code=codes.INVALID_FORM,
                                    message=messages.USER_ALREADY_EXISTS)
    user = User.objects.create(username=username, email=email)
    user.set_password(password)
    user.save()
    created_token = token.create_token(user=user)
    #EmailConfirmation.objects.create_confirmation(user)
    return {'user': user.to_json(), 'token': created_token}
Esempio n. 4
0
def login(request):
    """
    Simple authentification
    if OK, returns token
    """
    username = request.POST["username"]
    password = request.POST["password"]
    # authenticate user
    user = authenticate(username=username, password=password)
    if user is None:
        return {
            'code': codes.WRONG_PASSWORD,
            'message': messages.WRONG_PASSWORD
        }
    if not user.is_active:
        return decors.code_response(codes.USER_NOT_ACTIVE)
    created_token = token.create_token(user=user)
    return {"token": created_token, "user": user.to_json()}
Esempio n. 5
0
@csrf_exempt
@decors.json_response()
@decors.requires_token()
@decors.required_session_params(['username'])
@require_http_methods("POST")
@decors.required_request_params(['game_id', 'secret_key'])
def kill(request):
	"""
	View for killing the victim
	"""
    try:
    	try:
    	    game = Game.objects.get(pk=request.POST['game_id'])
    	except:
    		return decors.code_response(code=codes.BAD_REQUEST, message=messages.GAME_OR_USER_NOT_FOUND)
    	game_entry = game.game_entries.filter(player__username=request.SESSION['username']).first()
        victim_entry = game.game_entries.filter(player=game_entry.victim).first()
        if victim_entry.secret_key != request.POST['secret_key']
            return decors.code_response(code=codes.BAD_REQUEST, message=messages.SECRET_KEY_NOT_VALID)
        KillLog.objects.create_log(game=game, killer=game_entry.player, victim=game_entry.victim)
        game_entry.kills += 1
        game_entry.victim = victim_entry.victim
        game_entry.save()
        victim_entry.status = GameEntry.KILLED
        victim_entry.save()
        return {
            'game_entry': game_entry.to_json(),
            'message': messages.SUCCESS_KILL
        }
    except Exception as e: