Sha256: fe7c33f1d92e06997e29b90c2c1b9d646ffada29eb1bc72623d894b1e953d71a
Contents?: true
Size: 1.93 KB
Versions: 4
Compression:
Stored size: 1.93 KB
Contents
class PagesController < InheritedResources::Base respond_to :js, :html ajax_loading before_filter :authenticate_user!, :except=>[:show] before_filter :parse_request_url, :only=>:show before_filter :resource, :only=>[:update, :show, :destroy, :edit] before_filter :maybe_authenticate, :only=>[:show] before_filter :set_collection_name authorize_resource has_scope :tagged_with, :as => :tag has_scope :accessible_by, :type=>:boolean, :default=>true do |c,s| s.accessible_by(c.current_ability) end def show resource @sidebar = true @child_pages = @sitemap.children.accessible_by(current_ability) show! end def edit edit! do |format| @attachment = Attachment.new(:page=>@page) @s3provider = S3Provider.new(:key=>"attachments/#{current_user.id}") end end def create create! { (@parent_page ? page_child_path(@parent_page, @page) : @page) } end def update update! do |format| if params[:child_id] @parent_page = @page @page = Page.find(params[:child_id]) @page.parent = @parent_page @page.save end end end def set_collection_name if params[:page_id] self.resources_configuration[:self][:collection_name] = :children end end def parse_request_url if params["level1"] @sitemap = Sitemap.find_by_path(*[1,2,3,4].map{|i|params["level#{i}"]}) @page = @sitemap.resource end end def resource unless @page page_id = params[:id] if page_id.is_numeric? @page ||= Page.find(page_id) else @page ||= Page.where(["lower(pages.title) = ?", page_id.downcase.gsub(/[_]/, ' ')]).first end @attachments ||= @page.attachments end @sitemap ||= @page.sitemaps.sort{|t,u| t.url.size <=> u.url.size}[0] @page end def maybe_authenticate unless user_signed_in? authenticate_user! unless current_ability.can? :read, resource end end end
Version data entries
4 entries across 4 versions & 1 rubygems