From 2592d597652242cc5e1299e3dcde53d31f35c4f1 Mon Sep 17 00:00:00 2001
From: Oliver Schramm <oliver.schramm97@gmail.com>
Date: Fri, 22 Sep 2017 14:34:38 +0200
Subject: [PATCH] [ticket/15339] Use manual method when adding modules

This will fix cases where the module is deleted in later
versions and the migrator thus cannot retrieve the info.

PHPBB3-15339
---
 .../migration/data/v30x/release_3_0_6_rc1.php | 41 ++++++++++++++++---
 .../migration/data/v30x/release_3_0_8_rc1.php |  4 +-
 .../data/v310/auth_provider_oauth.php         |  4 +-
 .../data/v310/contact_admin_acp_module.php    |  4 +-
 phpBB/phpbb/db/migration/data/v310/dev.php    | 25 +++++++++--
 .../db/migration/data/v310/extensions.php     |  4 +-
 .../db/migration/data/v310/notifications.php  |  7 +++-
 .../data/v310/softdelete_mcp_modules.php      |  8 +++-
 .../db/migration/data/v320/add_help_phpbb.php |  4 +-
 9 files changed, 83 insertions(+), 18 deletions(-)

diff --git a/phpBB/phpbb/db/migration/data/v30x/release_3_0_6_rc1.php b/phpBB/phpbb/db/migration/data/v30x/release_3_0_6_rc1.php
index faef68121d..08b8979e00 100644
--- a/phpBB/phpbb/db/migration/data/v30x/release_3_0_6_rc1.php
+++ b/phpBB/phpbb/db/migration/data/v30x/release_3_0_6_rc1.php
@@ -153,7 +153,9 @@ class release_3_0_6_rc1 extends \phpbb\db\migration\migration
 				'ACP_BOARD_CONFIGURATION',
 				array(
 					'module_basename'	=> 'acp_board',
-					'modes'				=> array('feed'),
+					'module_langname'	=> 'ACP_FEED_SETTINGS',
+					'module_mode'		=> 'feed',
+					'module_auth'		=> 'acl_a_board',
 				),
 			)),
 			array('module.add', array(
@@ -161,7 +163,10 @@ class release_3_0_6_rc1 extends \phpbb\db\migration\migration
 				'ACP_CAT_USERS',
 				array(
 					'module_basename'	=> 'acp_users',
-					'modes'				=> array('warnings'),
+					'module_langname'	=> 'ACP_USER_WARNINGS',
+					'module_mode'		=> 'warnings',
+					'module_auth'		=> 'acl_a_user',
+					'module_display'	=> false,
 				),
 			)),
 			array('module.add', array(
@@ -169,7 +174,9 @@ class release_3_0_6_rc1 extends \phpbb\db\migration\migration
 				'ACP_SERVER_CONFIGURATION',
 				array(
 					'module_basename'	=> 'acp_send_statistics',
-					'modes'				=> array('send_statistics'),
+					'module_langname'	=> 'ACP_SEND_STATISTICS',
+					'module_mode'		=> 'send_statistics',
+					'module_auth'		=> 'acl_a_server',
 				),
 			)),
 			array('module.add', array(
@@ -177,7 +184,9 @@ class release_3_0_6_rc1 extends \phpbb\db\migration\migration
 				'ACP_FORUM_BASED_PERMISSIONS',
 				array(
 					'module_basename'	=> 'acp_permissions',
-					'modes'				=> array('setting_forum_copy'),
+					'module_langname'	=> 'ACP_FORUM_PERMISSIONS_COPY',
+					'module_mode'		=> 'setting_forum_copy',
+					'module_auth'		=> 'acl_a_fauth && acl_a_authusers && acl_a_authgroups && acl_a_mauth',
 				),
 			)),
 			array('module.add', array(
@@ -185,7 +194,29 @@ class release_3_0_6_rc1 extends \phpbb\db\migration\migration
 				'MCP_REPORTS',
 				array(
 					'module_basename'	=> 'mcp_pm_reports',
-					'modes'				=> array('pm_reports','pm_reports_closed','pm_report_details'),
+					'module_langname'	=> 'MCP_PM_REPORTS_OPEN',
+					'module_mode'		=> 'pm_reports',
+					'module_auth'		=> 'acl_m_pm_report',
+				),
+			)),
+			array('module.add', array(
+				'mcp',
+				'MCP_REPORTS',
+				array(
+					'module_basename'	=> 'mcp_pm_reports',
+					'module_langname'	=> 'MCP_PM_REPORTS_CLOSED',
+					'module_mode'		=> 'pm_reports_closed',
+					'module_auth'		=> 'acl_m_pm_report',
+				),
+			)),
+			array('module.add', array(
+				'mcp',
+				'MCP_REPORTS',
+				array(
+					'module_basename'	=> 'mcp_pm_reports',
+					'module_langname'	=> 'MCP_PM_REPORT_DETAILS',
+					'module_mode'		=> 'pm_report_details',
+					'module_auth'		=> 'acl_m_pm_report',
 				),
 			)),
 			array('custom', array(array(&$this, 'add_newly_registered_group'))),
