I have a content type that I have allowed anonymous users to create, but I would like it to become unpublished immediately after creation. I've currently set it up so a redirect to a thank you page occurs, and a notification email is sent. However, when I add an Unpublish action to it, I get the following error.

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '840-1-taxonomy_tools' for key 1: INSERT INTO {node_access} (nid, realm, gid, grant_view, grant_update, grant_delete) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5), (:db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11), (:db_insert_placeholder_12, :db_insert_placeholder_13, :db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17), (:db_insert_placeholder_18, :db_insert_placeholder_19, :db_insert_placeholder_20, :db_insert_placeholder_21, :db_insert_placeholder_22, :db_insert_placeholder_23), (:db_insert_placeholder_24, :db_insert_placeholder_25, :db_insert_placeholder_26, :db_insert_placeholder_27, :db_insert_placeholder_28, :db_insert_placeholder_29), (:db_insert_placeholder_30, :db_insert_placeholder_31, :db_insert_placeholder_32, :db_insert_placeholder_33, :db_insert_placeholder_34, :db_insert_placeholder_35); Array ( [:db_insert_placeholder_0] => 840 [:db_insert_placeholder_1] => taxonomy_tools [:db_insert_placeholder_2] => 1 [:db_insert_placeholder_3] => 1 [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => 0 [:db_insert_placeholder_6] => 840 [:db_insert_placeholder_7] => taxonomy_tools [:db_insert_placeholder_8] => 4 [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 0 [:db_insert_placeholder_12] => 840 [:db_insert_placeholder_13] => taxonomy_tools [:db_insert_placeholder_14] => 5 [:db_insert_placeholder_15] => 1 [:db_insert_placeholder_16] => 0 [:db_insert_placeholder_17] => 0 [:db_insert_placeholder_18] => 840 [:db_insert_placeholder_19] => taxonomy_tools [:db_insert_placeholder_20] => 6 [:db_insert_placeholder_21] => 1 [:db_insert_placeholder_22] => 0 [:db_insert_placeholder_23] => 0 [:db_insert_placeholder_24] => 840 [:db_insert_placeholder_25] => taxonomy_tools [:db_insert_placeholder_26] => 7 [:db_insert_placeholder_27] => 1 [:db_insert_placeholder_28] => 0 [:db_insert_placeholder_29] => 0 [:db_insert_placeholder_30] => 840 [:db_insert_placeholder_31] => taxonomy_tools [:db_insert_placeholder_32] => 3 [:db_insert_placeholder_33] => 1 [:db_insert_placeholder_34] => 0 [:db_insert_placeholder_35] => 0 ) in node_access_write_grants() (line 3440 of /---/modules/node/node.module).

I'm seeing some taxonomy_tools stuff in there. Could the problem be with that module?

The following is my exported rule:

{ "rules_redirect_on_anonymous_testimonial_creation" : {
    "LABEL" : "Redirect on Anonymous Testimonial: Planners Creation",
    "PLUGIN" : "reaction rule",
    "REQUIRES" : [ "rules" ],
    "ON" : [ "node_insert" ],
    "IF" : [
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "testimonial_planners_" : "testimonial_planners_" } }
        }
      },
      { "AND" : [] },
      { "NOT user_has_role" : {
          "account" : [ "node:author" ],
          "roles" : { "value" : { "2" : "2" } },
          "operation" : "OR"
        }
      }
    ],
    "DO" : [
      { "redirect" : { "url" : "planners\/about-cvb\/submit-testimonial\/thank-you" } },
      { "node_unpublish" : { "node" : [ "node" ] } },
      { "mail" : {
          "to" : "info@unchartedpixels.com",
          "subject" : "New Testimonial!",
          "message" : "A new testimonial has been created, and is available for your review.",
          "language" : [ "" ]
        }
      }
    ]
  }
}

Thanks!

Comments

TR’s picture

Status: Active » Closed (outdated)

I would have configured the content type so that it's unpublished by default, then set up a Rule to publish the node on creation only if the user was authenticated (or better yet, has a certain role which allows immediate publishing). Yes, it does look like taxonomy_tools could be a problem - you should disable that module and see if you can reproduce the error without it.