Cannot Get Yii Auth To Work

Hi All,

I have been on this since yesterday night and it is driving me crazy…

I have installed the latest version of Yii, Boostrap 2.0 And would like to use Yii Auth.

Unfortunately, I cannot see any user interface when it is installed.

Could you please let me know what I am doing wrong?

Thank you,

Here is the code.





<?php


// uncomment the following to define a path alias

// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap'); 

return array(

    'theme' => 'bootstrap',

    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',

    'name' => 'My Web Application',

    // preloading 'log' component

    'preload' => array('log'),

    // autoloading model and component classes

    'import' => array(

        'application.models.*',

        'application.components.*',

    ),

    'modules' => array(

        'auth',

        'gii' => array(

            'generatorPaths' => array(

                'bootstrap.gii',

            ),

        ),

        // uncomment the following to enable the Gii tool

        'gii' => array(

            'class' => 'system.gii.GiiModule',

            'password' => '12345',

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

            'ipFilters' => array('127.0.0.1', '::1'),

        ),

    ),

    // application components

    'components' => array(

        'authManager' => array(

        'behaviors' => array(

        'auth' => array(

          'class' => 'auth.components.AuthBehavior',

        ),

      ),

       ),

        'bootstrap' => array(

            'class' => 'bootstrap.components.Bootstrap',

        ),

 'user' => array(

      'class' => 'auth.components.AuthWebUser',

      'admins' => array('admin', 'foo', 'bar'), // users with full access

        ),

        // uncomment the following to enable URLs in path-format

        /*

          'urlManager'=>array(

          'urlFormat'=>'path',

          'rules'=>array(

          '<controller:\w+>/<id:\d+>'=>'<controller>/view',

          '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

          '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

          ),

          ),

         */

        'db' => array(

            'connectionString' => 'sqlite:' . dirname(__FILE__) . '/../data/testdrive.db',

        ),

        // uncomment the following to use a MySQL database

        /*

          'db'=>array(

          'connectionString' => 'mysql:host=localhost;dbname=testdrive',

          'emulatePrepare' => true,

          'username' => 'root',

          'password' => '',

          'charset' => 'utf8',

          ),

         */

        'errorHandler' => array(

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

            'errorAction' => 'site/error',

        ),

        'log' => array(

            'class' => 'CLogRouter',

            'routes' => array(

                array(

                    'class' => 'CFileLogRoute',

                    'levels' => 'error, warning',

                ),

            // uncomment the following to show log messages on web pages

            /*

              array(

              'class'=>'CWebLogRoute',

              ),

             */

            ),

        ),

    ),

    // application-level parameters that can be accessed

    // using Yii::app()->params['paramName']

    'params' => array(

        // this is used in contact page

        'adminEmail' => 'webmaster@example.com',

    ),

);




All I see if my admin panel with the bootstrap loaded, it seems just normal but absolutely no User interface like in the demo of Yii Auth.

Please help,

Thank you,

Ben

No one able to help on this please???

I tried the live chat and no one is also replying…I am totally stuck

Thank you,

Ben

Well, the auth extension (I assume you a referring to this one) won’t magically appear in your admin panel. Can you navigate to the auth module?

Hi and thank you for the reply.

I type this in the browser:

http://localhost/project1/index.php/auth

And I get this error:




include(User.php): failed to open stream: No such file or directory


C:\xampp\htdocs\project1\framework\YiiBase.php(427)


415                         {

416                             include($classFile);

417                             if(YII_DEBUG && basename(realpath($classFile))!==$className.'.php')

418                                 throw new CException(Yii::t('yii','Class name "{class}" does not match class file "{file}".', array(

419                                     '{class}'=>$className,

420                                     '{file}'=>$classFile,

421                                 )));

422                             break;

423                         }

424                     }

425                 }

426                 else

427                     include($className.'.php');

428             }

429             else  // class name with namespace in PHP 5.3

430             {

431                 $namespace=str_replace('\\','.',ltrim($className,'\\'));

432                 if(($path=self::getPathOfAlias($namespace))!==false)

433                     include($path.'.php');

434                 else

435                     return false;

436             }

437             return class_exists($className,false) || interface_exists($className,false);

438         }

439         return true;






Any idea why please?

I created a table called user with:

id

name

surname

password

But I still get this error. I really do not know what I am doing wrong.

Thank you,

Ben

You need to create the User model.

Inside the modules array, you should define some information, this way:


'auth' => array(

  'strictMode' => true, // when enabled authorization items cannot be assigned children of the same type.

  'userClass' => 'User', // the name of the user model class.

  'userIdColumn' => 'id', // the name of the user id column.

  'userNameColumn' => 'name', // the name of the user name column.

  'defaultLayout' => 'application.views.layouts.main', // the layout used by the module.

  'viewDir' => null, // the path to view files to use with this module.

),

The "userClass" should receive the your users class name.

The repository on GitHub have some important information for setup the extension.

https://github.com/Crisu83/yii-auth

Hope it helps.

Regards

Hi,

Someone in another forum told me there was a bug in the version 1.7.0 and said we should use the 1.6.0 .

When I go to:

http://localhost/project1/index.php/auth

I keep getting this error:




include(User.php): failed to open stream: No such file or directory


C:\xampp\htdocs\project1\framework\YiiBase.php(427)


415                         {

416                             include($classFile);

417                             if(YII_DEBUG && basename(realpath($classFile))!==$className.'.php')

418                                 throw new CException(Yii::t('yii','Class name "{class}" does not match class file "{file}".', array(

419                                     '{class}'=>$className,

420                                     '{file}'=>$classFile,

421                                 )));

422                             break;

423                         }

424                     }

425                 }

426                 else

427                     include($className.'.php');

428             }

429             else  // class name with namespace in PHP 5.3

430             {

431                 $namespace=str_replace('\\','.',ltrim($className,'\\'));

432                 if(($path=self::getPathOfAlias($namespace))!==false)

433                     include($path.'.php');

434                 else

435                     return false;

436             }

437             return class_exists($className,false) || interface_exists($className,false);

438         }

439         return true;




I think I will have to do what the other person say and install the 1.6.0

Thanks,

Regards,

Ben

That won’t do unless you’ve created a User model as Dyego suggested.

Hello,

Yes I have a user model as I have installed Users and Auth instead of Users and Rights as suggested by many.

The model has been generated with it’s CRUD, even with this, I am still getting errors.

Thank you,

Ben