Sha256: 8a71d14d3301c897276c3b550d1651a42eda3852ac594876edd2d6a7298a4d4e

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

# Create a generator for an override file for this class
# sample below:
# class Ability < CmsAbility
#
#   def setup_role(role_detail, user)
#     if role_detail.command.eql?('contents.blog')
#       can :manage, Blog
#     else
#       warn "#{ role_detail.command } is not yet handled."
#     end
#   end
#
# end
class CmsAbility
  include CanCan::Ability

  def initialize(user)

    if user && user.role && user.role.role_details
      user.role.role_details.each do |role_detail|
        can :view, role_detail.command if role_detail.can_view?
        can :manage, role_detail.command if role_detail.can_manage?

        if role_detail.can_manage?
          case role_detail.command
            when 'settings.roles'
              can :manage, Cms::Fortress::Role
            when 'settings.sites'
              can :manage, Cms::Site
            when 'settings.users'
              can :manage, Cms::Fortress::User
            when 'contents.pages'
              can :manage, Cms::Page
            when 'contents.files'
              can :manage, Cms::File
            when 'designs.layouts'
              can :manage, Cms::Layout
            when 'designs.snippets'
              can :manage, Cms::Snippet
            else
              setup_role(role_detail, user) if defined?(setup_role)
          end
        end
      end
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cms-fortress-1.1.8 app/models/cms_ability.rb
cms-fortress-1.1.7 app/models/cms_ability.rb
cms-fortress-1.1.6 app/models/cms_ability.rb
cms-fortress-1.1.5 app/models/cms_ability.rb
cms-fortress-1.1.4 app/models/cms_ability.rb
cms-fortress-1.1.3 app/models/cms_ability.rb
cms-fortress-1.1.2 app/models/cms_ability.rb