CanCan

2011-01-19 10 views
8
ile Yönetici Yetkilendirmesi

A, Admin ad alanıyla bir dizi denetleyiciye sahiptir. Kullanıcı bir yönetici olmadığı sürece bunlara erişimi kısıtlamak istiyorum. Yetkisiz aramak zorunda kalmadan CanCan kullanarak bunu yapmanın bir yolu var mı? Her kontrolün her yönteminde?CanCan

cevap

0

şimdi rails_admin onun resmi web sitesinde bulabilirsiniz, Cancan ile tam desteği vardır, bu konu için bir wiki sayfası var Bu soruna çeşitli çözümler.

  • @mark tarafından önerildiği gibi, her eylem için yetkilendirmeyi denetleyen yöneticiler için bir temel denetleyiciye sahip olun.
    • İhtiyacınız olan her şey, kullanıcıların bir admin bayrağına sahip olduğunu kontrol etmek için bunun için CanCan'ı kullanmanız gerekmeyebilir.
    • (normal kullanıcılar yalnızca ila farklı aksine) birbirinden farklı yöneticilerini taşınması için
  • , (bu konu dışı biraz ama alakalı olabilecek) ayrı AdminAbility sınıf düşünün.
+0

Rails_admin'den bahsetti mi? –

+0

evet haklısın, rails_admin'den bahsetmedi. Ben düşündüğüm kadar iyi olmadığından rails_admin kullanmanızı önermiyorum. –

1

Admin Namespaces wiki sayfası

class ApplicationController < ActionController::Base 
end 

class Admin::ApplicationController < ApplicationController 
    # these goes in your namespace admin folder 
    before_filter :check_authorized 

    def check_authorized 
    redirect_to root_path unless can? :admin, :all 
    end 
end 

class SomeadminController < Admin::ApplicationController 
    def some_action 
    # do_stuff 
    end 
end