Rails имеет некоторые очень хорошие методы для авторизации на основе ролей, например, cancanКак реализовать на страницы авторизации в Rails
Но как вы можете предоставить разрешение на конкретные страницы, а не контроллеры/действия.
Например, возьмите приложение, содержащее модель квитанции или счета-фактуры. Пользователь может войти в систему и создать счет-фактуру. Затем Пользователь должен отправить своему клиенту URL-адрес этого счета. Клиент не должен иметь доступ к счетам других клиентов, особенно важно, поскольку Rails генерирует последовательные и легко угадываемые имена путей (например,/invoices/1,/invoices/2 и т. Д.).
В идеале, клиенту не нужно регистрироваться, чтобы просматривать эти страницы. Одним из решений может быть создание случайного пароля при создании счета и отправка его клиенту для разблокировки этой страницы.
Это звучит как проблема, которая должна быть разумно распространена, но после Googling я не нашел много информации об использовании (хотя я могу использовать неправильные условия поиска).
Так что я хотел бы знать:
- Это то, что я должен пытаться с Rails?
- Есть ли какие-либо драгоценные камни или примеры приложений, которые я мог бы изучить?
- Каковы потенциальные соображения/подводные камни этого подхода?
Если клиенту необходимо войти в систему для просмотра своего счета-фактуры, вы можете создать собственный метод проверки, если 'invoice' доставляется' current_user' или нет. – Emu