Как применить разрешения - PullRequest
1 голос
/ 12 ноября 2010

Мне интересно, как реализовать некоторую логику разрешений в приложении Rails 2.3.8.

Например, пользователь может редактировать только те задачи, которые создал пользователь (он же «владеет»).

Должен ли я сделать что-то вроде этого:

user.can_edit_task(task)

или это:

task.can_be_edited_by?(user)
#Method needs to be passed in a user object (from controller). But then how 
#can I access the current user in a "before_save" filter as below : 

.

def User
  before_save: check_permissions!

  def check_permissions
    #this way?
    raise some_exception if task.can_be_edited_by?(user)
    #or this way?
    raise some_exception if self.can_edit_task?(task)
  end
end

Какие-нибудь советы о том, как это сделать?

1 Ответ

2 голосов
/ 12 ноября 2010

Пожалуйста, попробуйте использовать некоторые из существующих плагинов, например cancan

Это спасет тебе жизнь.

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