array( 'administer comment fields', 'administer comment display', ), 'administer content types' => array( 'administer node fields', 'administer node display', ), 'administer users' => array( 'administer user fields', 'administer user display', ), 'administer taxonomy' => array( 'administer taxonomy_term fields', 'administer taxonomy_term display', ), ); // We can not call user_permission_get_modules() as that will start // invoking hooks which we can't during update hooks. Directly query // for the permissions and insert them into the database. foreach ($permissions as $old_permission => $new_permissions) { $results = db_query("SELECT rid FROM {role_permission} WHERE permission = :permission", array(':permission' => $old_permission)); foreach ($results as $record) { $query = db_insert('role_permission')->fields(array('rid', 'permission', 'module')); foreach ($new_permissions as $new_permission) { $query->values(array($record->rid, $new_permission, 'field_ui')); } $query->execute(); } } }