Взаимосвязь между node_access GID, ролями и рабочим процессом
Вопрос
При использовании рабочего процесса, в какую таблицу базы данных. Field выполняет карту node_access.gid? Представляет ли это роль, представляет ли он рабочий процесс SID (идентификатор состояния) или что -то еще?
Пример:
+---------+------+-----------------+------------+--------------+--------------+
| nid | gid | realm | grant_view | grant_update | grant_delete |
+---------+------+-----------------+------------+--------------+--------------+
| 1234561 | 4 | workflow_access | 1 | 1 | 1 |
| 1234562 | 5 | workflow_access | 1 | 1 | 1 |
| 1234563 | 6 | workflow_access | 1 | 1 | 1 |
| 1234564 | 7 | workflow_access | 1 | 0 | 0 |
+---------+------+-----------------+------------+--------------+--------------+
РЕДАКТИРОВАТЬ: После превосходного ответа @Berdir я написал запрос ниже, чтобы проанализировать взаимосвязь между node_access.gid, workflow_access.rid и role.rid:
# Establish relationship between workflow, roles, gids, etc.
SELECT
r.name AS role,
r.rid AS w_role_rid,
wa.rid AS and_workflow_access_rid,
ws.state AS has_access_to_state,
wa.sid AS with_state_sid,
IF(ws.status=1,'YES','NO') AS which_is_enabled,
wa.grant_view, wa.grant_update, wa.grant_delete
FROM workflow_access wa
LEFT JOIN role r ON wa.rid = r.rid
LEFT JOIN workflow_states ws ON wa.sid = ws.sid
ORDER BY r.rid, wa.sid
Если кто -то замечает какую -либо несоответствующую с моим запросом, пожалуйста, прокомментируйте это.
Решение
Глядя на источник (Функция Workflow_access_Node_Access_records ()), она выглядит как Rid, то есть идентификатор роли. Кроме того, это также определяется в workflow_access_node_grants (), который возвращает GID для данного пользователя. И это идентификаторы роли для «workflow_access» и идентификатор пользователя для «workflow_access_owner».
Существует также таблица {workflow_access}, которая содержит информацию о том, какая роль играет разрешения для каждого состояния рабочего процесса. Исходя из этого, затем построены гранты доступа для каждого узла.