Взаимосвязь между node_access GID, ролями и рабочим процессом

drupal.stackexchange https://drupal.stackexchange.com/questions/2742

  •  16-10-2019
  •  | 
  •  

Вопрос

При использовании рабочего процесса, в какую таблицу базы данных. 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}, которая содержит информацию о том, какая роль играет разрешения для каждого состояния рабочего процесса. Исходя из этого, затем построены гранты доступа для каждого узла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top