如何使用第三方认证系统更改codeigniter现有登录系统

时间:2015-10-15 17:08:33

标签: php codeigniter

我真的需要帮助修改我购买的脚本,这是使用codeigniter设计的(我是一个全新的系统)。该项目旨在只有两个具有固定权限的用户角色(admin,其他(is_logged_in))。经过几个小时的学习MVC如何工作,我已经能够在项目中改变这么少但微不足道的东西。

我的大问题是:
我想使用该脚本来完成我一直在使用本机php工作的Web POS应用程序,该项目使用ion-auth进行登录系统和身份验证,请我使用另一个第三方acl系统,如flexiauth,oauth ,Aauth等,但我没有足够的知识知道我将要更换哪些文件以及我需要修改哪些控制器.....我完全被卡住....请帮助我< / p>

我需要的是足够简单:

我想让多个群组和用户可以访问网络应用中的不同资源,例如收银员(应该可以访问pos,客户,报告daily_sales,关闭注册,打印发票)和(帐户应该可以访问仪表板) ,报告,订单等),经理应该能够创建新用户,查看销售,无效销售等,管理员当然应该具有整体访问权限。

我现在拥有的是admin(对所有资源的完全访问权限)其他logged_in用户:在某些方面受限制。

我拥有的群体是2:

Admin
Staff.

我不知道如何继续。

我想我找到了用于定义访问权限的自定义库 请查看以下代码和我可以从哪里开始的建议:

 class MY_Controller extends CI_Controller {

function __construct() {
    parent::__construct();
    define("DEMO", 0);
    $this->Settings = $this->site->getSettings();
    $this->lang->load('app', $this->Settings->language);
    $this->Settings->pin_code = $this->Settings->pin_code ? md5($this->Settings->pin_code) : NULL;
    $this->theme = $this->Settings->theme.'/views/';
    $this->data['assets'] = base_url() . 'themes/default/assets/';
    $this->data['Settings'] = $this->Settings;

    $this->loggedIn = $this->tec->logged_in();
    $this->data['loggedIn'] = $this->loggedIn;

    $this->data['categories'] = $this->site->getAllCategories();

    $this->Admin = $this->tec->in_group('admin') ? TRUE : NULL;
    $this->data['Admin'] = $this->Admin;

    $this->m = strtolower($this->router->fetch_class());
    $this->v = strtolower($this->router->fetch_method());
    $this->data['m']= $this->m;
    $this->data['v'] = $this->v;

}

function page_construct($page, $data = array(), $meta = array()) {
    if(empty($meta)) { $meta['page_title'] = $data['page_title']; }
    $meta['message'] = isset($data['message']) ? $data['message'] : $this->session->flashdata('message');
    $meta['error'] = isset($data['error']) ? $data['error'] : $this->session->flashdata('error');
    $meta['warning'] = isset($data['warning']) ? $data['warning'] : $this->session->flashdata('warning');
    $meta['ip_address'] = $this->input->ip_address();
    $meta['Admin'] = $data['Admin'];
    $meta['loggedIn'] = $data['loggedIn'];
    $meta['Settings'] = $data['Settings'];
    $meta['assets'] = $data['assets'];
    $meta['suspended_sales'] = $this->site->getUserSuspenedSales();
    $meta['qty_alert_num'] = $this->site->getQtyAlerts();
    $this->load->view($this->theme . 'header', $meta);
    $this->load->view($this->theme . $page, $data);
    $this->load->view($this->theme . 'footer');
}

}

2 个答案:

答案 0 :(得分:1)

检查每个控制器中的Auth。删除它们并放置您现有的身份验证系统。

答案 1 :(得分:0)

Codeigniter没有本机登录系统,因此您购买的脚本已经使用第三方软件包/插件。

在以下位置查找登录脚本代码:模型,库。 控制器是您控制所有内容的地方,因此您可以稍后查看,首先您需要确定哪些文件被用作登录功能的核心。一旦确定,您可以查看代码并了解他们如何处理用户组/ previlages等。

关于组和previlages,要么他们在数据库中的表上存储值为admin,public等,或者值存储在配置文件中,您可以在application \ config目录中找到所有配置文件。使用PHPMYAdmin检查数据库并检查非codeigniter配置文件。