diff --git a/installer/data/mysql/atomicupdate/bug_31698.pl b/installer/data/mysql/atomicupdate/bug_31698.pl
new file mode 100755
index 0000000000..7ca94bcb7e
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_31698.pl
@@ -0,0 +1,20 @@
+use Modern::Perl;
+use Koha::Installer::Output qw(say_warning say_success say_info);
+
+return {
+ bug_number => "31698",
+ description => "Add a new permission for moving holds",
+ up => sub {
+ my ($args) = @_;
+ my ( $dbh, $out ) = @$args{qw(dbh out)};
+
+ # Do you stuffs here
+ $dbh->do(
+ q{
+ INSERT IGNORE permissions (module_bit, code, description) VALUES (6, 'alter_hold_targets', 'Move holds between items and records')
+
+ }
+ );
+ say $out "Added new permission 'alter_hold_targets'";
+ },
+};
diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql
index 87ce0a84d3..5c79972766 100644
--- a/installer/data/mysql/mandatory/userpermissions.sql
+++ b/installer/data/mysql/mandatory/userpermissions.sql
@@ -52,6 +52,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
( 4, 'view_borrower_infos_from_any_libraries', 'View patron infos from any libraries'),
( 6, 'place_holds', 'Place holds for patrons'),
( 6, 'modify_holds_priority', 'Modify holds priority'),
+ ( 6, 'alter_hold_targets', 'Move holds between items and records'),
( 9, 'edit_catalogue', 'Edit catalog (Modify bibliographic/holdings data)'),
( 9, 'fast_cataloging', 'Fast cataloging'),
( 9, 'advanced_editor', 'Use the advanced cataloging editor (requires edit_catalogue)'),
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
index 1c19545e10..7e081216f5 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
@@ -248,6 +248,9 @@
[%- CASE 'place_holds' -%]
Place holds for patrons
([% name | html %])
+ [%- CASE 'alter_hold_targets' -%]
+ Move holds between items and records
+ ([% name | html %])
[%- CASE 'delete_all_items' -%]
Delete all items at once
([% name | html %])