I have an event(s) controller:class Event extends CI_Controller{   public function index(){   }   public function foo(){   }   //Shouldn't be able to use this method unless logged in   public function bar(){   }}And I'm trying to organise my code so it's fairly tidy and straightforward. Just now I have a  controller named MY_Controller so that only authenticated users can access the methods(edit_event(),add_event()) of any controllers extending it. However, some of the methods in my controller need to be accessed by unauthenticated users (such as get_event()). What is a good way of handling this? Should I make two completely separate controllers or extend from the basic event controller and add authenticated methods?Previously I've had a manager controller that handled all methods which required authentication such as add_user,delete_user,add_doc,delete_doc. But it became blotted very quickly and wasn't easy to update or modify the controller (plus it was messy and didn't seem to follow good programming etiquette).
What is a good technique to prevent unauthenticated users from accessing controller methods?
php;object oriented;mvc;codeigniter