Лучший способ сделать страницы Admin в CodeIgniter?

Вот поток форума , который предоставляет изображение C#, изменяющее размеры примера кода. Вы могли использовать один из библиотека GD редакторы связей, чтобы сделать передискретизацию в C#.

8
задан tereško 9 February 2013 в 01:03
поделиться

6 ответов

Я повторю Джастина, чтобы он оставался частью отдельных контроллеров.

Вы должны настроить какую-то систему авторизации, которую могут использовать отдельные контроллеры, чтобы определить, кто вошел в систему (имя пользователя) и какой у них доступ (admin / member / etc). Вот поток SO по классам аутентификации CodeIgniter .

Затем в представлении будут условно отображаться соответствующие ссылки, и контроллер будет применять политику, проверяя аутентификацию перед передачей каких-либо данных в модель или рендерингом редактирования Посмотреть. При неавторизованном доступе ошибка может быть отображена или просто отображена в представлении без редактирования.

Этот подход кажется наиболее разумным (по крайней мере, для меня), поскольку все функциональные возможности хранятся в отдельном контроллере. Сохранение функций администратора в одном контроллере администратора означает, что вы: Мне придется управлять двумя контроллерами (администратором и фактическим контроллером) каждый раз, когда вы добавляете что-то новое (или удаляете что-то).

Если вас беспокоит включение проверки аутентификации в каждый контроллер, вы можете создать общий класс контроллера со всеми настройками аутентификации, а затем попросить ваши контроллеры расширить его. В конце концов, проверка авторизации отдельного контроллера может быть такой же простой, как:

function edit()
{
    if(!$this->auth()){
        //display auth error, or forward to view page
    }
}

Конечно, какая-то реализация ACL могла бы сделать это лучше, но я не верю, что CodeIgniter имеет «официальный» ACL.

2
ответ дан 5 December 2019 в 11:25
поделиться

Идея 2 лучше. system / application / controllers / admin

Здесь вы храните все свои административные контроллеры.

2
ответ дан 5 December 2019 в 11:25
поделиться

Похоже, личный выбор, я Мне нравится, когда все централизовано, поэтому я могу сделать ставку на контроллер администратора.

Таким образом, мне не пришлось бы открывать 5 разных контроллеров при изменении задач администратора.

0
ответ дан 5 December 2019 в 11:25
поделиться

Рекомендуется иметь папку администратора в папке контроллеров, к которой вы можете получить доступ ваше администрирование, например yoursite.com/admin/users.

Все ваши административные потребности будут там, и все методы будут защищены путем проверки прав пользователя следующим образом:

if ( ! $this->auth->logged_in(array('login', 'admin')))
{
    $this->session->set_flashdata('message', 'You do not have access to view this page');

    redirect('admin/users/login');
}

Тогда все контроллеры вне папки 'admin' будут - в зависимости от ваш тип сайта - будет только для просмотра и т.д .. без административных частей.

2
ответ дан 5 December 2019 в 11:25
поделиться

Определенно другой контроллер по крайней мере!

Раньше я думал, что могу сохранить все свои административные функции в одном контроллере, но по мере роста моих программ я понял, что требовалось несколько контроллеров в моем разделе администрирования.

Итак, я создал папку внутри моей папки контроллеров с именем «admin» и поместил туда все мои административные контроллеры. Мои папки будут выглядеть примерно так:

  • application
    • контроллеры
      • front.php
      • welcome.php
      • admin
        • dashboard.php
        • useradmin.php
  • и т.д ...

Однако одна проблема возникает, когда вы вводите http://mysite.com/admin в свой браузер, он возвращает страницу 404. Итак, перейдите в свой файл «application / config / routes.php» и добавьте собственный маршрут:

$routes['admin'] = 'admin/dashboard/index';
6
ответ дан 5 December 2019 в 11:25
поделиться

В зависимости от того, что вы подразумеваете под функциональностью «Администратор» ... обычно это вид «Редактировать».

И обычно вы используете существующий контроллер для обслуживания Режим редактирования, позволяющий авторизованным пользователям вносить изменения (в вашем случае только пользователи с правами администратора).

1
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: