Rumah pembangunan bahagian belakang tutorial php CI框架中通过hook的方式实现简单的权限控制_PHP

CI框架中通过hook的方式实现简单的权限控制_PHP

May 31, 2016 pm 01:18 PM
rangka kerja ci Kawalan kebenaran

根据自己的实际情况,需要两个文件,一个是权限控制类,Acl,另外一个是权限配置的文件acl.php放在了config这个目录下。

Acl这个类放在了application/hook/acl.php。通过application/config/config.php文件开启hook,并且配置config这个目录下的hook.php文件。

1、开启hook功能,config.php这个文件

代码如下:


/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean).  See the user guide for details.
|
*/
$config['enable_hooks'] = TRUE;

2、配置hook.php这个文件

代码如下:


/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files.  Please see the user guide for info:
|
|    http://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['post_controller_constructor'] = array(
    'class'    => 'Acl',
    'function' => 'auth',
    'filename' => 'acl.php',
    'filepath' => 'hooks'
);

具体的参数说明可以参看文档的链接地址,这里尤其要注意post_controller_constructor这个值,可以根据情况选择不同的。

3、编写权限配置文件acl.php放在config目录下。

代码如下:


$config['AUTH'] = array(
    SUPER_ADMIN         => array(
        'admin' => array('index', 'logout'),
    ),
    ADMIN   => array(
        'admin' => array('index', 'logout'),
    ),
    GUEST => array(
        'admin' => array('index', 'logout'),
    ),
);

这里只是我根据自己的情况定义的,不是真实数据,根据自己的情况定。还有主要变量名字要交$config,这样便于加载使用。

4、编写具体的权限控制Acl类

代码如下:


class Acl {
    private $url_model;
    private $url_method;
    private $CI;
    function Acl()
    {
        $this->CI =& get_instance();
        $this->CI->load->library('session');
        $this->url_model = $this->CI->uri->segment(1);
        $this->url_method = $this->CI->uri->segment(2);
    }
    function auth()
    {
        $user = $this->CI->session->userdata('USER');
        if(empty($user))
            $user->status = 0;
        $this->CI->load->config('acl');
        $AUTH = $this->CI->config->item('AUTH');
        if(in_array($user->status, array_keys($AUTH))){
            $controllers = $AUTH[$user->status];
            if(in_array($this->url_model, array_keys($controllers))){
                if(!in_array($this->url_method, $controllers[$this->url_model])){
                    show_error('您无权访问该功能,该错误已经被记录!点击返回');
                }
            }else{
                show_error('您无权访问该模块,该错误已经被记录!点击返回');
            }
        }
        else
            show_error('错误的用户类型,该错误已经被记录!点击返回');
    }
}

整体上大体是这样的形式,最后还是要根据自己的实际情况来确定。

需要注意的是:

代码如下:


$this->CI =& get_instance();

以上只是实现了简单的权限控制,小伙伴们可以根据自己的需求,自由扩展下吧。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp Cara melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp Oct 20, 2023 am 11:15 AM

Bagaimana untuk melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp Dengan pembangunan aplikasi mudah alih, kawalan kebenaran dan pengurusan pengguna telah menjadi bahagian penting dalam pembangunan aplikasi. Dalam uniapp, kami boleh menggunakan beberapa kaedah praktikal untuk melaksanakan kedua-dua fungsi ini dan meningkatkan keselamatan dan pengalaman pengguna aplikasi. Artikel ini akan memperkenalkan cara untuk melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp, dan menyediakan beberapa contoh kod khusus untuk rujukan. 1. Kawalan Kebenaran Kawalan kebenaran merujuk kepada menetapkan kebenaran pengendalian yang berbeza untuk pengguna atau kumpulan pengguna yang berbeza dalam aplikasi untuk melindungi aplikasi.

Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite Jul 29, 2023 pm 02:33 PM

Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite Dalam aplikasi web moden, kebenaran pengguna dan kawalan akses adalah bahagian yang sangat penting. Dengan pengurusan kebenaran yang betul, anda boleh memastikan bahawa hanya pengguna yang diberi kuasa boleh mengakses halaman dan fungsi tertentu. Dalam artikel ini, kita akan belajar cara melaksanakan kebenaran pengguna asas dan kawalan akses menggunakan PHP dan SQLite. Pertama, kita perlu mencipta pangkalan data SQLite untuk menyimpan maklumat tentang pengguna dan kebenaran mereka. Berikut ialah struktur jadual pengguna ringkas dan jadual kebenaran

Bagaimana untuk menggunakan rangka kerja CI dalam php? Bagaimana untuk menggunakan rangka kerja CI dalam php? Jun 01, 2023 am 08:48 AM

