2015-10-15 2 views
0

Мне действительно нужна помощь в внесении изменений в сценарий, который я приобрел, который был разработан с использованием codeigniter (система, для которой я совершенно новичок). Проект рассчитан на наличие только двух пользовательских ролей с фиксированным разрешением (admin, others (is_logged_in)). После нескольких часов обучения, как работает MVC, я смог изменить столь незначительные, но незначительные вещи в проекте.Как изменить существующую систему входа в систему с помощью системы идентификации, используя стороннюю систему аутентификации

Моя большая проблема заключается в следующем:
Я хочу использовать сценарий, чтобы завершить приложение веб-POS, которые я работал в основном в родном PHP, проект использует ионную-авторизации для систем авторизации и аутентификации, пожалуйста, я хотите использовать другие сторонние системы acl, такие как flexiauth, oauth, Aauth и т. д., но у меня недостаточно знаний, чтобы знать, какие файлы я буду заменять, и какие контроллеры мне понадобится внести в ... Я полностью застрял .... пожалуйста, помогите мне

Что мне нужно достаточно просто:

Я хочу иметь несколько групп и пользователей, имеющих доступ к различным ресурсам в мы b приложение, например, кассир (должен иметь доступ к pos, клиенту, отчет daily_sales, закрыть регистр, распечатать счет-фактуру) И (у учетной записи должен быть доступ к панели, отчетам, заказу и т. д.), менеджер должен иметь возможность создавать нового пользователя, просматривать продажи , продажи void и т. д. И администратор должен, конечно, иметь общий доступ.

У меня теперь есть 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

Ионная библиотека auton создана таким образом, что вы можете создать столько групп, сколько вам нужно. Но если вам нужно использовать любую другую библиотеку аутентификации, вы должны удалить любой код, связанный с Ion auth, и реализовать другую необходимую библиотеку после документации. – Tpojka

ответ

0

Codeigniter не имеет собственной системы входа в систему, поэтому приобретенный вами скрипт уже использует сторонний пакет/плагин.

Ищите код сценария входа в систему в следующих местах: Модели, библиотеки. Контроллер - это то, где вы контролируете все, поэтому вы можете взглянуть на это позже, сначала вам нужно определить, какие файлы используются в качестве ядра функций входа. После того, как вы определились, вы можете посмотреть код и понять, как они обрабатывают группы пользователей/превалирования и т. Д.

О группах и превалированиях либо они имеют свою таблицу в базе данных, где значения хранятся для администратора, общедоступные etc или значения хранятся в файле конфигурации, вы можете найти все файлы конфигурации в каталоге приложения \ config. Используйте PHPMYAdmin для проверки базы данных и проверки файлов конфигурационных файлов без кода.

+0

Спасибо за информацию –

+0

Пожалуйста, проверьте код, который я обновил в коде, возможно, вы могли бы посоветовать мне, как вы думаете, t .... Проблема в том, что я не могу найти данные класса $ data [admin] и $ data [logged_in] в 'tec' 'site' в соответствии с кодом ..... помогите мне далее –

1

Проверьте Auth в каждом контроллере. Удалите их и поместите свою выходную систему auth.

+0

Как мне определить разрешения и обращения к различным областям веб-приложения ..... я должен сделать это в каждом контроллере ....... Только два варианта: доступный, проверьте, находится ли пользователь в группе администратора ----> загрузите полный сайт, проверьте, зарегистрирован ли пользователь logged_in -----> загружать сайт, ограничивают область ... Самое забавное, что я даже не знать, где/сколько мест это проверка .... –