]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/user_controller.rb
Add support for domain based ACLs
[rails.git] / app / controllers / user_controller.rb
index 8c63f8b757845b517e82321e794aaed209e37538..77370c311317b03e73e96c5e6c1f8f6bbbd7203f 100644 (file)
@@ -38,6 +38,8 @@ class UserController < ApplicationController
       else
         render :action => 'terms'
       end
       else
         render :action => 'terms'
       end
+    elsif Acl.match(request.remote_ip, params[:user][:email].split("@").last).where(:k => "no_account_creation").exists?
+      render :action => 'blocked'
     else
       session[:referer] = params[:referer]
 
     else
       session[:referer] = params[:referer]
 
@@ -79,9 +81,7 @@ class UserController < ApplicationController
   def save
     @title = t 'user.new.title'
 
   def save
     @title = t 'user.new.title'
 
-    if Acl.address(request.remote_ip).where(:k => "no_account_creation").exists?
-      render :action => 'new'
-    elsif params[:decline]
+    if params[:decline]
       if @user
         @user.terms_seen = true
 
       if @user
         @user.terms_seen = true
 
@@ -112,6 +112,8 @@ class UserController < ApplicationController
       else
         redirect_to :action => :account, :display_name => @user.display_name
       end
       else
         redirect_to :action => :account, :display_name => @user.display_name
       end
+    elsif Acl.match(request.remote_ip, params[:user][:email].split("@").last).where(:k => "no_account_creation").exists?
+      render :action => 'blocked'
     else
       @user = User.new(params[:user])
 
     else
       @user = User.new(params[:user])
 
@@ -269,6 +271,8 @@ class UserController < ApplicationController
                        :openid_url => params[:openid])
 
       flash.now[:notice] = t 'user.new.openid association'
                        :openid_url => params[:openid])
 
       flash.now[:notice] = t 'user.new.openid association'
+    elsif Acl.match(request.remote_ip).where(:k => "no_account_creation").exists?
+      render :action => 'blocked'
     end
   end
 
     end
   end