Heim Backend-Entwicklung PHP-Tutorial CI框架中通过hook的方式实现简单的权限控制_PHP

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

May 31, 2016 pm 01:18 PM
ci框架 权限控制

根据自己的实际情况,需要两个文件,一个是权限控制类,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();

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie Berechtigungskontrolle und Benutzerverwaltung in Uniapp So implementieren Sie Berechtigungskontrolle und Benutzerverwaltung in Uniapp Oct 20, 2023 am 11:15 AM

So implementieren Sie Berechtigungskontrolle und Benutzerverwaltung in uniapp Mit der Entwicklung mobiler Anwendungen sind Berechtigungskontrolle und Benutzerverwaltung zu einem wichtigen Bestandteil der Anwendungsentwicklung geworden. In uniapp können wir einige praktische Methoden verwenden, um diese beiden Funktionen zu implementieren und die Sicherheit und Benutzererfahrung der Anwendung zu verbessern. In diesem Artikel wird die Implementierung der Berechtigungskontrolle und Benutzerverwaltung in uniapp vorgestellt und einige spezifische Codebeispiele als Referenz bereitgestellt. 1. Berechtigungskontrolle Unter Berechtigungskontrolle versteht man das Festlegen unterschiedlicher Betriebsberechtigungen für verschiedene Benutzer oder Benutzergruppen in einer Anwendung, um die Anwendung zu schützen.

Implementierung von Benutzerberechtigungen und Zugriffskontrolle mit PHP und SQLite Implementierung von Benutzerberechtigungen und Zugriffskontrolle mit PHP und SQLite Jul 29, 2023 pm 02:33 PM

Benutzerberechtigungen und Zugriffskontrolle mit PHP und SQLite implementieren In modernen Webanwendungen sind Benutzerberechtigungen und Zugriffskontrolle ein sehr wichtiger Bestandteil. Mit einer ordnungsgemäßen Berechtigungsverwaltung können Sie sicherstellen, dass nur autorisierte Benutzer auf bestimmte Seiten und Funktionen zugreifen können. In diesem Artikel erfahren Sie, wie Sie mit PHP und SQLite grundlegende Benutzerberechtigungen und Zugriffskontrolle implementieren. Zuerst müssen wir eine SQLite-Datenbank erstellen, um Informationen über Benutzer und ihre Berechtigungen zu speichern. Das Folgende ist die Struktur einer einfachen Benutzertabelle und einer Berechtigungstabelle

Wie verwende ich das CI-Framework in PHP? Wie verwende ich das CI-Framework in PHP? Jun 01, 2023 am 08:48 AM

