AuthComponentの論理削除フラグを認証条件に加える設定

usersテーブルにdeletedというカラムを持っているとして、
認証時にusername,password以外に、
deleted=0の場合のみ認証するという条件を追加する設定。

CakePHP3.1からは以下のような設定が必要っぽい。

cakephp\src\Controller\AppControllerでの設定

$this->loadComponent('Auth', [
    'authenticate' => [
        'Form' => [
            'fields' => [
                'username' => 'username',   // ユーザー名のカラムを指定
                'password' => 'password'    // パスワードに使うカラムを指定
            ],
            'finder' => 'Auth',             // UsersTableに追加するメソッド名?
        ]
    ],
    ...以下略

cakephp\src\Model\Table\UsersTableに以下メソッド追加

    public function findAuth(\Cake\ORM\Query $query, array $options)
    {
        $query->where(['Users.deleted' => 0]);

        return $query;
    }

NSLogはどのファイルのどのメソッドのどの行かを出力してくれないのでそれを出力してくれるようなマクロ。

NSLogはどのファイルのどの行かを出力してくれないのでしてくれるようなマクロ。
DLOGはDebug Logの略のつもり。

これをPrecomplie Prefix Headerのファイル内に記述してNSLogの代わりに使うと
どのファイルのどのメソッドのどの行かとかがわかりやすくなるかも。

 #define DLOG(_fmt, ...) NSLog((@"%s(%d)%s "_fmt), __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__);

【使い方】
今まで

NSLog("%@", @"出力したいメッセージ");

と書いていた部分を

DLOG("%@", @"出力したいメッセージ");

にするだけでおk。