[Risolto] Yii Rights Module Tutorial

Risolto ho rifatto la procedura di installazione e ora va. molto probabile che la prima volta non avevo impostato i parametri userclass e superuserName prima dell’installazione

Mi intrometto anche qui. Ho iniziato a fare anche qualche prova con il modulo rights. Apparentemente sembra che tutto sia a posto, ho modificato anche UserIdentity per effettuare i login da database e non dall’array predefinito, ma all’accesso alla pagina di rights (index.php?r=rights) mi esce sempre il messaggio “There must be at least one superuser!”. Ora mi viene una domanda, quando rights genera le sue tabelle, dovrebbe già riempirle con dei valori oppure le lascia totalmente vuote senza relazionarle alla tabella user?

Non installo un rights da tempo, ma ricordo di essere incappato più e più volte in questo problema. Problema che ho sempre risolto a mano, sempre se la mia memoria non mi inganna. Con il tempo mi sono fatto una procedura di installazione che comprendeva la creazione dello super user =).

[quote=“Giancarlo”]

  1. Avendo abilitato l’installazione automatica delle tabelle necessarie con

     'rights'=>array(
    
    
     	'install'=>true,
    

    )

posso a questo punto testare da web il modulo

e se tutto ha funzionato dovrebbe aver creato e popolato le nuove tabelle AuthAssignment, AuthItem, AuthItemChild

Molto utile la guida ma mi devo essere perso per strada.

Arrivato al punto 6) ottengo l’errore "Alias “rights.RightsModule” is invalid. Make sure it points to an existing PHP file. ".

Sono sotto Windows quindi non dev’essere un problema di permessi come per Fabio Giaffalone e non credo di aver commesso l’errore di Fabio Tai che hanno avuto lo stesso problema.

Allego il file main.php dove immagino risieda l’errore sperando possiate aiutarmi.

<?php

error_reporting(E_ALL | E_STRICT);

return array(

'basePath'=&gt;dirname(__FILE__).DIRECTORY_SEPARATOR.'..',


'name'=&gt;'TEST',


'preload'=&gt;array('log'),


'import'=&gt;array(


	'application.models.*',


	'application.components.*',


	'application.modules.rights.*',


	'application.modules.rights.components.*',


),





'modules'=&gt;array(


	'gii'=&gt;array(


		'class'=&gt;'system.gii.GiiModule',


		'password'=&gt;'password',


	 	// If removed, Gii defaults to localhost only. Edit carefully to taste.


		'ipFilters'=&gt;array('127.0.0.1','::1'),


	),


	'rights'=&gt;array(


		'install'=&gt;true, // Abilita l'installer.





		'userIdColumn'=&gt;'id', // Il nome della colonna user id nel database.


		'userNameColumn'=&gt;'username', // Il nome della colonna name nel database.


	),


),


'components'=&gt;array(


	'user'=&gt;array(


		'class' =&gt; 'RWebUser',


		// enable cookie-based authentication


		'allowAutoLogin'=&gt;true,


	),


	'authManager'=&gt;array(


		'class'=&gt;'RDbAuthManager',


	),





	'db'=&gt;array(


		'connectionString' =&gt; 'pgsql:host=localhost;dbname=postgres',


		//'emulatePrepare' =&gt; true,


		'username' =&gt; 'postgres',


		'password' =&gt; 'password',


		'charset' =&gt; 'utf8',


	),


	'errorHandler'=&gt;array(


		// use 'site/error' action to display errors


        'errorAction'=&gt;'site/error',


    ),


	'log'=&gt;array(


		'class'=&gt;'CLogRouter',


		'routes'=&gt;array(


			array(


				'class'=&gt;'CFileLogRoute',


				'levels'=&gt;'error, warning',


			),


		),


	),


),





'params'=&gt;array(


	'adminEmail'=&gt;'webmaster@example.com',


),





'language'=&gt;'it',


'sourceLanguage'=&gt;'it_IT',

);

?>

Potresti formattere il testo del tuo messaggio?

Risolto.

Mi imbarazza ma il problema era semplicemente che dopo qualche prova, ripartendo da zero per fare le cose per benino, non avevo copiato Rights nella cartella modules.

Imparo quindi che il messaggio significa "il file del modulo non è raggiungibile" per qualche ragione (percorso errato, permessi, ecc.).

Per l’indentazione, ho fatto copia/incolla da netbeans. Uso i tab per indentare: penso sia quella la causa. Starò più attento la prossima volta.

Grazie

Gabriele

Controlla bene la barra degli strumenti. Puoi formattare il codice inserendolo all’interno di un markup speciale “code”. Clicca sul simbolo “<>”.

Ciao!!!

io ho avuto lo stesso problema e nel mio caso avevo dimenticato di specificare ‘class’ come di seguito

‘components’=>array(

[indent]‘user’=>array( [/indent]

[indent]// enable cookie-based authentication[/indent]

[indent]‘allowAutoLogin’=>true,[/indent]

[indent]‘loginUrl’ => array(’/user/login’),[/indent]

             [indent]      'class'=&gt;'RWebUser',[/indent]


	),

spero di essere stato utile ;)

Ciao,

scusate sono nuovo in Yii, ho installato sia il modulo user che right e penso che funzionino bene.

Il mio problema è un’altro, come faccio ad inibire l’accesso o comunque una chiamata ad un controller?

nel senso io ho 3 tre tipi di utenti:

superutente o admin

scrittore

lettore

lo scrittore deve utilizzare un determinato controller (es controller 1)

ed il lettore deve utilizzare un atro determinato controller (es. controller 2)

come faccio?

grazie anticipatamente…

http://www.yiiframework.com/forum/index.php/topic/27033-risolto-yii-rights-module-tutorial/page__p__135878#entry135878

Grazie Giancarlo!

La tua guida mi ha risparmiato qualche ora di rottura di pa…

E pensa che avevo già installato rights nel 2011…: la documentazione originale è

veramente scarsa, penso che la tua guida servirà ancora.

A questo proposito, secondo me dove dici:

posso a questo punto testare da web il modulo

…/index.php/rights/

dovrebbe essere: .../index.php?r=rights

grazie ancora

Leo (Alichin)