Add convenience methods to make ACL use simpler
This commit is contained in:
parent
8eef66cee2
commit
a16b45eb6a
3 changed files with 12 additions and 4 deletions
|
@ -163,7 +163,7 @@ class TraceController < ApplicationController
|
|||
trace = Trace.find(params[:id])
|
||||
|
||||
if trace.visible? and (trace.public? or (@user and @user == trace.user))
|
||||
if Acl.match(request.remote_ip).where(:k => "no_trace_download").exists?
|
||||
if Acl.no_trace_download(request.remote_ip)
|
||||
render :nothing => true, :status => :forbidden
|
||||
elsif request.format == Mime::XML
|
||||
send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => Mime::XML.to_s, :disposition => 'attachment')
|
||||
|
|
|
@ -38,7 +38,7 @@ class UserController < ApplicationController
|
|||
else
|
||||
render :action => 'terms'
|
||||
end
|
||||
elsif params[:user] and Acl.match(request.remote_ip, params[:user][:email].split("@").last).where(:k => "no_account_creation").exists?
|
||||
elsif params[:user] and Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last)
|
||||
render :action => 'blocked'
|
||||
else
|
||||
session[:referer] = params[:referer]
|
||||
|
@ -112,7 +112,7 @@ class UserController < ApplicationController
|
|||
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?
|
||||
elsif Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last)
|
||||
render :action => 'blocked'
|
||||
else
|
||||
@user = User.new(params[:user])
|
||||
|
@ -271,7 +271,7 @@ class UserController < ApplicationController
|
|||
:openid_url => params[:openid])
|
||||
|
||||
flash.now[:notice] = t 'user.new.openid association'
|
||||
elsif Acl.match(request.remote_ip).where(:k => "no_account_creation").exists?
|
||||
elsif Acl.no_account_creation(request.remote_ip)
|
||||
render :action => 'blocked'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,4 +6,12 @@ class Acl < ActiveRecord::Base
|
|||
condition = Acl.where("address >> ?", address)
|
||||
end
|
||||
end
|
||||
|
||||
def self.no_account_creation(address, domain = nil)
|
||||
self.match(address, domain).where(:k => "no_account_creation").exists?
|
||||
end
|
||||
|
||||
def self.no_trace_download(address, domain = nil)
|
||||
self.match(address, domain).where(:k => "no_trace_download").exists?
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue