예제 #1
0
 /**
  * @inheritdoc
  */
 public function up()
 {
     $allPermissions = [];
     foreach ($this->permissions as $role => $permissions) {
         if (!$permissions) {
             continue;
         }
         $allPermissions = array_merge($allPermissions, (new Query())->from($this->autItemTable)->select('name')->where(['type' => Role::TYPE_PERMISSION, 'name' => $permissions])->column());
         if ($newPermissions = array_diff($permissions, $allPermissions)) {
             $this->batchInsert($this->autItemTable, ['name', 'type'], MigrationHelper::toBatchData($newPermissions, [Role::TYPE_PERMISSION]));
         }
         $allPermissions = array_merge($allPermissions, $newPermissions);
         $this->batchInsert($this->authItemChildTable, ['child', 'parent'], MigrationHelper::toBatchData($permissions, [$role]));
     }
 }