Dengan perkembangan teknologi rangkaian, PHP telah menjadi salah satu alat penting untuk pembangunan web. Salah satu rangka kerja PHP yang popular - CodeIgniter (selepas ini dirujuk sebagai CI) juga telah menerima lebih banyak perhatian dan penggunaan. Hari ini, kita akan melihat cara menggunakan rangka kerja CI. 1. Pasang rangka kerja CI Mula-mula, kita perlu memuat turun rangka kerja CI dan memasangnya. Muat turun versi terkini pakej termampat rangka kerja CI dari tapak web rasmi CI (https://codeigniter.com/). Selepas muat turun selesai, nyahzip

Pengurusan pengguna dan kawalan kebenaran dalam Laravel: melaksanakan berbilang pengguna dan tugasan peranan Pengurusan pengguna dan kawalan kebenaran dalam Laravel: melaksanakan berbilang pengguna dan tugasan peranan Aug 12, 2023 pm 02:57 PM

Pengurusan pengguna dan kawalan kebenaran dalam Laravel: Melaksanakan tugasan berbilang pengguna dan peranan Pengenalan: Dalam aplikasi web moden, pengurusan pengguna dan kawalan kebenaran adalah salah satu fungsi yang sangat penting. Laravel, sebagai rangka kerja PHP yang popular, menyediakan alatan yang berkuasa dan fleksibel untuk melaksanakan kawalan kebenaran untuk berbilang pengguna dan tugasan peranan. Artikel ini akan memperkenalkan cara melaksanakan pengurusan pengguna dan fungsi kawalan kebenaran dalam Laravel, dan menyediakan contoh kod yang berkaitan. 1. Pemasangan dan konfigurasi Mula-mula, laksanakan pengurusan pengguna dalam Laravel

Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengawal Kebenaran Pengguna dengan Betul Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengawal Kebenaran Pengguna dengan Betul Nov 02, 2023 pm 12:32 PM

Amalan terbaik untuk fungsi kebenaran Laravel: Cara mengawal kebenaran pengguna dengan betul memerlukan contoh kod khusus Pengenalan: Laravel ialah rangka kerja PHP yang sangat berkuasa dan popular yang menyediakan banyak fungsi dan alatan untuk membantu kami membangunkan aplikasi web yang cekap dan selamat. Satu ciri penting ialah kawalan kebenaran, yang menyekat akses pengguna ke bahagian aplikasi yang berbeza berdasarkan peranan dan kebenaran mereka. Kawalan kebenaran yang betul ialah komponen utama mana-mana aplikasi web untuk melindungi data dan fungsi sensitif daripada capaian yang tidak dibenarkan

Bagaimana untuk melaksanakan log masuk pengguna dan kawalan kebenaran dalam PHP? Bagaimana untuk melaksanakan log masuk pengguna dan kawalan kebenaran dalam PHP? Jun 29, 2023 pm 02:28 PM

Bagaimana untuk melaksanakan log masuk pengguna dan kawalan kebenaran dalam PHP? Apabila membangunkan aplikasi web, log masuk pengguna dan kawalan kebenaran adalah salah satu fungsi yang sangat penting. Melalui log masuk pengguna, kami boleh mengesahkan pengguna dan melaksanakan satu siri kawalan operasi berdasarkan kebenaran pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan log masuk pengguna dan fungsi kawalan kebenaran. 1. Fungsi log masuk pengguna Melaksanakan fungsi log masuk pengguna ialah langkah pertama dalam pengesahan pengguna Hanya pengguna yang telah lulus pengesahan boleh melakukan operasi selanjutnya. Berikut ialah proses pelaksanaan log masuk pengguna asas: Cipta

Cara menggunakan rangka kerja CI dalam PHP Cara menggunakan rangka kerja CI dalam PHP Jun 27, 2023 pm 04:51 PM

PHP adalah bahasa pengaturcaraan popular yang digunakan secara meluas dalam pembangunan web. Rangka kerja CI (CodeIgniter) ialah salah satu rangka kerja yang paling popular dalam PHP Ia menyediakan satu set lengkap alatan dan perpustakaan fungsi sedia, serta beberapa corak reka bentuk yang popular, membolehkan pembangun membangunkan aplikasi Web dengan lebih cekap. Artikel ini akan memperkenalkan langkah dan kaedah asas untuk membangunkan aplikasi PHP menggunakan rangka kerja CI. Fahami konsep asas dan struktur rangka kerja CI Sebelum menggunakan rangka kerja CI, kita perlu memahami beberapa konsep dan struktur asas. Bawah

Cara menggunakan ACL (Senarai Kawalan Akses) untuk kawalan kebenaran dalam Rangka Kerja Zend Cara menggunakan ACL (Senarai Kawalan Akses) untuk kawalan kebenaran dalam Rangka Kerja Zend Jul 29, 2023 am 09:24 AM

Cara menggunakan ACL (AccessControlList) untuk kawalan kebenaran dalam Rangka Kerja Zend Pengenalan: Dalam aplikasi web, kawalan kebenaran ialah fungsi penting. Ia memastikan bahawa pengguna hanya boleh mengakses halaman dan ciri yang dibenarkan untuk mereka akses dan menghalang akses yang tidak dibenarkan. Rangka kerja Zend menyediakan cara yang mudah untuk melaksanakan kawalan kebenaran, menggunakan komponen ACL (AccessControlList). Artikel ini akan memperkenalkan cara menggunakan ACL dalam Rangka Kerja Zend

See all articles