К сожалению, Tank_Auth не имеет встроенных функций групп пользователей или разрешений. Я не уверен, где вы видели поле с именем isadmin
, потому что оно, похоже, не является частью текущая настройка по умолчанию , и я даже не могу найти слово "admin" в файлах пакета.
Это самое простое решение, которое я могу придумать:
Добавить is_admin
поле, которое вы упомянули в таблице пользователей, и управляйте им вручную.
ALTER TABLE `users`
ADD COLUMN `is_admin` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0';
Работая с тем, что в настоящее время использует Tank_Auth, вы будете читать пользовательские данные из сеанса, поэтому вам придется добавить их всеанс при входе в систему.
// 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 , который по умолчанию обрабатывает группы пользователей.