Jim

Thanks it worked,

--Nror

On Tue, Nov 29, 2011 at 3:14 PM, Jim Ruther Nill <[email protected]> wrote:

>
>
> On Mon, Nov 28, 2011 at 9:11 AM, newrails user <[email protected]>wrote:
>
>> Hi all,
>>
>> I am facing problem in getting subdomain name inside the model. The
>> following is my setup.
>>
>> I am using cancan for authorization.I wanted a specific condition in
>> Ability.rb ( the file which is placed in models if we install cancan gem).
>>
>> Below is the condition I wanted:
>> =========================================================
>>       user ||= User.new # guest user (not logged in)
>>       if (user.role == 'admin' && user.site_name ==
>> current_subdomain_name)
>>        can :manage, :all
>>       else
>>        can :read, :all
>>       end
>> =======================================================
>>
>> current_subdomain_name should be the name of the subdomain on which user
>> is browsing. But i could not get it.
>>
>> I have tried the following was but could not succeed.
>>
>> 1) setting a current_subdomain_name as a global variable in the
>> application controller and using the global variable. (using ruby debugger
>> i found that the global variable is having nil in it)
>> 2) i have a method current_subdomain_name in the application helper which
>> returns what i wanted, I included the same inside the ability model and
>> tried to use the method . But was getting error .
>>
>> 3) writting a mehod in controller such that it returns what i wanted and
>> use the same in the model.Still could not succeed.
>>
>>
>
> See if this works
>
> class Ability
>   include CanCan::Ability
>
>   def initialize(user, subdomain) #subdomain should now contain the
> current subdomain
>     user ||= User.new
>     ...
>   end
> end
>
> Then in your application controller
>
> def current_ability
>   @current_ability ||= Ability.new(current_user, current_subdomain_name)
> end
>
> class Ability
>   include CanCan::Ability
>
>   def initialize(user)
>
>     user ||= User.new # guest user (not logged in)
>
>     if user.admin?
>
>       can :manage, :all
>     else
>       can :read, :all
>     end
>
>   endend
>
>
>
>
>>
>> Can anybody let me know how to get the subdomain from request and use it
>> in the model (In Ability.rb which cancan provide).
>>
>> Any help is highly appreciated.
>>
>> Thanks,
>> Nror
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>
>
>
>
> --
> -------------------------------------------------------------
> visit my blog at http://jimlabs.heroku.com
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to