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)
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), )
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))
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))