diff --git a/phpBB/phpbb/db/migration/data/v30x/release_3_0_8_rc1.php b/phpBB/phpbb/db/migration/data/v30x/release_3_0_8_rc1.php
index 22fd51543b..0190eeb1af 100644
--- a/phpBB/phpbb/db/migration/data/v30x/release_3_0_8_rc1.php
+++ b/phpBB/phpbb/db/migration/data/v30x/release_3_0_8_rc1.php
@@ -36,7 +36,9 @@ class release_3_0_8_rc1 extends \phpbb\db\migration\migration
 				'ACP_MESSAGES',
 				array(
 					'module_basename'	=> 'acp_board',
-					'modes'				=> array('post'),
+					'module_langname'	=> 'ACP_POST_SETTINGS',
+					'module_mode'		=> 'post',
+					'module_auth'		=> 'acl_a_board',
 				),
 			)),
 			array('config.add', array('load_unreads_search', 1)),
diff --git a/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php b/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php
index 2d51bd53e4..508a31fba9 100644
--- a/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php
+++ b/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php
@@ -69,7 +69,9 @@ class auth_provider_oauth extends \phpbb\db\migration\migration
 				'UCP_PROFILE',
 				array(
 					'module_basename'	=> 'ucp_auth_link',
-					'modes'				=> array('auth_link'),
+					'module_langname'	=> 'UCP_AUTH_LINK_MANAGE',
+					'module_mode'		=> 'auth_link',
+					'module_auth'		=> 'authmethod_oauth',
 				),
 			)),
 		);
diff --git a/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php b/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
index 20bd547ac3..e48a9a1d3d 100644
--- a/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
+++ b/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
@@ -23,7 +23,9 @@ class contact_admin_acp_module extends \phpbb\db\migration\migration
 				'ACP_BOARD_CONFIGURATION',
 				array(
 					'module_basename'	=> 'acp_contact',
-					'modes'				=> array('contact'),
+					'module_langname'	=> 'ACP_CONTACT_SETTINGS',
+					'module_mode'		=> 'contact',
+					'module_auth'		=> 'acl_a_board',
 				),
 			)),
 		);
diff --git a/phpBB/phpbb/db/migration/data/v310/dev.php b/phpBB/phpbb/db/migration/data/v310/dev.php
index 250258eea7..9cc953ad8d 100644
--- a/phpBB/phpbb/db/migration/data/v310/dev.php
+++ b/phpBB/phpbb/db/migration/data/v310/dev.php
@@ -125,7 +125,9 @@ class dev extends \phpbb\db\migration\container_aware_migration
 				'ACP_GROUPS',
 				array(
 					'module_basename'	=> 'acp_groups',
-					'modes'				=> array('position'),
+					'module_langname'	=> 'ACP_GROUPS_POSITION',
+					'module_mode'		=> 'position',
+					'module_auth'		=> 'acl_a_group',
 				),
 			)),
 			array('module.add', array(
@@ -133,7 +135,9 @@ class dev extends \phpbb\db\migration\container_aware_migration
 				'ACP_ATTACHMENTS',
 				array(
 					'module_basename'	=> 'acp_attachments',
-					'modes'				=> array('manage'),
+					'module_langname'	=> 'ACP_MANAGE_ATTACHMENTS',
+					'module_mode'		=> 'manage',
+					'module_auth'		=> 'acl_a_attach',
 				),
 			)),
 			array('module.add', array(
@@ -141,7 +145,19 @@ class dev extends \phpbb\db\migration\container_aware_migration
 				'ACP_STYLE_MANAGEMENT',
 				array(
 					'module_basename'	=> 'acp_styles',
-					'modes'				=> array('install', 'cache'),
+					'module_langname'	=> 'ACP_STYLES_INSTALL',
+					'module_mode'		=> 'install',
+					'module_auth'		=> 'acl_a_styles',
+				),
+			)),
+			array('module.add', array(
+				'acp',
+				'ACP_STYLE_MANAGEMENT',
+				array(
+					'module_basename'	=> 'acp_styles',
+					'module_langname'	=> 'ACP_STYLES_CACHE',
+					'module_mode'		=> 'cache',
+					'module_auth'		=> 'acl_a_styles',
 				),
 			)),
 			array('module.add', array(
@@ -149,7 +165,8 @@ class dev extends \phpbb\db\migration\container_aware_migration
 				'UCP_PROFILE',
 				array(
 					'module_basename'	=> 'ucp_profile',
-					'modes'				=> array('autologin_keys'),
+					'module_langname'	=> 'UCP_PROFILE_AUTOLOGIN_KEYS',
+					'module_mode'		=> 'autologin_keys',
 				),
 			)),
 			// Module will be renamed later
