Ограничить пользователя от несанкционированного доступа

В настоящее время я разрабатываю приложение в рамках Codeigniter . Мой проект состоит из разных уровней пользователей, которые имеют разные операции.

Я создал Default_model который обрабатывает все взаимодействия с базой данных. Все контроллеры взаимодействуют с этой единственной моделью.

У каждого пользователя есть обозначение, выбранное пользователем во время регистрации (он получает доступ к профилю после получения одобрения профиля только администратором).

Моя реализация:

Пусть пользователь1 зарегистрирован с обозначением Level1 и он может получить доступ к операции с именем operation1

То, что я делаю в настоящее время, записывает функцию в контроллере, а пользователь1 user1 доступ к операции по www.example.com/page/operation1 . Здесь, в функции, я проверяю назначение пользователя ( ==="level1" ), если у него есть авторизация для доступа к функции, которую я получил из базы данных (Загрузка необходимых данных в конструктор контроллера включает указание, userid установлен в сеансе ). Если обозначение (если не level1 ) неверно, отображается 404 .

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

Обновить

Контроллер: page.php

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Page extends CI_Controller { public $id; public function __construct() { parent::__construct(); //load libraries and model(Default_model) here $this->id = $this->getData(); //loading data from DB, returns FALSE if session empty if ($this->id) { //has data } else { $data = array( 'error' => 'Login to continue. <a href="' . base_url() . '">CLICK HERE</a>' ); $this->load->view('error_view', $data); } } public function operation1() { if($this->id->designation === 1) { //call model method because he is LEVEL 1 user } } } 

Solutions Collecting From Web of "Ограничить пользователя от несанкционированного доступа"