Sha256: e22c769a96220080f088bde80867ae9c27d0511f7704d9065971c558bb80a273

Contents?: true

Size: 1.4 KB

Versions: 7

Compression:

Stored size: 1.4 KB

Contents

class PagesController < ApplicationController
  # Devise2 and TheRole before_actions
  before_action :login_required, except: [:index, :show]
  before_action :role_required,  except: [:index, :show]

  before_action :set_page,       only:   [:edit, :update, :destroy]
  before_action :owner_required, only:   [:edit, :update, :destroy]

  # Public

  def index
    @pages = Page.with_state(:published).all
  end

  def show
    @page = Page.with_state(:published).find params[:id]
  end

  # Login && role

  def new
    @page = Page.new
  end

  def create
    @page = Page.new page_params

    if @page.save
      redirect_to @page, notice: 'Page was successfully created.'
    else
      render action: 'new'
    end
  end

  def my
    @pages = current_user.pages
  end

  # login && role && ownership

  def edit; end

  def update
    if @page.update_attributes page_params
      redirect_to @page, notice: 'Page was successfully updated.'
    else
      render action: :edit
    end
  end

  def destroy
    @page.destroy
    redirect_to pages_url
  end

  # Admin or Pages Moderator Role require

  def manage
    @pages = Page.all
  end

  private

  def set_page
    @page = Page.find params[:id]

    # TheRole: You should define OWNER CHECK OBJECT
    # When editable object was found
    @owner_check_object = @page
  end

  def page_params
    params.require(:page).permit(:user_id, :title, :content, :state)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
the_role-2.5.4 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.5.3 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.5.2 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.5.1 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.5 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.4 spec/dummy_app/app/controllers/pages_controller.rb
the_role-2.3 spec/dummy_app/app/controllers/pages_controller.rb