2015-10-15 101 views
0

我真的需要帮助修改我购买的脚本,这是使用codeigniter(一个我完全陌生的系统)设计的脚本。该项目设计为只有两个具有固定权限的用户角色(admin,others(is_logged_in))。经过几个小时的学习MVC的工作后,我已经能够在项目中改变这么一点微不足道的东西。如何使用第三方认证系统更改codeigniter现有登录系统

我最大的问题是这样的:
我想使用脚本来完成,我一直在努力基本上都在本地的PHP网络POS应用程序,该项目采用离子身份验证的登录系统和身份验证,请我想要使用另一个第三方acl系统,如flexiauth,oauth,Aauth等,但我没有足够的知识来知道将要替换的文件以及我需要修改哪些控制器.....我完全卡住了....请帮我

我需要的是足够简单:

我想有多个组和用户可以访问不同的资源在我们b应用程序,例如收银员(应该有权访问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'); 
} 

} 
+0

你发现了用户和组的存储位置/方式吗?我会从那里开始。 –

+0

是的。用户和组存储在db .....组中。我可以添加新用户,但我只能将用户分配到两个组中的任一管理员或工作人员 –

+0

Ion Auth库以这种方式创建,您可以根据需要创建多个组。但是,如果您需要使用任何其他身份验证库,则应删除与Ion身份验证相关的任何代码,并执行其他需要的库以下文档。 – Tpojka

回答

0

Codeigniter不附带本地登录系统,因此您购买的脚本已使用第三方软件包/插件。

请在以下位置查找登录脚本代码:型号,库。 控制器是您控制一切的地方,所以您可以稍后再看看,首先需要确定哪些文件正在用作登录功能的核心。一旦你确定,你可以看看代码,并了解他们如何处理用户组/预防等。

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

+0

感谢您的信息 –

+0

请检查我在代码中更新的代码,也许你可以告诉我你如何认为我可以明星吨....我有的问题是根据代码找不到类$ data [admin]和$ data [logged_in]在'tec''网站'.....帮助我进一步请 –

1

检查验证每个控制器。删除它们并将您正在退出的身份验证系统。

+0

然后,我如何定义权限和访问的Web应用程序的不同领域.....我必须在每个控制器.......只有两个选项可用,检查用户是否在管理组---->加载完整站点,检查用户是否登录了----->加载站点限制了一些区域......有趣的是,我甚至没有知道这是检查的地方/多少地方.... –