CakePHPでユーザ名とパスワードを変更するシェルを作る
やりたいこと
既存のユーザのユーザ名とパスワードを変更するShellを作りたい。
とある要望から既存のユーザ名とパスワードを変更する必要が出てきたので、いずれまた同じ要望が出てきて他の人が同じ問題で悩まなくていいように、折角ならShell作っとくか、ということで作りました。
環境
- CakePHP 2.2.5
やり方
ポイントは3つです。
1.AuthComponentを読み込ませる
UpdateUserShell.php
App::uses('AuthComponent', 'Controller/Component'); //AuthComponentを読み込む
class UpdateUserShell extends AppShell {
.
.
これが居ないとパスワードがうまく保存出来ません。
AuthComponentの本体は
lib/Cake/Controller/Component/AuthComponent.php
ここにいるので、上記のように記述するとうまくいきました。
※ただし、Userモデルの中で読み込んでいる場合はシェルで指定する必要はありません
2.Shell からモデルを使えるようにする
UpdateUserShell.php
public $uses = array('User');
Shell からUserモデルを使えるようにするために、1文必要です。
3.パスワードは平文を指定する
UpdateUserShell.php
$this->User->id = $id;
$this->User->set(array(
'username' => 'fuga',
'password' => 'newPassword', //パスワードは平文を指定
));
$this->User->save();
平文で指定してやると勝手にハッシュ化してくれます。
参考
Author And Source
この問題について(CakePHPでユーザ名とパスワードを変更するシェルを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/binthec/items/80a6306619beb9ebe65a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .