Создание существующего пользователя администратором на Heroku - PullRequest
3 голосов
/ 27 июня 2011

Я установил rails_admin в свое приложение rails 3, которое я настроил для аутентификации администраторов на основе поля «admin», которое я добавил в свою модель User.Есть ли простой способ заставить существующего пользователя на моем Heroku установить администратора?Я не могу выполнить SQL для базы данных, потому что я в настоящее время нахожусь в общей базе данных.Будет ли путь миграции, который устанавливает пользователя (ей) в качестве администратора?Похоже, как взломать ...

Ответы [ 4 ]

4 голосов
/ 27 июня 2011

Используйте heroku console (или heroku run rails console, если у вас новый стек Cedar).Это так же, как rails console локально, и должно позволить вам легко внести это изменение.

1 голос
/ 10 сентября 2014

Шаг за шагом разбито:

heroku run rails c

User.find(55) или любой другой идентификатор, соответствующий нужному пользователю.Если это единственный пользователь, User.first будет достаточно.

user = User.admin = true при условии, что у вас есть столбец администратора типа boolean.

user.save

ctrl + c длявыйти из консоли

0 голосов
/ 23 июня 2017

Существует 2 способа создания админа на производстве:

  1. добавить пользователя с правами администратора в файл seed.rb и запустить его на производстве. Команда для запуска семенного файла на героку:

    Герои бегут по граблям db: seed

  2. open heroku run rails console, который открывает консоль в облаке heroku, и вы можете создать пользователя / администратора вручную.

0 голосов
/ 27 июня 2011

Если вы создаете пользователя определенного типа, я бы использовал Rails STI для управления различными типами пользователей. В вашем user.rb все еще есть ваша проверка на создание пользователя и некоторые разрешения, но у вас будет

normal_user.rb

class NormalUser < User
end

admin_user.rb

class AdminUser < User
end

Ваша миграция будет состоять в том, чтобы добавить 'type' в таблицу users. Тогда любого существующего пользователя, которого вы хотите сделать администратором, вы просто найдете и установите его тип «AdminUser». Любые конкретные действия администратора, которые вам нужны, вы можете просто использовать

User.is_a?(AdminUser)
...