Problemas na instalação do Modulo SRBAC

Boa tarde,

Estou tentando instalar o módulo do srbac, só que está me retornando um erro da stack trace

erro:




call_user_func(Helper::markWords) [<a href='function.call-user-func'>function.call-user-func</a>]: Unable to call Helper::markWords(Object) 



Local do erro:




/home/armando.filho/public_html/framework/base/CComponent.php(561)


549      * @param string $name the event name

550      * @param CEvent $event the event parameter

551      * @throws CException if the event is undefined or an event handler is invalid.

552      */

553     public function raiseEvent($name,$event)

554     {

555         $name=strtolower($name);

556         if(isset($this->_e[$name]))

557         {

558             foreach($this->_e[$name] as $handler)

559             {

560                 if(is_string($handler))

561                     call_user_func($handler,$event); /* Exatamento aqui, quando o Yii chama essa função passando como parametro (call_user_func("Helper::markWords", "Object") )*/

562                 else if(is_callable($handler,true))

563                 {

564                     if(is_array($handler))

565                     {

566                         // an array: 0 - object, 1 - method name

567                         list($object,$method)=$handler;

568                         if(is_string($object))    // static method call

569                             call_user_func($handler,$event);

570                         else if(method_exists($object,$method))

571                             $object->$method($event);

572                         else

573                             throw new CException(Yii::t('yii','Event "{class}.{event}" is attached with an invalid handler "{handler}".',



Alguém já passou por isso, eu já tentei comentar a chamada dessa função (call_user_func()) e por incrível que pareça funcionou, apareceu a tela de instalação do srbac, mas não quero ter que fazer essa alteração…

a configuração do modules e do componentes é essa:

modules:


		// Configurações do Módulo SRBAC

		'srbac' => array(

			'userclass'=>'User', //default: User

			'userid'=>'id', //default: userid

			'username'=>'username', //default:username

			//'delimeter'=>'@', //default:-

			'debug'=>true, //default :false

			'pageSize'=>10, // default : 15

			'superUser' =>'Authority', //default: Authorizer

			'css'=>'srbac.css', //default: srbac.css

			'layout'=>'application.views.layouts.main', //default: application.views.layouts.main,

			//must be an existing alias

			'notAuthorizedView'=> 'srbac.views.authitem.unauthorized', // default:

			//srbac.views.authitem.unauthorized, must be an existing alias

			'alwaysAllowed'=>array('SiteLogin','SiteLogout','SiteIndex','SiteAdmin','SiteError', 'SiteContact'),

			'userActions'=>array('Show','View','List'), //default: array()

			'listBoxNumberOfLines' => 15, //default : 10

			'imagesPath' => 'srbac.images', // default: srbac.images

			'imagesPack'=>'noia', //default: noia

			'iconText'=>true, // default : false

			'header'=>'srbac.views.authitem.header', //default : srbac.views.authitem.header,

			'footer'=>'srbac.views.authitem.footer', //default: srbac.views.authitem.footer,

			'showHeader'=>true, // default: false

			'showFooter'=>true, // default: false

			'alwaysAllowedPath'=>'srbac.components', // default: srbac.components

		),



configuração do components:




igurações do Módulo SRBAC

		// auth manager

		'authManager'=>array(

		// Path to SDbAuthManager in srbac module if you want to use case insensitive

		//access checking (or CDbAuthManager for case sensitive access checking)

		'class'=>'application.modules.srbac.components.SDbAuthManager',

		'connectionID'=>'db',

		'itemTable'=>'role',

		'assignmentTable'=>'User',

		'itemChildTable'=>'itemchildren',

		),



Valeu galera…

Nos imports vc importou o SBaseController?

Se não, tente adicionar nos imports a seguinte linha:


'application.modules.srbac.controllers.SBaseController',

Nas configurações do authManager vc configurou




'itemTable'=>'role',

'assignmentTable'=>'User',

'itemChildTable'=>'itemchildren',

as suas tabelas realmente possuem estes nomes (role, User e itemchildren)?

não sei se vc sabe, mas ai vc deve colocar os nomes das tabelas que são responsáveis por armazenar as permissões, e geralmente, os nomes padrões utilizados pelo yii para manipular estas tabelas são: AuthItem, AuthAssignment e AuthItemChild

ai no caso na configuração do SRBAC do AuthManager ficaria:


'itemTable'=>'authitem',

'assignmentTable'=>'authassignment',

'itemChildTable'=>'authitemchild',

Luiz Reginaldo, obrigado pela resposta mas acho que vou configurar as permissões pelos accessRules() mesmo… porque até aonde eu sei essa extensão me ajudaria caso algum administrador fosse alterar as permissões dos usuários certo ? no meu caso existem só 3 tipos de usuários e bem definidos.

Você que já conhece o SRBAC sabe as suas funcionalidades, por mais que as permissões dos meus usuários não serão alteradas esté Módulo ainda é muito útil para mim ou o accessRules() já me é auto-suficiente ?

abraços !