0

我的疑问是:有没有办法在codeigniter中做这样的事情

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Users extends CI_Controller {

  public function __construct()
     {
         parent::__construct();
     }

  //This method only user with admin permission can access this
  public function onlyAdmin(){
  }
  //This method all user  can access this
  public function allUser(){
  }
}

类似的东西或更动态的东西。

谢谢你的时间。

4

2 回答 2

0

最简单的方法是使用身份验证库,因为您显然需要在应用程序中的某个时间点进行身份验证。CodeIgniter 有大量可用的代码,每个代码在不同情况下都有自己的优点和缺点。

看看这篇文章,对一些有一个很好的概述,看看是否有一个适合你的需求。

您可能需要一个支持不同用户组的产品。这样,当用户登陆您的页面时,您可以简单地检查他们的组(管理员/用户/未登录),然后相应地引导他们或呈现页面。为此,您可以使用 case 语句为每个组运行不同的函数。这些功能应该呈现页面,但是您需要为每个用户组进行特定的自定义。

于 2015-07-14T13:33:46.093 回答
0

有很多方法可以做到这一点,但基本之一是Phill Sturgeon 的建议,即为任何使用 level 的应用程序设置核心类,或者在你的目录中创建类似的(MY_Controller类) :APPPATH . 'core'

class MY_Controller extends CI_Controller // prefix MY_ can be found in APPPATH . 'config/config.php' or you can set your own
{
    public __construct()
    {
        parent::__construct();
    }
}

class Admin_controller extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
        //pseudo code
        if ($this->session->userdata('level') != 'admin')
        {
            exit("You need admin's privileges to get in here.");
        }
    }
}

class Public_controller extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

与在控制器中相比,您将创建可以扩展适当核心类的文件/类:

class Blog extends Public_controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

或类似的东西:

class Dashboard extends Admin_controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function some_admin_method()
    {
        //
    }
}

或者,您也可以查看此链接

于 2015-07-14T13:37:06.750 回答