Как создать другое меню для пользователя без прав администратора, использующего сеанс PHP?
Я новичок в этом форуме, недавно я только что создал веб-приложение для управления запасами и так далее. (Извините за мой плохой английский)
Я просто рассматриваю, нужно ли мне сделать другое меню для пользователя без прав администратора. Это меню для администратора
Мне нужно удалить мастер и меню настроек для зарегистрированного пользователя. я могу сделать это просто с помощью сессии?
4 ответа
Разрешить разным людям делать разные вещи можно с помощью компонента авторизации. CodeIgniter не имеет собственного компонента авторизации. Вы должны искать где-то еще для одного.
Сессии не помогут напрямую. Сеанс знает, какой пользователь использует приложение; эта информация должна быть передана компоненту авторизации, чтобы определить, разрешен ли пользователю доступ к страницам, зарезервированным для администраторов.
Это мой код main.php
класс Main extends CI_Controller {
function __construct() { parent::__construct(); if(!$this->session->userdata('logged_in')) { redirect(site_url('login').'?u='.uri_string(), 'refresh'); } $this->data['title'] = 'Home'; $this->data['active'] = 'home'; $this->data['menu'] = array('home','keuangan','penjualan','pembelian','stok','master','setting'); } function index() { $data['title'] = 'Main'; $this->load->view('common/header',$this->data); $this->load->view('common/footer'); }
}
Вы можете проверить сессию перед отображением меню в шаблоне.
бывший
$this->c_type = $this->CI->session->userdata('logtype');
$menubar ='';
if($this->c_type == 'Admin')
{
$menubar = $this->CI->load->view('admin/menubar', $data, true);
}
else
{
$menubar = $this->CI->load->view('general/menubar', $data, true);
}
Вы можете получить user_id, следуя
$user_id=$this->session->userdata('user_id');
if($user_id ==1){ // I considered admin user_id =1
echo "admin menu";
}
else{
echo "user menu";
}