2013-11-17 2 views
0

Я пытаюсь создать сайт с 1 администратором и многими пользователями. Администратор имеет контроль над всеми пользователями.Ruby on Rails Devise Добавление администратора

Я использую:
- Рельсы 4,0
- Разрабатывают 3.2
- Sqlite3

Я создал пользовательскую модель и следовали инструкциям для добавления атрибута в модели пользователя с помощью опции 2. https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role

В базе данных он устанавливает логическое значение для admin для false. Безопасно ли разрешить администрирование администратора из базы данных?

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

Есть ли другой способ создать администратора? Я попытался выполнить вариант 1, но он дал мне много неприятностей.

+0

Вы заявляете: «Мне любопытно, потому что пароль не хранится в базе данных, а вместо этого зашифрованная строка сохраняется». Почему вы считаете, что зашифрованная строка менее безопасна, чем текстовый пароль? Очень плохая практика хранить ясные текстовые пароли в любом месте. –

+0

да Я понимаю, почему вы не должны хранить ясные текстовые пароли. Извините, если я был неясен - я считаю, что зашифрованная строка более безопасна. Поскольку мы не храним текстовые пароли, почему мы сохраняем эту опцию, чтобы получить доступ ко всему сайту в базе данных? – Daniel

+0

Вариант 1 также сохраняет доступ ко всему сайту в базе данных, только в другой таблице. Если вы не храните учетные данные администратора в базе данных, где вы будете хранить его, что, по вашему мнению, будет более безопасным? На практике я бы не рекомендовал sqlite3. Поскольку вы используете Heroku, я бы порекомендовал PostgresSQL. –

ответ

0

Я нашел этот вопрос уже был задан по-другому

Rails Devise - Admin role, model vs attribute

Вариант 1 является более безопасным и с вариантом 2 каждый может добавить параметр, говорящий админ = верно.

Смежные вопросы