Как создать и настроить свой веб-сервер на VDS (05 сен 2024)

Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?

Ruby on Rails: Only allow owner of data to access

Больше
6 года 8 мес. назад #1 от serge
Рано или поздно (но скорее рано) перед каждым rails-разработчиком возникает эта проблема: как ограничить доступ к определенным экшенам для тех или иных пользователей приложения. Как разрешить только автору редактировать свои собственные коменты в блоге, а только админу - их удалять, как разрешить доступ к пользовательским ресурсам, хранящимся в db, только их владельцу, например. Плюс любые, разумеется, варианты. Опять же как вариант: можно сходу поставить cancancan или pundit (или еще сотня названий гемов), отредактировать class Ability. Но - всегда ли в этом есть необходимость?

Далее привожу эффектный пример, способ ограничить доступ к ресурсам юзера, создаваемых посредством стандартной формочки scaffold:
Code:
rails generate devise User rails generate scaffold Campaign name:string user:belongs_to

средствами rails, без установки дополнительных гемов. Мало ли пригодится кому. Итак, users can access their campaigns as this:
Code:
current_user.campaigns


CampaignsController
Code:
def show #this will search only within current user campaigns. @campaign = current_user.campaigns.find_by(id: params[:id]). if campaign #this campaign exists and its from current_user ... end end def index #only this user campaigns @campaigns = current_user.campaigns end def new @campaign = current_user.campaigns.build end def create #This campaign is created with user_id = current_user.id @campaign = current_user.campaigns.build(campaign_params) @campaign.save end private def campaign_params params.require(:campaign).permit(:name) end

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Работает на Kunena форум