2015-10-15 43 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應用程序的不同領域.....我必須在每個控制器.......只有兩個選項可用,檢查用戶是否在管理組---->加載完整站點,檢查用戶是否登錄了----->加載站點限制了一些區域......有趣的是,我甚至沒有知道這是檢查的地方/多少地方.... –