Взламывая вместе функцию администратора для контроллера before_filters - PullRequest
0 голосов
/ 13 ноября 2010

Я использую Authologic и некоторые письменные методы для управления пользователями и что они могут делать в моем приложении. Мне не нужна способность иметь несколько ролей, мне просто нужна способность разрушать вещи. Мне интересно, могу ли я взломать это вместе.

В моем "QuestionsController" я использую следующие фильтры:

  before_filter :require_user, :only => [:edit, :update, :destroy]  # all actions require user to be logged in
  before_filter :init_data     # create a member variable called @post, initialized based on the action
  before_filter :require_owner, :only => [:edit, :update, :destroy] #edit, update, and destroy actions require ownership

Я пытаюсь выяснить, могу ли я обернуть эти фильтры условием, которое указывает, является ли имя пользователя current_user "bgadoci", тогда не выполняйте фильтры Возможно ли это вообще, и если да, то какой синтаксис мне следует использовать (вроде нового для ruby ​​и rails).

Вот то, что я сейчас имею, которое дает синтаксическую ошибку в первой строке (очевидно).

  if :current_user :username => "bgadoci"
   before_filter :require_user, :only => [:edit, :update, :destroy]  # all actions require user to be logged in
   before_filter :init_data     # create a member variable called @post, initialized based on the action
   before_filter :require_owner, :only => [:edit, :update, :destroy] #edit, update, and destroy actions require ownership
  end

1 Ответ

0 голосов
/ 13 ноября 2010

Может быть, вы можете сделать фильтр до, который обертывает эти другие фильтры?

before_filter :check_for_me


def check_for_me
  unless current_user.username == 'me'
    before_filter :require_user
    ..
  end
end
...