2012-04-24 8 views
1

私はアプリケーションにBasecampスタイルのサブドメインを使用しています。工夫を使用して、私は、ユーザーがUser.rbに次のように使用することによってのみ、そのサブドメインへのアクセスを許可しています:デベロッパー、サブドメイン、スーパーユーザー

def self.find_for_authentication(conditions={}) 
    conditions[:account_id] = Account.find_by_subdomain(conditions.delete(:subdomain)).id 
    super(conditions) 
    end 

これは、ユーザがログインしようと関連付けられたアカウントがサブドメインと一致することを確認するチェックします。それはうまく動作します。

私の問題は、スーパーユーザーがログインすることを許可したいということです。関連する「アカウント」を持たないユーザーです。彼らは代わりに、ユーザー「スーパー」同じにブールの列 『がありますスーパーユーザのステータス』モデルを。

右サブドメインORをチェックする方法はあります '?

ありがとう!

答えて

0

すべてのスーパーユーザーのアカウントを作成した場合はどうすればよいですか?認証プロセスのどのステージが呼び出されるのかよく分かりませんが、これらの行に沿ったものは何か...?

def self.find_for_authentication(conditions={}) 
    if subdomain = conditions.delete(:subdomain) 
    conditions[:account_id] = Account.find_by_subdomain(subdomain).id 
    elsif User.where(conditions).where(:superuser => true).length > 0 
    conditions[:account_id] = 1 # 1 is account reserved for super users 
    end 

    super(conditions) 
en 
関連する問題