2016-11-17 7 views
0

私は認証用にdevise gemを使用しました。複数のユーザーがいて、私は管理者です。他のユーザーのパスワードを変更したいそれは可能ですか?devise gemを使用している他のユーザーのパスワードを変更してください

+1

rails consoleのupdateメソッドを使用できます。 'User.find(user_id).update_attributes(password:" password ")' –

+0

私はそれを試しましたが、usersテーブルにpasswordというカラムがありません。 –

+0

ユーザーが入力するパスワードはDeviseによって暗号化され、暗号化された値が格納されます。パスワードは、データベースにアクセスできるユーザーに公開されるため、直接格納しないでください。 –

答えて

2

私はより良い方法を考えることはできませんが、フォームフィールドに入力した新しいパスワードを渡して次のことを行うアクションを実装できます。 。以下のコードだけでなく、レールのコンソールで動作します(デバイス4.2.0でテスト)

u = User.find(user_id) 
u.password = "changed_password" 
u.save 

EDIT: 私は強く、このをやって再考することをお勧め。既存のユーザーは、パスワードの内容をどのように知っていますか?代替方法 - ユーザーがパスワードを忘れた方法を使用してパスワードを設定できるように、メカニズムを構築することもできます。これを行うには、encrypted_pa​​sswordをnullにして、パスワードを忘れた場合の電子メール(現在のパスワードが期限切れで、新しいパスワードを設定する必要がある郵便で適切なメッセージとともに)を送信して、パスワードを自分で設定できるようにします。

+0

私は機密データを持っており、ユーザにユーザ名とパスワードを提供したいと考えています。誰かが自分のデータを公開しようとしていると感じたら、パスワードを変更することができます。 –

+2

あなたは 'password_confirmation'を' 'password''だけする必要はありません –

関連する問題