Installing Yii-rights extensionLast updated:
These are the steps I've followed in order to install
yii-rights extension for my project.
There are a little extra steps I've done which do not feature in the official docs so they might work for you too.
Stuff I've not included in this tutorial: database setting, gii usage. If you're not confident about these, you shouldn't be reading this tutorial at all. Go do the blog tutorial.
This tutorial assumes you're installing
rights into a clean (newly created) Yii project.
Download the extension here (official Yii download link).
Extract the .zip file.
rights directory into your app's
modules directory. (If your project has no
modules directory, create it):
your_project | |----protected |----models |----modules |----rights
Now you need to add the following lines to you
main.php configuration file (under
Only the lines I've marked with
//add this are supposed to be added. The other lines are included so that you know where it is.
'import' => array( 'application.models.*', 'application.components.*', 'application.modules.rights.*',//add this 'application.modules.rights.components.*',//add this ),
'modules' => array( // uncomment the following to enable the Gii tool 'gii' => array( 'class' => 'system.gii.GiiModule', 'password' => 'Enter your password', // If removed, Gii defaults to localhost only. Edit carefully 'ipFilters' => array('127.0.0.1', '::1'), ), 'rights' => array(//add this 'install' => true,//add this ),//add this ),
'user' => array( 'class' => 'RWebUser', //add this // enable cookie-based authentication 'allowAutoLogin' => true, ),
'authManager' => array(//add this 'class' => 'RDbAuthManager',//add this ),//add this
Now navigate to
rights index page: The route should be
rights/index. You might be asked to login.
admin/admin should suffice.
Now you might see a
CDbException on your screen. Ok no problem. Just re-type the route on the address bar.
CDbException should go away, but perhaps you'll get another message saying that Yii found no
Ok so you create a table called
user (with columns
username at the very least), and generate the corresponding model using
One you've created the
User model, change the
'install'=>true line to
Ok good now point your browser to
rights again. Now you might see yet another error message, saying: Error 403 There must be at least one superuser!.
Ok here comes a little ugliness. Brace yourselves!
I don't know why. I just know that it works - this phrase might have come before some of the hackiest hacks in the world.
Open up the file
/modules/rights/components and comment out lines
//if( $superusers===array() ) // throw new CHttpException(403, Rights::t('core', 'There must be at least one superuser!'));
It looks very ugly but this hack is even listed at the official docs comment pages... If anyone know a better way to do this (any other way would be better than this)... drop me a line....