Well, the comments mostly speak for themself, so here goes, my current implementation of the RBAC model:
PHP Code:
<?php
/* Examples on Usage of my RBAC Implementation */
$client = new Client// Lets get a Client object
$client->load('thr'); // Loads client with the rightid thr
if($client->hasRole('admin')){ // Checks if client has role admin
    
echo $client->getId() . ' has role admin'// Get's id (in this case thr) 
    
$adminRole $client->getRole('admin'); // Get's admin role
}
if(
$client->hasPermission('edit','php_forum')){ // Checks if client can perform operation edit on php_forum
    
echo $client->getId() . ' can edit php_forum'// Get's id (in this case thr)
}
print_r($client->getRoles()); // Returns an array of roles assigned to this client
print_r($adminRole->getClients()); // Returns an array of clients assigned to the role
$server = new Server// Lets get a Server object
$newClient $server->createClient('newClient'); // Creates a new client with the unique id "newClient"
$adminRole->assign($newClient); // Assigns admin role to newClient
$moderatorRole $server->createRole('new_moderator'); // Creates a new role, moderator
/* This is three different ways to assign permissions to roles, can't decide */
/* 1 */ 
$moderatorRole->grant('edit','php_forum'); // Role grants permissions to itself
/* 2 */ 
$server->grant($moderatorRole,'edit','php_forum'); // Server grants permissions to roles
/* 3 */ 
$permissionSet $server->getPermission('edit','php_forum'); // Permissions loads.
                
$permissionSet->grant($moderatorRole); // And grants a role rights to use it
$user $server->getRole('normal_user');
/* 1 */ $server->grant($moderatorRole,$user); // Grant's all permissions from normal_user to new_moderator
/* 2 */ 
$moderatorRole->grant($user); // Moderator role grants itself all permissions from normal_user
$server->createOperation('write'); // Creates Write operation
$postObject $server->getObject('post'); // Gets post object
$postObject->assign('write'); // Assigns write operation to post object
$oldModeratorRole $server->getRole('old_moderator'); // Gets old_moderator role
$oldModeratorRole->drop(); // Drops the role and all references to it
$moderatorRole->clearPermissions(); // Clears all permissions assigned to new_moderator
$moderatorRole->clearClients(); // Clears all assignments done to clients
$newClient->drop(); // Drops newClient and all references to it
/* As u can see the client-class is realy light and used when checking permissions/roles mainly
while the server class is the maste class, the controlling class */
?>