рельсы 3, ограничивающие доступ - PullRequest
0 голосов
/ 18 мая 2011

я уже сделал административный контроллер сессией, и теперь я пытаюсь ограничить доступ к какой-либо странице это мой application_controller.rb

class ApplicationController < ActionController::Base
before_filter :authorize, :except => :login
protect_from_forgery

protected
def authorize
unless User.find_by_id(session[:user_id])
  flash[:notice] = "Please log in"
  redirect_to :controller => 'admin', :action => 'login'
end
end
end

и это контроллер, я пытался ограничить его доступ

class PhotosController < ApplicationController

def index
@photos = Photo.all
respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @photos }
end
end

def show
@photo = Photo.find(params[:id])
respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @photo }
end
end

def new
@photo = Photo.new
respond_to do |format|
  format.html # new.html.erb
  format.xml  { render :xml => @photo }
end
end

def edit
@photo = Photo.find(params[:id])
end

def create
upload = params[:upload]
@photo = Photo.new(params[:photo])
respond_to do |format|
  if @photo.save
post = Datafile.save(upload, @photo.id)
    format.html { redirect_to(@photo, :notice => 'Photo was successfully created.') }
    format.xml  { render :xml => @photo, :status => :created, :location => @photo }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @photo.errors, :status => :unprocessable_entity }
  end
end
end

def update
@photo = Photo.find(params[:id])
respond_to do |format|
  if @photo.update_attributes(params[:photo])
    format.html { redirect_to(@photo, :notice => 'Photo was successfully updated.') }
    format.xml  { head :ok }
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @photo.errors, :status => :unprocessable_entity }
  end
end
end

def destroy
@photo = Photo.find(params[:id])
@photo.destroy
respond_to do |format|
post = Datafile.delete(@photo.id)
  format.html { redirect_to(photos_url) }
  format.xml  { head :ok }
end
end

protected

def authorize
end

end

но это не ограничивает, можете показать мне, что мне не хватает?

Ответы [ 2 ]

5 голосов
/ 18 мая 2011

Метод authorize не работает, поскольку вы переопределили его как пустой метод в нижней части PhotosController.Удалите это переопределение, и тогда оно будет работать.

0 голосов
/ 18 мая 2011

поменять строку с контроллера приложений

  before_filter :authorize, :except => :login

с этим

helper_method :authorize

и вставить эту строку в контроллер фотографий

before_filter :authorize
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...