Rails Admin - стань другим пользователем - PullRequest
3 голосов
/ 05 декабря 2011

Я использую Rails 3.0.10, и в настоящее время я использую CanCan для определения различных возможностей, которыми обладают пользователи в приложении.

Я использую Devise для самой аутентификации пользователя.

Есть ли хороший способ для пользователя-администратора «стать» другим пользователем, временно использующим CanCan?Это было бы особенно полезно для конкретных пользователей, которые могут сталкиваться с уникальными проблемами, связанными с их учетной записью.

Итак, простыми словами, я просто хочу иметь возможность войти в систему как любой данный пользователь, чтобы увидеть то, что он видит.Не уверен, что есть CanCan или Devise.

ОБНОВЛЕНИЕ

Я только что сталкивался с этим:

How-To: Войдите в систему как другой пользователь, если вы являетесь администратором .

Я еще не проверял это, но это может быть ответ, который я искал !!Не стесняйтесь дать некоторое представление, если вы выбрали именно такой подход или у вас есть другая идея!

Ответы [ 3 ]

4 голосов
/ 05 декабря 2011

Я нашел то, что искал, и для этого есть драгоценный камень!

switch_user

Это было действительно удобно. Мне просто нужно добавить gem switch_user в мой Gemfile.

Затем добавьте <%= switch_user_select %> к моему макету. Именно то, что я хотел!

0 голосов
/ 05 декабря 2011

Если devise не имеет отношения к тому, что пользователь видит в вашем приложении, возможно, вы могли бы сделать что-то вроде этого:

1) создать новую возможность для вашего пользователя без прав администратора

2) проверить, может ли пользователь делать или видеть вещи

3) генерировать пользовательские страницы на основе этих способностей

ability = Ability.new(@user)
Rails.logger.debug("* ability.can?(:update, @user):#{ability.can?(:update, @user)}") # see if user can access the user
Rails.logger.debug("* User.accessible_by(ability):#{User.accessible_by(ability).inspect.to_s}") # see if returns the records the user can access
Rails.logger.debug("* to_sql:#{User.accessible_by(ability).to_sql}") # see what the generated SQL looks like
0 голосов
/ 05 декабря 2011

CanCan - это авторизация, вы заинтересованы в аутентификации. Если вы используете что-либо на основе warden (например, devise), см. внизу. Создайте область (например, :admin), где вы храните пользователя с правами администратора. Установите пользователя, которого хотите персонифицировать, с помощью #set_user. См. Ссылку выше.

...