function commerce_cardonfile_update_7102 in Commerce Card on File 7.2
Update permission from 'manage' to 'view', 'edit', 'delete'.
File
- ./
commerce_cardonfile.install, line 165 - Installs the tables required by Commerce Card on File.
Code
function commerce_cardonfile_update_7102(&$sandbox) {
// Load utility functions.
module_load_install('commerce');
// Retrieve existing permissions.
$result = db_select('role_permission', 'p')
->fields('p')
->condition('permission', 'manage own card data')
->execute();
$records = $result
->fetchAll(PDO::FETCH_ASSOC);
if (empty($records)) {
return t('No permissions to update.');
}
// Update permission and views access from 'manaage' to 'view'.
$map = array(
'manage own card data' => 'view own card data',
);
commerce_update_rename_permissions($map);
// Create 'edit' and 'delete' for 'manage' permissions to mimic old access.
$inserts = array();
foreach ($records as $record) {
$inserts[] = array(
'permission' => 'edit own card data',
) + $record;
$inserts[] = array(
'permission' => 'delete own card data',
) + $record;
}
$query = db_insert('role_permission')
->fields(array(
'rid',
'permission',
'module',
));
foreach ($inserts as $insert) {
$query
->values($insert);
}
$query
->execute();
return t('Role and custom View permissions updated to new permissions. Access checks in modules and permissions on default Views must be updated manually.');
}