Ik was gisteren bezig om mijn eigen ACL te maken in codeigniter en was daarbij van plan om de URI class te gebruiken. Hier de code van ACL (het is bij lange na niet af):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Acl
{
private $_libraries = 'session';
private $_models = 'user_model';
private $_controller;
private $_function;
public function __construct()
{
$CI =& get_instance();
$CI->load->library($this->_libraries);
$CI->load->model($this->_models);
print_r($CI->uri->segment_array());
}
}
?>
Als ik nu bijvoorbeeld 'http://localhost:8888/register/form/' aanroep krijg ik netjes de volgende array:
Array
(
[1] => register
[2] => form
)
Waarbij register de controller is en form een functie van de controller register is. Nu heb ik de volgende structuur in mijn mappen (MVC):
application:
views:
- users.php
- register.php
- login.php
- home.php (index)
- header.php
- footer.php
models:
- users_model.php
- user_model.php
- login_model.php
libraries:
- acl.php
controllers:
- users.php
- register.php
- login.php
- home.php
Hoe kan ik vervolgens het beste een user laden in ACL? Kan ik daar het beste nog voor een user class (met getters en setters) aanmaken in de map libraries (die user_model kan gebruiken om user info te krijgen)? Want waar ik ook naar toe wil werken is dat als er een gebruiker is die niet is ingelogd automatisch als gast gezien word en ik daarvoor dan ook natuurlijk in mijn database een groep voor heb met rechten etc.. ACL zal dan automatisch in elke controller geladen worden en dan kijken of iedereen de juiste rechten heeft om een bepaalde controller/functie te kunnen gebruiken.
Verder nog wat kleine vragen:
Nu worden users.php en users_model.php gebruikt om mijn leden lijst te tonen en kan er daarbij ook op enkele velden gesorteerd worden. Is dat slim om een class users te hebben die dit doet? Of kan ik beter iets maken als UserList/UserList_model?
register.php gebruikt user_model.php om nieuwe leden toe te kunnen voegen. Dit lijkt mij correct?