? 548594.patch Index: uc_vat_number.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/uc_vat_number/uc_vat_number.install,v retrieving revision 1.2 diff -u -p -r1.2 uc_vat_number.install --- uc_vat_number.install 15 Mar 2010 13:45:13 -0000 1.2 +++ uc_vat_number.install 6 Jan 2011 11:59:09 -0000 @@ -60,3 +60,41 @@ function uc_vat_number_update_2() { db_create_table($ret, 'uc_vat_validation', $schema['uc_vat_validation']); return $ret; } + +function uc_vat_number_update_6103() { + $old_roles = user_roles(FALSE, 'Have to fill VAT number'); + $new_roles = array_diff(user_roles(FALSE), $old_roles); + // Removes wrong permission from roles that have it + $permissions = array(); + foreach($old_roles as $rid => $role) { + $q = db_query("SELECT perm FROM {permission} WHERE rid = %d;", $rid); + $obj = db_fetch_object($q); + $perm = explode(", ", $obj->perm); + foreach($perm as $key => $val) { + if($val == 'Have to fill VAT number') { + unset($perm[$key]); + } + } + $permissions[$rid] = implode(", ", $perm); + } + // Adds right permission to roles that don't have it + foreach($new_roles as $rid => $role) { + $q = db_query("SELECT perm FROM {permission} WHERE rid = %d;", $rid); + $obj = db_fetch_object($q); + if($obj->perm != '') { + $permissions[$rid] = $obj->perm . ", skip filling VAT number"; + } + else { + $permissions[$rid] = "skip filling VAT number"; + } + } + ksort($permissions); + // Empties permission table + $ret[] = update_sql("TRUNCATE {permission};"); + // Assigns updated roles + foreach($permissions as $rid => $perm) { + $ret[] = update_sql("INSERT INTO {permission} (rid, perm) VALUES('$rid', '$perm');"); + } + + return $ret; +} Index: uc_vat_number.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/uc_vat_number/uc_vat_number.module,v retrieving revision 1.4 diff -u -p -r1.4 uc_vat_number.module --- uc_vat_number.module 15 Mar 2010 14:05:06 -0000 1.4 +++ uc_vat_number.module 6 Jan 2011 11:59:09 -0000 @@ -18,7 +18,7 @@ * Implementation of hook_perm() */ function uc_vat_number_perm() { - return array('Have to fill VAT number'); + return array('skip filling VAT number'); } @@ -161,7 +161,7 @@ function uc_vat_number_checkout_pane_vat '#size' => 32, '#maxlength' => 32, '#weight' => 1, - '#required' => user_access('Have to fill VAT number') ? TRUE : FALSE, + '#required' => user_access('skip filling VAT number') ? FALSE : TRUE, '#default_value' => $order->data['vat_number'], '#autocomplete_path' => 'uc_vat_number/vat_autocomplete', ); @@ -285,7 +285,7 @@ function uc_vat_number_checkout_validate } if (empty($form_state['values']['panes']['vat_number']['vat_number'])) - if (user_access('Have to fill VAT number')) + if (!user_access('skip filling VAT number')) form_set_error('panes][billing][vat_number', t('VAT Number field is required.')); else return;