「CakePHP3」ログインしているユーザー自身のみが自身のデータを編集削除する方法【入門】

カテゴリー:PHP

前回、ログインボタンを作成したので、今回はユーザー情報をログインしているユーザー自身のみが自身のデータを編集削除できるようにしていきます。

今回のページでは、CakePHP3でのユーザー情報の編集関連から下記の2項目をまとめています。

  • 「ログインしているユーザー自身のみが自身のデータを編集削除する方法」
  • 「新たなユーザーを追加して確認」

ログインしているユーザー自身のみが自身のデータを編集削除する方法

現在ユーザー情報を編集しようとすると、ログイン機能を追加したことでisAuthorized methodが実装されていないというエラーが表示されてしまいます。

CakePHP3 isAuthorized method エラー

解消するためisAuthorized methodをUsersController.phpに追加していきます。

下記のコードを UsersController.php 内の Initialization method の下に追加します。

    /**
     * isAuthorized method
     */
    public function isAuthorized($user)
    {
        $id = $this->request->getParam('pass.0');

        if ($id == $user['id']) {
            return true;
        }

        return false;
    }

基本は全てのアクセスを拒否して、ユーザーidが一致した時のみ編集と削除の操作にアクセスできるようにしています。

これで、ログインしている自分以外のユーザーが情報の編集・削除ができなくなりました。

新たなユーザーを追加して確認

新たなユーザーを追加後、ユーザーid1のユーザーでログインをして、他のユーザーの「Edit」や「Delete」の操作を行うと操作が「You are not authorized to access that location.」となり操作ができないようになっていることが確認できます。

CakePHP3 You are not authorized to access that location.

これでログインしているユーザー自身のみが自身のデータを編集削除することができるようになりました。

参考:CakePHP3「シンプルな認証と認可のアプリケーション」

参考:CakePHP3「リクエストとレスポンスオブジェクト」


タグ

関連する投稿

ドラクエ好きな社会保険労務士有資格者・ファイナンシャルプランナー技能士検定2級正会員が運営をしています。当ブログではDQMSLを中心にWordPress・HTML・CSS・JS・PHPなどのTips備忘記録や資格関連の情報、その他雑記を発信して行きます。