You are here

function flexiaccess_reset_priorities in Flexi Access 7

Set the priority of every ACL created by Flexi access to a configured value.

1 call to flexiaccess_reset_priorities()
flexiaccess_admin_bulkop_submit in ./flexiaccess.admin.inc
Callbacks for the bulk operations.

File

./flexiaccess.module, line 303
Main hooks for per user access control.

Code

function flexiaccess_reset_priorities() {
  $priority = variable_get('flexiaccess_priority', 0);

  /*
   * The docs say about db_query:
   * Do not use this function for INSERT, UPDATE, or DELETE queries.
   * But inner join is not possible on db_update, and a direct sql is
   * better than db_update with a subquery.
   */
  $result = db_query("UPDATE acl_node INNER JOIN acl ON acl.acl_id = acl_node.acl_id SET acl_node.priority = :prio WHERE acl.module = 'flexiaccess'", array(
    ':prio' => $priority,
  ));
  $num = $result
    ->rowCount();
  if ($num > 0) {
    node_access_needs_rebuild(TRUE);
  }
  drupal_set_message("Updated {$num} ACLs with priority {$priority} .");
}