سؤال

لدي تطبيق Rails3 مع تعريف Admance_Authorization و Enherited_Resources GEMS مثبتة.اسمحوا لي أن أظهر لك بعض الكود من تطبيقي: giveacodicetagpre.

قواعد التفويض الخاصة بي: giveacodicetagpre.

في الوظائف / index.html.haml i استخدم giveacodicetagpre.

وفي مشاركات الخاص بي_Controller giveacodicetagpre.

تبدو جيدة، ولكن لا يعمل: (

اختبار المستخدم له دور مشرف مع عضوية المشرف لأحد المدونات، ولكن دون أي عضوية في المدونة الثانية.

مع القواعد التالية ورمز أي مستخدم مع دور المشرفين يمكن أن يخلق وظيفة في أي مدونة.

هل يمكن أن تخبرني من فضلك - ما أحتاج إلى تغييره للسماح لمؤلفي المدونات فقط والمدير بإرسال المشاركات إلى مدونات ولكن ليس إلى المدونات الأخرى؟

هل كانت مفيدة؟

المحلول

Not so elegant way, but i solved it with following:

  1. changed access filter in posts_controller:

    filter_resource_access :nested_in => :blog

  2. Added method to posts controller

    protected

    def new_post_for_collection @post = Blog.find(params[:blog_id]).posts.new end

  3. Changes in index.html.haml

    • if permitted_to? :create, @post .button.add-post = link_to "New post", new_resource_path
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top