С п.3 разобрался:
в аргументе для ftp_connect указал не локалхост, а свой IP. Скорее всего проблема у меня в настройках iptables, но как решение - пойдет...
По п.2 - явный баг:
пусть для домена zzz нужно добавить 3 фтп-аккаунта: abc, eftp, ftp. Пароли роли не играют.
Добавляем
abc - все ОК
Добавляем
eftp - все ОК
Добавляем
ftp - пуп уже не все ОК: в ftp_group запись пришла, в ftp_users - нет. Для продолжения эксперимента правим в ftp_group запись вручную. Все нормально работает.
Хотим удалить
ftp - баг, в ftp_group запись принимает вид (старое значение "abc@zzz,eftp@zzz,ftp@zzz") "abc@zzz,e". Т.е. как я понимаю чем-то вроде str_replace снесли все вхождения "ftp@zzz".
Пороюсь, если найду где поправить - выложу патч.
PS: Может эту тему про фтп-аккаунты вынести в отдельную тему? Или сразу в багрепорт?
Вариант решения проблемы с удалением "созвучных" аккаунтов.
Code:
--- ftp_delete.php 2010-06-08 04:12:51.005120057 +0300
***************
*** 75,82 ****
$rs = exec_query($sql, $query, array($ftp_id));
$ftp_gid = $rs->fields['gid'];
! $ftp_members = $rs->fields['members'];
! $members = preg_replace("/$ftp_id/", "", "$ftp_members");
$members = preg_replace("/,,/", ",", "$members");
$members = preg_replace("/^,/", "", "$members");
$members = preg_replace("/,$/", "", "$members");
--- 75,91 ----
$rs = exec_query($sql, $query, array($ftp_id));
$ftp_gid = $rs->fields['gid'];
! $ftp_members = $rs->fields['members'];
!
! $ftp_members_array = explode(",", $ftp_members);
! $members = '';
! foreach ($ftp_members_array as $ftp_member)
! {
! if ($ftp_member!=$ftp_id)
! $members.=','.$ftp_member;
! }
! // $members = preg_replace("/$ftp_id/", "", "$ftp_members");
!
$members = preg_replace("/,,/", ",", "$members");
$members = preg_replace("/^,/", "", "$members");
$members = preg_replace("/,$/", "", "$members")