Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6986133
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T18:46:11+00:00 2026-05-27T18:46:11+00:00

I am learning Yii and am trying to develop RBAC now the issue is

  • 0

I am learning Yii and am trying to develop RBAC now the issue is that I have created roles and so on executed that script via shell I have database tables in place and that Roles and everything gets populated. now I donot know why but

if(Yii::app()->user->checkAccess('admin'))
        echo 'Admin';
else
    echo 'No Admin';

always return No admin .What I am trying to do is display a different menu based on user type i.e it is admin or reader or manager and so on. but this fails.

I am attaching my role assignment also here

<?php
class RbacCommand extends CConsoleCommand
{
    private $_authManager;

   public function getHelp()
    {return <<<EOD
       USAGE
           rbac
           DESCRIPTION
           This command generates an initial RBAC authorization hierarchy.
EOD;
    }

    /**
     * Execute the action.
     * @param array command line parameters specific for this command
     */
    public function run($args)
    {
        echo "SHELLLLLLLLLL.\n";
        //ensure that an authManager is defined as this is mandatory for creating an auth heirarchy
        if(($this->_authManager=Yii::app()->authManager)===null)
        {
            echo "Error: an authorization manager, named 'authManager' 
must be configured to use this command.\n";
            echo "If you already added 'authManager' component in 
application configuration,\n";
            echo "please quit and re-enter the yiic shell.\n";
            return;
        }         
//provide the oportunity for the use to abort the request
        echo "This command will create three roles: Admin, Manager, and Reader and the following premissions:\n";
        echo "create, read, update and delete Hotels\n";
        echo "create, read, update and delete Items\n";
        echo "create, read, update and delete Users\n";
        echo "create, read, update and delete Category\n";
        echo "Would you like to continue? [Yes|No] ";

//check the input from the user and continue if they indicated yes to the above question
        if(!strncasecmp(trim(fgets(STDIN)),'y',1)) 
        {
            //first we need to remove all operations, roles, child relationship and assignments
             $this->_authManager->clearAll();
            //create the lowest level operations for users
             $this->_authManager->createOperation("createUser","create a new user"); 
             $this->_authManager->createOperation("readUser","read user profile information"); 
             $this->_authManager->createOperation("updateUser","update a users information"); 
             $this->_authManager->createOperation("deleteUser","remove a user from a Hotel"); 
             ////create the lowest level operations for projects
             $this->_authManager->createOperation("createHotel","create a new Hotel"); 
             $this->_authManager->createOperation("readHotel","read Hotel information"); 
              $this->_authManager->createOperation("updateHotel","update Hotel information"); 
             $this->_authManager->createOperation("deleteHotel","delete a Hotel"); 
            ////create the lowest level operations for Category
             $this->_authManager->createOperation("createCategory","create a new Item"); 
             $this->_authManager->createOperation("readCategory","read Item information"); 
             $this->_authManager->createOperation("updateCategory","update Item information"); 
             $this->_authManager->createOperation("deleteCategory","delete an Item from a Hotel");      
            ////create the lowest level operations for issues
             $this->_authManager->createOperation("createItem","create a new Item"); 
             $this->_authManager->createOperation("readItem","read Item information"); 
             $this->_authManager->createOperation("updateItem","update Item information"); 
             $this->_authManager->createOperation("deleteItem","delete an Item from a Category");     
             ////create the reader role and add the appropriate permissions as children to this role
             $role=$this->_authManager->createRole("reader"); 
             $role->addChild("readUser");
             $role->addChild("readHotel"); 
             $role->addChild("readCategory");
             $role->addChild("readItem");
             $role->addChild("createUser"); 

             ////create the member role, and add the appropriate permissions, as well as the reader role itself, as children
             $role=$this->_authManager->createRole("manager"); 
             $role->addChild("readUser");
             $role->addChild("readHotel"); 
             $role->addChild("readCategory");
             $role->addChild("readItem");

             $role->addChild("createHotel"); 
             $role->addChild("createCategory"); 
             $role->addChild("createItem"); 

             $role->addChild("updateHotel"); 
             $role->addChild("updateCategory"); 
             $role->addChild("updateItem");

             $role->addChild("deleteHotel"); 
             $role->addChild("deleteCategory"); 
             $role->addChild("deleteItem");
             ////create the owner role, and add the appropriate permissions, as well as both the reader and member roles as children
             $role=$this->_authManager->createRole("admin"); 
             $role->addChild("reader"); 
             $role->addChild("manager");    
             $role->addChild("createUser"); 
             $role->addChild("updateUser"); 
             $role->addChild("deleteUser");


            echo 'Making Afnan admin';
            $this->_authManager->assign('admin','3');
            echo 'Making Riaz Manager';            
            $this->_authManager->assign('manager','2');
            echo 'Sucess';
             //provide a message indicating success
             echo "Authorization hierarchy successfully generated.";
        } 
    }
}
?>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T18:46:12+00:00Added an answer on May 27, 2026 at 6:46 pm

    Because check access method checks based on user Id and if you donot have getId() function in your user identity then it will just return name in place of id and that will be cause of ever sending false

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

For learning purposes, I'm trying to make a function using Python that takes in
i'm currently learning the yii framework and have read their documentation. but i still
Learning Objective-C and reading sample code, I notice that objects are usually created using
I'm learning Yii and got into url routing problem. I have a controller as
Sorry still learning Yii so newbie question. I have a site im converting over
Learning a lot in my few years of programming that the best projects are
I am just starting learning to use yii , and already managed to do
Learning jquery, so please be kind :) Using PHP, I have a table with
Learning CasperJS Trying to understand why the following is not displaying my results in
Learning how to do a master page in asp.net. Trying to figure out how

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.