diff --git a/phpBB/phpbb/db/migration/data/v310/extensions.php b/phpBB/phpbb/db/migration/data/v310/extensions.php
index 3171435482..2e7c5c5316 100644
--- a/phpBB/phpbb/db/migration/data/v310/extensions.php
+++ b/phpBB/phpbb/db/migration/data/v310/extensions.php
@@ -66,7 +66,9 @@ class extensions extends \phpbb\db\migration\migration
 				'ACP_EXTENSION_MANAGEMENT',
 				array(
 					'module_basename'	=> 'acp_extensions',
-					'modes'				=> array('main'),
+					'module_langname'	=> 'ACP_EXTENSIONS',
+					'module_mode'		=> 'main',
+					'module_auth'		=> 'acl_a_extensions',
 				),
 			)),
 			array('permission.add', array('a_extensions', true, 'a_styles')),
diff --git a/phpBB/phpbb/db/migration/data/v310/notifications.php b/phpBB/phpbb/db/migration/data/v310/notifications.php
index f4d012b5ac..789aaa3ba9 100644
--- a/phpBB/phpbb/db/migration/data/v310/notifications.php
+++ b/phpBB/phpbb/db/migration/data/v310/notifications.php
@@ -85,7 +85,9 @@ class notifications extends \phpbb\db\migration\migration
 				'UCP_MAIN',
 				array(
 					'module_basename'	=> 'ucp_notifications',
-					'modes'				=> array('notification_list'),
+					'module_langname'	=> 'UCP_NOTIFICATION_LIST',
+					'module_mode'		=> 'notification_list',
+					'module_auth'		=> 'cfg_allow_board_notifications',
 				),
 			)),
 			array('module.add', array(
@@ -93,7 +95,8 @@ class notifications extends \phpbb\db\migration\migration
 				'UCP_PREFS',
 				array(
 					'module_basename'	=> 'ucp_notifications',
-					'modes'				=> array('notification_options'),
+					'module_langname'	=> 'UCP_NOTIFICATION_OPTIONS',
+					'module_mode'		=> 'notification_options',
 				),
 			)),
 			array('config.add', array('load_notifications', 1)),
diff --git a/phpBB/phpbb/db/migration/data/v310/softdelete_mcp_modules.php b/phpBB/phpbb/db/migration/data/v310/softdelete_mcp_modules.php
index 5e68db5889..90dab991e1 100644
--- a/phpBB/phpbb/db/migration/data/v310/softdelete_mcp_modules.php
+++ b/phpBB/phpbb/db/migration/data/v310/softdelete_mcp_modules.php
@@ -45,7 +45,9 @@ class softdelete_mcp_modules extends \phpbb\db\migration\migration
 				'MCP_QUEUE',
 				array(
 					'module_basename'	=> 'mcp_queue',
-					'modes'				=> array('deleted_topics'),
+					'module_langname'	=> 'MCP_QUEUE_DELETED_TOPICS',
+					'module_mode'		=> 'deleted_topics',
+					'module_auth'		=> 'aclf_m_approve',
 				),
 			)),
 			array('module.add', array(
@@ -53,7 +55,9 @@ class softdelete_mcp_modules extends \phpbb\db\migration\migration
 				'MCP_QUEUE',
 				array(
 					'module_basename'	=> 'mcp_queue',
-					'modes'				=> array('deleted_posts'),
+					'module_langname'	=> 'MCP_QUEUE_DELETED_POSTS',
+					'module_mode'		=> 'deleted_posts',
+					'module_auth'		=> 'aclf_m_approve',
 				),
 			)),
 		);
diff --git a/phpBB/phpbb/db/migration/data/v320/add_help_phpbb.php b/phpBB/phpbb/db/migration/data/v320/add_help_phpbb.php
index 8fadb4bde4..a52067f484 100644
--- a/phpBB/phpbb/db/migration/data/v320/add_help_phpbb.php
+++ b/phpBB/phpbb/db/migration/data/v320/add_help_phpbb.php
@@ -41,7 +41,9 @@ class add_help_phpbb extends \phpbb\db\migration\migration
 				'ACP_SERVER_CONFIGURATION',
 				array(
 					'module_basename'	=> 'acp_help_phpbb',
-					'modes'				=> array('help_phpbb'),
+					'module_langname'	=> 'ACP_HELP_PHPBB',
+					'module_mode'		=> 'help_phpbb',
+					'module_auth'		=> 'acl_a_server',
 				),
 			)),
 		);