Матрица - это разновидность таблицы, в которой на пересечении строк и столбцов содержатся упорядоченные данные.
Для разграничения прав доступа к объектам и функциям в платформе Wad-er используются разные типы матриц.
Матрицы CRUD (ДЧИУ). Например, меню Управление доступом – Права-Роли. В этой матрице на пересечении строк и столбцов задаются права на функции для определенных ролей (столбцы) в разрезе отдельных прав на создание (Create - Добавить), чтение (Read -Читать), обновление (Update - Изменить) и удаление (Delete - Удалить).
Матрицы объектов. Например, меню Управление доступом – Пользователи-Роли (или Страницы-Роли). В этой матрице на пересечении строк и столбцов задаются права на объекты (колонки –роли, а столбцы – объекты).
Построением матриц занимается класс wAjaxCrosstab (main/classes/wAjaxCrosstab.class.php). В общих принципах он работает аналогично классу wAjaxGrid. Здесь интересен метод modifyCrud(), который меняет соотношение CRUD в матрице. При смене какого-либо права пользователя асинхронные запросы могут обновить информацию в базе данных (в таблице sys_obj_array).
Пример матрицы, которая отображает связь между пользователями системы и ролями:
// Create new instance of the wAjaxCrosstab class include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php'); $w = new wAjaxCrosstab(); // Set object types for rows and columns $w->col_objtype = 'sys_rights_roles'; $w->row_objtype = 'sys_users'; // Allow editing $w->editing = true; // Print the cross-table $w->show();