Implementing a User Level Access System

Comparing #4 with #8

Content

[...]
Please note that this article is a simple example and good security should be taken into account when we play with authentication systems.

### Step 1. Setting up
a. **Include a field on your user’s table** named, yep you guessed, level
b. **Create an object ‘LevelLookUp’** that will tell us who is who on this system
(create LevelLookUp.php inside protected/component/)
[...]
{
$username = strtolower($this->username);
// from database... change to suit
e your authentication criteria
// -- Nope, I wont include mine --
$user = User::model()->find('LOWER(username)=?', array($username));
[...]
return false;
}
// saving logged users into a state
 
    protected function afterLogin()
 
    {
 
        $this->setState('___uid', $this->id);
 
        return true;
 
    }
     // Load user model. protected function loadUser() { if ( $this->_model === null ) { $this->_model = User::model()->findByPk( $this->getState('___uid')id );
}
return $this->_model;
[...]
```

You can create more methods, like for example, isMember(), or whatever best suits you, in order to display the appropriate view or specific
, data according to the user level.