/**
  * Действие строит дерево задач и ролей в Администрирование\Права доступа\Роли системы
  */
 public function actionLoadRolesTasksJSON()
 {
     /* Инициализация/исключения */
     $result = [];
     $type = (string) filter_input(INPUT_GET, 'type');
     $id = (string) filter_input(INPUT_GET, 'id');
     $itemname = (string) filter_input(INPUT_GET, 'itemname');
     if ($type === '') {
         throw new CHttpException(500, 'Отсутствует $_POST["type"] при вызове действия actionLoadRolesTasksJSON()');
     }
     if ($type === 'roles' && $id === '') {
         throw new CHttpException(500, 'Отсутствует $_POST["id"] при вызове действия actionLoadRolesTasksJSON()');
     }
     if ($type === 'roles' && $id !== '#' && $itemname === '') {
         throw new CHttpException(500, 'Отсутствует $_POST["itemname"] при вызове действия actionLoadRolesTasksJSON()');
     }
     /* Если выводим задачи в окне "Роли системы" */
     if ($type === 'tasks') {
         /* Массив задач name, description */
         foreach (AuthItem::model()->findAll(AuthItem::model()->AuthItemTasks()) as $row) {
             $result[] = (object) ['id' => $row['name'], 'text' => $row['description'], 'icon' => './images/task.png', 'li_attr' => (object) ['class' => 'taskitemnode', 'itemname' => $row['name']]];
         }
         /* Если выводим роли в окне "Роли системы" */
     } elseif ($type === 'roles') {
         /* Если выводим список ролей (т.е. роли не имеющие родителей) */
         if ($id === '#') {
             /* Массив корневых ролей name, description (т.е. роли не имеющие родителей) */
             foreach (AuthItem::model()->findAll(AuthItem::model()->AuthItemRoot()) as $row) {
                 $result[] = (object) ['children' => count((array) Yii::app()->authManager->getItemChildren($row['name'])) > 0 ? true : false, 'text' => $row['description'], 'icon' => './images/role.png', 'li_attr' => (object) ['itemname' => $row['name'], 'class' => 'roleitemnode']];
             }
         } else {
             /* Массив детей CAuthItem роли, исключая операции */
             foreach (AuthItemChild::GetAuthItemChildren($itemname) as $authname => $row) {
                 $result[] = (object) ['children' => count((array) AuthItemChild::GetAuthItemChildren($authname)) > 0 ? true : false, 'text' => $row->description, 'icon' => $row->type === 1 ? './images/task.png' : './images/role.png', 'state' => (object) ['opened' => true], 'li_attr' => (object) ['itemname' => $authname, 'class' => $row->type === 1 ? 'taskitemnode' : 'roleitemnode']];
             }
         }
     }
     /* Выводим результат в JSON строку */
     echo json_encode($result);
 }