config['pedodev_linkprotection']); } static public function depends_on() { return ['\phpbb\db\migration\data\v330\v330']; } public function update_data() { // openssl_cipher_key_length requires PHP >= 8.2 if (function_exists('openssl_cipher_key_length')) { $key_length = openssl_cipher_key_length('aes-128-cbc'); } else { $key_length = 16; } $random_key = base64_encode(random_bytes($key_length)); return [ // A simple config variable so we know the migration is already completed ['config.add', ['pedodev_linkprotection', 1]], /* Add the ACP modules */ ['module.add', [ 'acp', 'ACP_CAT_DOT_MODS', 'ACP_LINKPROTECTION_TITLE' ]], ['module.add', [ 'acp', 'ACP_LINKPROTECTION_TITLE', [ 'module_basename' => '\pedodev\linkprotection\acp\link_replacement_module', 'modes' => ['settings'], ], ]], ['module.add', [ 'acp', 'ACP_LINKPROTECTION_TITLE', [ 'module_basename' => '\pedodev\linkprotection\acp\protected_page_module', 'modes' => ['settings'], ], ]], /* Add our configuration variables (with sane defaults) */ // Link replacement ['config.add', ['pedodev_linkprotection_maxlinks', 100]], ['config.add', ['pedodev_linkprotection_key', $random_key]], ['config.add', ['pedodev_linkprotection_cipher', 'aes-128-cbc']], ['config.add', ['pedodev_linkprotection_manualenabled', 1]], ['config.add', ['pedodev_linkprotection_manualtitle', 'Protected']], ['config.add', ['pedodev_linkprotection_strictmanual', 0]], ['config.add', ['pedodev_linkprotection_manuallength', 255]], ['config.add', ['pedodev_linkprotection_manualtags', 'dl,download']], ['config.add', ['pedodev_linkprotection_automaticenabled', 1]], ['config.add', ['pedodev_linkprotection_automaticlength', 255]], ['config.add', ['pedodev_linkprotection_automaticlinks', '{"1fichier.com":"1fichier"}']], // Protected link page ['config.add', ['pedodev_linkprotection_protectedprefix', 'protected']], ['config.add', ['pedodev_linkprotection_captcha', 'core.captcha.plugins.nogd']], ['config.add', ['pedodev_linkprotection_solvetime', 60]], ['config.add', ['pedodev_linkprotection_showsubmit', 1]], ['config.add', ['pedodev_linkprotection_multiplelinks', 1]], ['config.add', ['pedodev_linkprotection_solveduration', 120]], ['config.add', ['pedodev_linkprotection_grouplinks', '']], /* Configure our permissions and setup sane defaults for roles*/ ['permission.add', ['u_pedodev_linkprotection_canprotectlinks']], ['permission.permission_set', ['ROLE_USER_LIMITED', 'u_pedodev_linkprotection_canprotectlinks']], ['permission.permission_set', ['ROLE_USER_STANDARD', 'u_pedodev_linkprotection_canprotectlinks']], ['permission.permission_set', ['ROLE_USER_FULL', 'u_pedodev_linkprotection_canprotectlinks']], ['permission.add', ['u_pedodev_linkprotection_canviewlinks']], ['permission.permission_set', ['ROLE_USER_LIMITED', 'u_pedodev_linkprotection_canviewlinks']], ['permission.permission_set', ['ROLE_USER_STANDARD', 'u_pedodev_linkprotection_canviewlinks']], ['permission.permission_set', ['ROLE_USER_FULL', 'u_pedodev_linkprotection_canviewlinks']], ['permission.add', ['m_pedodev_linkprotection_canbypasscaptcha']], ['permission.permission_set', ['ROLE_MOD_STANDARD', 'm_pedodev_linkprotection_canbypasscaptcha']], ['permission.permission_set', ['ROLE_MOD_FULL', 'm_pedodev_linkprotection_canbypasscaptcha']], ['permission.add', ['m_pedodev_linkprotection_vieworiginallinks']], ['permission.permission_set', ['ROLE_MOD_STANDARD', 'm_pedodev_linkprotection_vieworiginallinks']], ['permission.permission_set', ['ROLE_MOD_FULL', 'm_pedodev_linkprotection_vieworiginallinks']], ]; } }