I have a 4.5.0 and a 4.5.3 store. I patched both using the individual diff files from the 4.5.4 patch distribution.
4.5.0 and 4.5.3 do not have
provider\register.tpl, so you can skip that file.
4.5.3 patched successfully on the remaining diff files.
4.5.0 failed to patch one file,
include\register.php, even when my edited register.php was replaced with the original file. I compared the changes between an original 4.5.4 distribution and the 4.5.4 patch distribution, then made that change in a code editor to the 4.5.0 original register.php file and it seems to work ok.
To do the manual edit, starting with the original 4.5.0
include\register.php file find starting on line 444
Code:
if (
$config['Security']['use_complex_pwd'] == 'Y'
&& (
func_is_password_weak($passwd1)
|| $passwd1 == $uname
|| (
!empty($login)
&& $login != $uname
)
)
) {
$errors[] = func_reg_error(5);
}
and replace it with lines 441 thru 458 from the 4.5.4 patch version of
include\register.php
Code:
if (
(
$config['Security']['use_complex_pwd'] == 'Y'
|| in_array($login_type, array('A', 'P'))
|| in_array($usertype, array('A', 'P'))
)
&&
(
func_is_password_weak($passwd1)
|| $passwd1 == $uname
|| (
!empty($login)
&& $login != $uname
)
)
) {
$errors[] = func_reg_error(5);
}