Mit der Entwicklung der Netzwerktechnologie ist PHP zu einem wichtigen Werkzeug für die Webentwicklung geworden. Eines der beliebtesten PHP-Frameworks – CodeIgniter (im Folgenden als CI bezeichnet) hat ebenfalls immer mehr Aufmerksamkeit und Verwendung gefunden. Heute werfen wir einen Blick auf die Verwendung des CI-Frameworks. 1. Installieren Sie das CI-Framework. Zuerst müssen wir das CI-Framework herunterladen und installieren. Laden Sie die neueste Version des komprimierten CI-Framework-Pakets von der offiziellen Website von CI herunter (https://codeigniter.com/). Nachdem der Download abgeschlossen ist, entpacken Sie ihn

Benutzerverwaltung und Berechtigungskontrolle in Laravel: Implementierung mehrerer Benutzer und Rollenzuweisungen Benutzerverwaltung und Berechtigungskontrolle in Laravel: Implementierung mehrerer Benutzer und Rollenzuweisungen Aug 12, 2023 pm 02:57 PM

Benutzerverwaltung und Berechtigungskontrolle in Laravel: Mehrbenutzer- und Rollenzuweisung implementieren Einführung: In modernen Webanwendungen gehören Benutzerverwaltung und Berechtigungskontrolle zu den sehr wichtigen Funktionen. Laravel bietet als beliebtes PHP-Framework leistungsstarke und flexible Tools zur Implementierung der Berechtigungskontrolle für mehrere Benutzer und Rollenzuweisungen. In diesem Artikel wird erläutert, wie Benutzerverwaltungs- und Berechtigungskontrollfunktionen in Laravel implementiert werden, und relevante Codebeispiele bereitgestellt. 1. Installation und Konfiguration Implementieren Sie zunächst die Benutzerverwaltung in Laravel

Best Practices für Laravel-Berechtigungsfunktionen: So steuern Sie Benutzerberechtigungen richtig Best Practices für Laravel-Berechtigungsfunktionen: So steuern Sie Benutzerberechtigungen richtig Nov 02, 2023 pm 12:32 PM

Best Practices für Laravel-Berechtigungsfunktionen: Für die korrekte Steuerung von Benutzerberechtigungen sind spezifische Codebeispiele erforderlich. Einführung: Laravel ist ein sehr leistungsstarkes und beliebtes PHP-Framework, das viele Funktionen und Tools bereitstellt, die uns bei der Entwicklung effizienter und sicherer Webanwendungen unterstützen. Eine wichtige Funktion ist die Berechtigungskontrolle, die den Benutzerzugriff auf verschiedene Teile der Anwendung basierend auf seinen Rollen und Berechtigungen einschränkt. Eine ordnungsgemäße Berechtigungskontrolle ist eine Schlüsselkomponente jeder Webanwendung, um sensible Daten und Funktionen vor unbefugtem Zugriff zu schützen

Wie implementiert man Benutzeranmeldung und Berechtigungskontrolle in PHP? Wie implementiert man Benutzeranmeldung und Berechtigungskontrolle in PHP? Jun 29, 2023 pm 02:28 PM

Wie implementiert man Benutzeranmeldung und Berechtigungskontrolle in PHP? Bei der Entwicklung von Webanwendungen gehören die Benutzeranmeldung und die Berechtigungskontrolle zu den sehr wichtigen Funktionen. Durch die Benutzeranmeldung können wir den Benutzer authentifizieren und eine Reihe von Betriebskontrollen basierend auf den Berechtigungen des Benutzers durchführen. In diesem Artikel wird erläutert, wie Sie mit PHP Benutzeranmeldungs- und Berechtigungskontrollfunktionen implementieren. 1. Benutzeranmeldefunktion Die Implementierung der Benutzeranmeldefunktion ist der erste Schritt der Benutzerüberprüfung. Nur Benutzer, die die Überprüfung bestanden haben, können weitere Vorgänge durchführen. Im Folgenden finden Sie einen grundlegenden Implementierungsprozess für die Benutzeranmeldung: Erstellen

So verwenden Sie das CI-Framework in PHP So verwenden Sie das CI-Framework in PHP Jun 27, 2023 pm 04:51 PM

PHP ist eine beliebte Programmiersprache, die in der Webentwicklung weit verbreitet ist. Das CI-Framework (CodeIgniter) ist eines der beliebtesten Frameworks in PHP. Es bietet einen vollständigen Satz vorgefertigter Tools und Funktionsbibliotheken sowie einige beliebte Designmuster, mit denen Entwickler Webanwendungen effizienter entwickeln können. In diesem Artikel werden die grundlegenden Schritte und Methoden zur Entwicklung von PHP-Anwendungen mithilfe des CI-Frameworks vorgestellt. Verstehen Sie die grundlegenden Konzepte und Strukturen des CI-Frameworks. Bevor wir das CI-Framework verwenden, müssen wir einige grundlegende Konzepte und Strukturen verstehen. Runter

So verwenden Sie ACL (Access Control List) zur Berechtigungskontrolle im Zend Framework So verwenden Sie ACL (Access Control List) zur Berechtigungskontrolle im Zend Framework Jul 29, 2023 am 09:24 AM

So verwenden Sie ACL (AccessControlList) zur Berechtigungskontrolle im Zend Framework. Einführung: In einer Webanwendung ist die Berechtigungskontrolle eine entscheidende Funktion. Es stellt sicher, dass Benutzer nur auf die Seiten und Funktionen zugreifen können, für die sie eine Zugriffsberechtigung haben, und verhindert unbefugten Zugriff. Das Zend-Framework bietet eine praktische Möglichkeit, die Berechtigungskontrolle mithilfe der ACL-Komponente (AccessControlList) zu implementieren. In diesem Artikel wird die Verwendung von ACL im Zend Framework vorgestellt

See all articles