Runs the installer.
{
$itemTable = $this->_authManager->itemTable;
$itemChildTable = $this->_authManager->itemChildTable;
$assignmentTable = $this->_authManager->assignmentTable;
$rightsTable = $this->_authManager->rightsTable;
$schema = file_get_contents(dirname(__FILE__).'/../data/schema.sql');
$schema = strtr($schema, array(
'AuthItem'=>$itemTable,
'AuthItemChild'=>$itemChildTable,
'AuthAssignment'=>$assignmentTable,
'Rights'=>$rightsTable,
));
$schema = preg_split("/;\s*/", trim($schema, ';'));
$txn = $this->db->beginTransaction();
try
{
foreach( $schema as $sql )
{
$command = $this->db->createCommand($sql);
$command->execute();
}
$roles = $this->getUniqueRoles();
foreach( $roles as $roleName )
{
$sql = "INSERT INTO {$itemTable} (name, type, data)
VALUES (:name, :type, :data)";
$command = $this->db->createCommand($sql);
$command->bindValue(':name', $roleName);
$command->bindValue(':type', CAuthItem::TYPE_ROLE);
$command->bindValue(':data', 'N;');
$command->execute();
}
$sql = "INSERT INTO {$assignmentTable} (itemname, userid, data)
VALUES (:itemname, :userid, :data)";
$command = $this->db->createCommand($sql);
$command->bindValue(':itemname', $this->superuserName);
$command->bindValue(':userid', Yii::app()->getUser()->id);
$command->bindValue(':data', 'N;');
$command->execute();
$txn->commit();
return self::ERROR_NONE;
}
catch( CDbException $e )
{
$txn->rollback();
return self::ERROR_QUERY_FAILED;
}
}