예제 #1
0
파일: signup.py 프로젝트: sudan/Markit
def store_user_info(signup_form):
	''' A controller which calls the individual store methods '''
	
	redis_obj = Redis()

	username = signup_form['username']
	email = signup_form['email']
	first_name = signup_form['first_name']
	last_name = signup_form['last_name']
	password = encrypt_password(signup_form['password'])
	auth_token = signup_form['auth_token']
	summary = signup_form['summary']

	user_id = get_next_userId(redis_obj)

	store_email(redis_obj, user_id, email)
	store_username(redis_obj, user_id, username)
	store_first_name(redis_obj, user_id, first_name)
	store_last_name(redis_obj, user_id, last_name)
	store_password(redis_obj, user_id, password)
	store_image_url(redis_obj, user_id, email)
	store_timestamp(redis_obj, user_id)
	store_summary(redis_obj,user_id,summary)
	store_auth_token(redis_obj, user_id, email, auth_token)
	store_uid_with_username(redis_obj, user_id, username)
	store_uid_with_email(redis_obj, user_id, email)
	store_uid_with_auth_token(redis_obj, user_id, auth_token)
	store_email_with_auth_token(redis_obj, email, auth_token)
	store_global_userIds(redis_obj, user_id)
예제 #2
0
def change_password(request):
    """ Module for changing the password of the user """

    redis_obj = Redis()
    user_id = get_userId(request)
    username = get_username(redis_obj, user_id)

    if request.method == "POST":

        change_password_form = ChangePasswordForm(data=request.POST)
        if change_password_form.is_valid():

            change_password_form_cleaned = change_password_form.cleaned_data
            old_password = encrypt_password(change_password_form_cleaned["old_password"])
            new_password = encrypt_password(change_password_form_cleaned["new_password"])

            if get_password(redis_obj, user_id) == old_password:
                store_password(redis_obj, user_id, new_password)
                return HttpResponseRedirect("/home")

            return render_to_response(
                CHANGE_PASSWORD_TEMPLATE_PATH,
                {
                    "change_password_form": change_password_form,
                    "change_password_error": "Password you gave is incorrect",
                    "username": username,
                },
                context_instance=RequestContext(request),
            )

        return render_to_response(
            CHANGE_PASSWORD_TEMPLATE_PATH,
            {
                "change_password_form": change_password_form,
                "change_password_error": "Invalid password entries",
                "username": username,
            },
            context_instance=RequestContext(request),
        )

    change_password_form = ChangePasswordForm()
    return render_to_response(
        CHANGE_PASSWORD_TEMPLATE_PATH,
        {"change_password_form": change_password_form, "username": username},
        context_instance=RequestContext(request),
    )
예제 #3
0
파일: signin.py 프로젝트: sudan/Markit
def login(request, redirect_uri='/home'):
	''' login functionality which returns a empty form when given a GET request 
	or validates the authentication when given a POST request '''

	if request.method == "POST":
		login_form = LoginForm(data=request.POST)
		
		if login_form.is_valid():
			login_form_cleaned = login_form.cleaned_data
			email = login_form_cleaned['email']
			redis_obj = Redis()
			
			if account_existence(redis_obj, email) == 1:
				user_id = get_key(redis_obj, email)
				password = get_password(redis_obj, user_id)
				
				if password == encrypt_password(login_form_cleaned['password']):
					auth_token = get_auth_token()
					
					update_auth_token(redis_obj, auth_token, user_id, email)
					redirect_uri =  request.POST.get('redirect_uri', '/home')
					response = HttpResponseRedirect(redirect_uri)
					max_age = 7 * 24 * 60 * 60
					expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
					response.set_cookie('auth', auth_token, max_age=max_age, expires=expires)
					response.set_cookie('email', email, max_age=max_age, expires=expires)
					return response
		
		redirect_uri =  request.POST.get('redirect_uri', '/home')
		signup_form = SignUpForm()
		return render_to_response(HOME_PAGE_TEMPLATE_PATH,
			{
				'login_form':login_form,
				'signup_form':signup_form,
				'redirect_uri':redirect_uri,
				'signin_error':'invalid username or password'
			},
			context_instance=RequestContext(request))
	
	login_form = LoginForm()
	signup_form = SignUpForm()
	return render_to_response(HOME_PAGE_TEMPLATE_PATH,
		{
			'login_form':login_form,
			'signup_form':signup_form,
			'redirect_uri':redirect_uri
		},
		context_instance=RequestContext(request))
예제 #4
0
파일: signup.py 프로젝트: sudan/Markit
def register(request):
	''' signup functionality which returns a empty form when given a GET request or
	validates n creates an entry in db with POST request '''

	if request.method == "POST":
		
		signup_form = SignUpForm(data=request.POST)
		if signup_form.is_valid():
			
			signup_form_cleaned = signup_form.cleaned_data

			login_form = LoginForm()
			if  signup_form_cleaned['password'] != signup_form_cleaned['password_confirmation']:
				return render_to_response(HOME_PAGE_TEMPLATE_PATH,
					{
						'login_form':login_form,
						'signup_form':signup_form,
						'signup_error':'Passwords doesnt match'
					},
					context_instance=RequestContext(request))
			
			if username_exists(signup_form_cleaned['username']) == 1:
				return render_to_response(HOME_PAGE_TEMPLATE_PATH,
					{
						'login_form':login_form,
						'signup_form':signup_form,
						'signup_error':'Username already exists'
					},
					context_instance=RequestContext(request))
			
			if email_exists(signup_form_cleaned['email']) == 1:
				return render_to_response(HOME_PAGE_TEMPLATE_PATH,
					{
						'login_form':login_form,
						'signup_form':signup_form,
						'signup_error':'Email id has already taken'
					},
					context_instance=RequestContext(request))

			password = encrypt_password(signup_form_cleaned['password'])
			password_confirmation = encrypt_password(signup_form_cleaned['password_confirmation'])
			signup_form_cleaned['auth_token'] = get_auth_token()

			store_user_info(signup_form_cleaned)
			response = HttpResponseRedirect('/home')

			max_age = 7 * 24 * 60 * 60
			expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
			response.set_cookie('auth', signup_form_cleaned['auth_token'], max_age=max_age, expires=expires)
			response.set_cookie('email', signup_form_cleaned['email'], max_age=max_age, expires=expires)
			return response
		
		login_form = LoginForm()
		return render_to_response(HOME_PAGE_TEMPLATE_PATH,
			{
				'login_form':login_form,
				'signup_form':signup_form
			},
			context_instance=RequestContext(request))

	login_form = LoginForm()
	signup_form = SignUpForm()
	return render_to_response(HOME_PAGE_TEMPLATE_PATH,
		{
			'login_form':login_form,
			'signup_form':signup_form
		},
		context_instance=RequestContext(request))