为不同的用户分配不同的角色?

时间:2019-08-13 09:24:44

标签: php mysql sql codeigniter

我已经创建注册并成功登录。现在我想要2个角色,即管理员和用户。请帮助如何进行。

我的SQL表包含: 用户,电子邮件,密码,验证密钥,is_verified,角色(管理员和用户)。

登录控制器:

function validation()
{
    $this->form_validation->set_rules('user_email', 'Email Address', 'required|trim|valid_email');
    $this->form_validation->set_rules('user_password', 'Password', 'required');
    if ($this->form_validation->run()) {
        $result = $this->loginModel->can_login($this->input->post('user_email'), $this->input->post('user_password'));
        if ($result == $query) {
            redirect('Admin');
        } else {
            $this->session->set_flashdata('message',$result);
            redirect('login');
        }
    } else {
        $this->index();
    }
}

登录模型:

function can_login($email, $password)
{
    $this->db->where('email', $email);
    $query = $this->db->get('codeigniter_register');
    if($query->num_rows() > 0) {
        foreach($query->result() as $row) {
            if($row->is_email_verified == 'yes') {
                $store_password = $this->encryption->decrypt($row->password);
                if($password == $store_password) {
                    $this->session->set_userdata('id', $row->id);
                } else {
                    return 'Wrong Password';
                }
            } else {
                return 'First verified your email address';
            }
        }
    } else {
        return 'Wrong Email Address';
    }
}

管理控制器:

class Admin extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        if(!$this->session->userdata('id')) {
            redirect('login');
        }
    }

    function index()
    {
        echo '<p align="center"><a href="'.base_url().'admin/logout">Logout</a></p>';*/
        if($this->session->userdata('role')==='Admin') {
            $this->load->view('dashboard_view');
        } else {
            echo "Access Denied";
        }
    }
}

我已经创建注册并成功登录。现在我想要2个角色,即管理员和用户。请帮助如何进行。

我的SQL表包含: 用户,电子邮件,密码,验证密钥,is_verified,角色(管理员和用户)。

1 个答案:

答案 0 :(得分:0)

再创建一个将保留该角色(用户或管理员)的会话,并使用该会话进行进一步处理。

$ this-> session-> set_userdata('role',$ row-> role);