質問

ワークフローを使用する場合、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、および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())、それはredのように見えます。これは役割IDです。さらに、workflow_access_node_grants()でも定義されており、特定のユーザーのGIDを返します。そして、それは「workflow_access」の役割IDと「workflow_access_owner」のユーザーIDです。

{workflow_access}テーブルもあります。これには、各ワークフロー状態のどの役割があるかに関する情報が含まれています。それに基づいて、各ノードのアクセス助成金が構築されます。

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top