Phase 2 CTs implementation and tests, with config parameter

This commit is contained in:
Matt Amos 2011-03-22 10:26:10 +00:00 committed by Tom Hughes
parent 82db7eccc8
commit 8b12abd5bb
11 changed files with 102 additions and 15 deletions

View file

@ -104,6 +104,14 @@ class ApplicationController < ActionController::Base
# NOTE: need slightly more helpful message than this.
render :text => t('application.setup_user_auth.blocked'), :status => :forbidden
end
# if the user hasn't seen the contributor terms then don't
# allow editing - they have to go to the web site and see
# (but can decline) the CTs to continue.
if REQUIRE_TERMS_SEEN
unless @user.nil? or @user.terms_seen
render :text => t('application.setup_user_auth.need_to_see_terms'), :status => :forbidden
end
end
end
def authorize(realm='Web Password', errormessage="Couldn't authenticate you")

View file

@ -24,7 +24,7 @@ class UserController < ApplicationController
if request.xhr?
render :update do |page|
page.replace_html "contributorTerms", :partial => "terms", :locals => { :has_decline => params[:has_decline] }
page.replace_html "contributorTerms", :partial => "terms"
end
else
@title = t 'user.terms.title'
@ -53,11 +53,14 @@ class UserController < ApplicationController
if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"})
render :action => 'new'
elsif params[:decline]
@user.terms_seen = true
@user.save
redirect_to t('user.terms.declined')
elsif @user
if !@user.terms_agreed?
@user.consider_pd = params[:user][:consider_pd]
@user.terms_agreed = Time.now.getutc
@user.terms_seen = true
if @user.save
flash[:notice] = t 'user.new.terms accepted'
end
@ -73,7 +76,8 @@ class UserController < ApplicationController
@user.creation_ip = request.remote_ip
@user.languages = request.user_preferred_languages
@user.terms_agreed = Time.now.getutc
@user.terms_seen = true
if @user.save
flash[:notice] = t 'user.new.flash create success message', :email => @user.email
Notifier.deliver_signup_confirm(@user, @user.tokens.create(:referer => params[:referer]))
@ -214,10 +218,14 @@ class UserController < ApplicationController
session[:user] = user.id
session_expires_after 1.month if params[:remember_me]
# if the user hasn't seen the contributor terms then redirect them
# to that page.
if REQUIRE_TERMS_SEEN and not user.terms_seen
redirect_to :controller => 'user', :action => 'terms', :referer => params[:referer]
# The user is logged in, if the referer param exists, redirect
# them to that unless they've also got a block on them, in
# which case redirect them to the block so they can clear it.
if user.blocked_on_view
elsif user.blocked_on_view
redirect_to user.blocked_on_view, :referer => params[:referer]
elsif params[:referer]
redirect_to params[:referer]