Node_access GID,角色和工作流程之间的关系
题
如果使用工作流,则node_access.gid映射到哪个数据库表。它代表角色,代表工作流SID(状态ID)还是其他?
例子:
+---------+------+-----------------+------------+--------------+--------------+
| 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和cool.rid:rid: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,是角色ID。此外,它还在WorkFlow_access_node_grants()中定义了它,该()为给定的用户返回GID。这就是“ WorkFlow_Access”和“ WorkFlow_Access_owner”的用户ID的角色ID。
还有一个{WorkFlow_Access}表,其中包含有关每个工作流状态哪些角色的信息。基于此,然后构建每个节点的访问赠款。
不隶属于 drupal.stackexchange