yii\rbac\BaseManager::remove PHP Метод

remove() публичный Метод

public remove ( $object )
    public function remove($object)
    {
        if ($object instanceof Item) {
            return $this->removeItem($object);
        } elseif ($object instanceof Rule) {
            return $this->removeRule($object);
        } else {
            throw new InvalidParamException('Removing unsupported object type.');
        }
    }

Usage Example

Пример #1
0
 /**
  * Adding or deleting items if needed
  */
 protected function manageItems()
 {
     foreach ($this->_items as $item) {
         if ($item instanceof Rule) {
             $item_exist = $this->_auth->getRule($item->name);
         } elseif ($item instanceof Role) {
             $item_exist = $this->_auth->getRole($item->name);
         } elseif ($item instanceof Permission) {
             $item_exist = $this->_auth->getPermission($item->name);
         } else {
             throw new InvalidParamException('Adding unsupported object type.');
         }
         if ($item_exist) {
             if ($item_exist instanceof __PHP_Incomplete_Class) {
                 $need_update = true;
             } else {
                 if ($item_exist instanceof Rule) {
                     $item->updatedAt = $item_exist->updatedAt;
                     $need_update = serialize($item_exist) != serialize($item);
                 } else {
                     $need_update = $item_exist->description != $item->description || $item_exist->ruleName != $item->ruleName || $item_exist->data != $item->data;
                 }
             }
             if ($need_update) {
                 Console::stdout("Updating {$item->name} item data.\n");
                 $this->_auth->update($item->name, $item);
             }
         } else {
             Console::stdout("New item added: {$item->name}\n");
             $this->_auth->add($item);
         }
     }
     /** @var Role|Permission|Rule $items */
     $items = ArrayHelper::merge($this->_auth->getRules(), $this->_auth->getRules(), $this->_auth->getPermissions());
     foreach ($items as $existing_item) {
         if (!isset($this->_items[$existing_item->name])) {
             Console::stdout(Console::ansiFormat('Item removed: ' . $existing_item->name . "\n", [Console::FG_RED]));
             $this->_auth->remove($existing_item);
         }
     }
 }