残念ながら、Tank_Authには、ユーザーグループまたはアクセス許可の機能が組み込まれていません。というフィールドがどこにあるのか分かりません。current default setupの一部ではないようですパッケージファイルに "admin"という言葉が含まれています。あなたはユーザーテーブルに言及is_admin
フィールドを追加し、それを手動で管理する
:
これは私が考えることができる最も簡単な解決策です。 Tank_Authが現在ない方法での作業
ALTER TABLE `users`
ADD COLUMN `is_admin` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0';
、あなたはセッションからユーザデータを読み込むことがありますので、あなたは、ログイン時にセッションに追加する必要があります。
// Tank_Auth.php Line 71
$this->ci->session->set_userdata(array(
'is_admin' => (bool) $user->is_admin, // added
'user_id' => $user->id,
'username' => $user->username,
'status' => ($user->activated == 1) ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED,
));
次にライブラリに独自の機能を追加します。
function is_admin()
{
return $this->logged_in() && $this->ci->session->userdata('is_admin') === TRUE;
}
次にあなたがログイン時リダイレクトのログインコントローラにこれを追加する必要があります:
// controllers/auth.php Line 30
function login()
{
if ($this->tank_auth->is_admin()) {
redirect('admin');
} elseif ($this->tank_auth->is_logged_in()) {
redirect('user');
}
// Rest of code stays untouched...
}
続いてい管理コントローラは常に$this->tank_auth->is_admin()
をチェックします。
は、これは私があなたの目標を達成するために提供することができます最短ルートである - おそらくない最高ができますが、デフォルトでは、ユーザ・グループを処理しIon_Authに興味があるかもしれません。
は最高のソリューションのようです。 – Philip
私はまだCIに利用できる認証ライブラリがそれ以上存在しないことに驚いていますが、皆さんのニーズが異なるために驚くことではありません。私は自分自身を転がすことを好む。私はTank_Authがセッションからユーザ名などを直接読み込む方法が気に入らない。たとえば、私がユーザを非アクティブにすると、すぐに起動したい。 –
私は同意しますが、誰もが異なるニーズを持っていると言えます。個人的には、私はCIのネイティブARのように私はPHPのアクティブレコードを使用することを好むので、私は自分自身をロールバックする必要があります。私はほとんどのauthのライブラリは時代遅れだと思う。 – Philip