LoginSignup
1
1

More than 5 years have passed since last update.

CakePHPでユーザ名とパスワードを変更するシェルを作る

Last updated at Posted at 2017-12-14

やりたいこと

既存のユーザのユーザ名とパスワードを変更する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();

平文で指定してやると勝手にハッシュ化してくれます。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1