FTP account management class.
More...
|
| m_ftp () |
| Constructor. More...
|
|
| alternc_password_policy () |
| Password kind used in this class (hook for admin class) More...
|
|
| hook_menu () |
| hook function called by menu class to add menu to the left panel More...
|
|
| authip_class () |
| Return the values needed to activate security access. More...
|
|
| switch_enabled ($id, $status=null) |
| Switch enabled status of an account. More...
|
|
| get_list () |
| Retourne la liste des comptes FTP du compte h�berg� Retourne la liste des comptes FTP sous forme de tableau index� de tableaus associatifs comme suit : $a["id"]= ID du compte ftp $a["login"]= Nom de login du compte $a["dir"]= Dossier relatif � la racine du compte de l'utilisateur. More...
|
|
| get_ftp_details ($id) |
| Retourne les details d'un compte FTP (voir get_list) Le tableau est celui du compte d'id specifie. More...
|
|
| prefix_list () |
| Retourne la liste des prefixes utilisables par le compte courant. More...
|
|
| check_login ($l) |
| Check if the login is fine (syntax) More...
|
|
| select_prefix_list ($current) |
| Affiche (ECHO) la liste des prefixes disponibles sous forme de champs d'option Les champs sont affich�s sous la forme <option>prefixe</option>... More...
|
|
| put_ftp_details ($id, $prefixe, $login, $pass, $dir) |
| Modifie les param�tres du comptes FTP $id. More...
|
|
| delete_ftp ($id) |
| Efface le compte ftp specifie. More...
|
|
| add_ftp ($prefixe, $login, $pass, $dir) |
| Cree un nouveau compte FTP. More...
|
|
| is_ftp ($dir) |
| Retourne TRUE si $dir possee un compte FTP. More...
|
|
| alternc_del_domain ($dom) |
| Fonction appellee par domains quand un domaine est supprime pour le membre. More...
|
|
| alternc_del_member () |
| Fonction appellee par membres quand un membre est efface @access private. More...
|
|
| hook_quota_get () |
| Returns the used quota for the $name service for the current user. More...
|
|
| alternc_export_conf () |
| Exporte toutes les informations ftp du compte AlternC @access private EXPERIMENTAL 'sid' function ;) More...
|
|
FTP account management class.
- Copyright
- AlternC-Team 2000-2017 https://alternc.com/
Definition at line 26 of file m_ftp.php.
◆ add_ftp()
m_ftp::add_ftp |
( |
|
$prefixe, |
|
|
|
$login, |
|
|
|
$pass, |
|
|
|
$dir |
|
) |
| |
Cree un nouveau compte FTP.
- Parameters
-
string | $prefixe | Prefixe au login |
string | $login | Login ftp (login=prefixe_login) |
string | $pass | Mot de passe FTP |
string | $dir | Repertoire racine du compte relatif à la racine du membre |
- Returns
- boolean TRUE si le compte a ete cree, FALSE sinon.
Definition at line 359 of file m_ftp.php.
361 $msg->log(
"ftp",
"add_ftp", $prefixe .
"_" .
$login);
362 $dir =
$bro->convertabsolute($dir);
363 if (substr($dir, 0, 1) ==
"/") {
364 $dir = substr($dir, 1);
368 $msg->raise(
"ERROR",
"ftp", _(
"Password can't be empty"));
371 if (!in_array($prefixe,
$r) || $prefixe ==
"") {
372 $msg->raise(
"ERROR",
"ftp", _(
"The chosen prefix is not allowed"));
375 $full_login = $prefixe;
377 $full_login.=
"_" .
$login;
382 $db->query(
"SELECT count(*) AS cnt FROM ftpusers WHERE name= ? ;", array($full_login));
385 $msg->raise(
"ERROR",
"ftp", _(
"This FTP account already exists"));
388 $db->query(
"SELECT login FROM membres WHERE uid= ? ;", array(
$cuid));
391 if (!file_exists($absolute)) {
392 system(
"/bin/mkdir -p $absolute");
394 if (!is_dir($absolute)) {
395 $msg->raise(
"ERROR",
"ftp", _(
"The directory cannot be created"));
400 if (is_callable(array($admin,
"checkPolicy"))) {
401 if (!$admin->checkPolicy(
"ftp", $full_login, $pass)) {
406 if ($quota->cancreate(
"ftp")) {
408 $db->query(
"INSERT INTO ftpusers (name,password, encrypted_password,homedir,uid) VALUES ( ?, '', ?, ?, ?)", array($full_login, $encrypted_password, $absolute,
$cuid));
411 $msg->raise(
"ERROR",
"ftp", _(
"Your FTP account quota is over. You cannot create more FTP accounts"));
prefix_list()
Retourne la liste des prefixes utilisables par le compte courant.
check_login($l)
Check if the login is fine (syntax)
getuserpath($user=null)
get the home of the user
_sha512cr($password, $salt=NULL)
Create a SHA512-CRYPT hash of a string.
References $bro, $cuid, $db, $login, $msg, $r, _sha512cr(), check_login(), getuserpath(), and prefix_list().
◆ alternc_del_domain()
m_ftp::alternc_del_domain |
( |
|
$dom | ) |
|
Fonction appellee par domains quand un domaine est supprime pour le membre.
- Parameters
-
string | $dom | Domaine à detruire. @access private |
Definition at line 443 of file m_ftp.php.
445 $msg->log(
"ftp",
"alternc_del_domain",
$dom);
446 $db->query(
"DELETE FROM ftpusers WHERE uid= ? AND ( name LIKE ? OR name LIKE ?) ", array(
$cuid,
$dom.
"\_%",
$dom));
References $cuid, $db, $dom, and $msg.
◆ alternc_del_member()
m_ftp::alternc_del_member |
( |
| ) |
|
Fonction appellee par membres quand un membre est efface @access private.
Definition at line 455 of file m_ftp.php.
457 $msg->log(
"ftp",
"alternc_del_member");
458 $db->query(
"DELETE FROM ftpusers WHERE uid= ?", array(
$cuid));
References $cuid, $db, and $msg.
◆ alternc_export_conf()
m_ftp::alternc_export_conf |
( |
| ) |
|
Exporte toutes les informations ftp du compte AlternC @access private EXPERIMENTAL 'sid' function ;)
Definition at line 486 of file m_ftp.php.
488 $msg->log(
"ftp",
"export");
491 foreach (
$f as
$d => $v) {
492 $str.=
" <login>" . ($v[
"login"]) .
"</login>\n";
493 $str.=
" <password>" . ($v[
"encrypted_password"]) .
"</password>\n";
494 $str.=
" <directory>" . ($v[
"dir"]) .
"<directory>\n";
get_list()
Retourne la liste des comptes FTP du compte h�berg� Retourne la liste des comptes FTP sous forme de t...
References $d, $db, $f, $msg, and get_list().
◆ alternc_password_policy()
m_ftp::alternc_password_policy |
( |
| ) |
|
Password kind used in this class (hook for admin class)
Definition at line 43 of file m_ftp.php.
44 return array(
"ftp" =>
"FTP accounts");
◆ authip_class()
Return the values needed to activate security access.
See get_auth_class() in authip for more informations
Definition at line 86 of file m_ftp.php.
89 $c[
'protocol'] =
"ftp";
90 $c[
'values'] = Array();
93 if (empty($tt) || !is_array($tt)) {
97 $c[
'values'][$v[
'id']] = $v[
'login'];
References $c, and get_list().
◆ check_login()
Check if the login is fine (syntax)
- Parameters
-
Definition at line 223 of file m_ftp.php.
227 $vv = array(
'_' =>
'1',
' ' => 0);
228 foreach ($vv as $k => $n) {
229 if (substr_count($l, $k) > $n) {
230 $msg->raise(
"ERROR",
'ftp', sprintf(_(
"FTP login is incorrect: too many '%s'"), $k));
235 if (!preg_match(
"/^[A-Za-z0-9]+[A-Za-z0-9_\.\-]*$/", $l)) {
236 $msg->raise(
"ERROR",
'ftp', _(
"FTP login is incorrect"));
References $msg.
Referenced by add_ftp(), and put_ftp_details().
◆ delete_ftp()
Efface le compte ftp specifie.
- Parameters
-
integer | $id | Numero du compte FTP a supprimer. |
- Returns
- boolean TRUE si le compte a ete efface, FALSE sinon.
Definition at line 336 of file m_ftp.php.
338 $msg->log(
"ftp",
"delete_ftp",
$id);
339 $db->query(
"SELECT name FROM ftpusers WHERE id= ? and uid= ? ;", array(
$id,
$cuid));
341 $name =
$db->f(
"name");
343 $msg->raise(
"ERROR",
"ftp", _(
"This FTP account does not exist"));
346 $db->query(
"DELETE FROM ftpusers WHERE id= ? ;", array(
$id));
if(!isset($is_include)) if(! $key &&! $crt) $id
References $cuid, $db, $id, and $msg.
◆ get_ftp_details()
m_ftp::get_ftp_details |
( |
|
$id | ) |
|
Retourne les details d'un compte FTP (voir get_list) Le tableau est celui du compte d'id specifie.
- Parameters
-
integer | $id | Numero du compte dont on souhaite obtenir les d�tails |
- Returns
- array Tableau associatif contenant les infos du comptes ftp
Definition at line 170 of file m_ftp.php.
172 $msg->debug(
"ftp",
"get_ftp_details",
$id);
174 $db->query(
"SELECT id, name, homedir, enabled FROM ftpusers WHERE uid= ? AND id= ?;", array(
$cuid,
$id));
175 if (
$db->num_rows()) {
178 $regexp =
"/^" . preg_quote(
getuserpath(),
"/") .
"\/(.*)$/";
180 preg_match($regexp,
$db->f(
"homedir"), $match);
182 $lg = explode(
"_",
$db->f(
"name"));
183 if ((!is_array($lg)) || (count($lg) != 2)) {
184 $lg[0] =
$db->f(
"name");
188 "id" =>
$db->f(
"id"),
192 "enabled" =>
$db->f(
"enabled")
196 $msg->raise(
"ERROR",
"ftp", _(
"This FTP account does not exist"));
References $cuid, $db, $id, $msg, $r, and getuserpath().
Referenced by switch_enabled().
◆ get_list()
Retourne la liste des comptes FTP du compte h�berg� Retourne la liste des comptes FTP sous forme de tableau index� de tableaus associatifs comme suit : $a["id"]= ID du compte ftp $a["login"]= Nom de login du compte $a["dir"]= Dossier relatif � la racine du compte de l'utilisateur.
- Returns
- array Retourne le tableau des comptes
Definition at line 141 of file m_ftp.php.
143 $msg->debug(
"ftp",
"get_list");
145 $db->query(
"SELECT id, name, homedir, enabled FROM ftpusers WHERE uid= ? ORDER BY name;", array(
$cuid));
146 if (
$db->num_rows()) {
147 while (
$db->next_record()) {
149 "id" =>
$db->f(
"id"),
150 "login" =>
$db->f(
"name"),
151 "enabled" =>
$db->f(
"enabled"),
153 "dir" =>
$db->f(
"homedir")
158 $msg->raise(
"INFO",
"ftp", _(
"No FTP account found"));
References $cuid, $db, $msg, and $r.
Referenced by alternc_export_conf(), and authip_class().
◆ hook_menu()
hook function called by menu class to add menu to the left panel
Definition at line 52 of file m_ftp.php.
54 $q = $quota->getquota(
"ftp");
57 'title' => _(
"FTP accounts"),
63 if ($quota->cancreate(
"ftp")) {
64 $obj[
'links'][] = array(
65 'txt' => _(
"Create a new ftp account"),
66 'url' =>
"ftp_edit.php?create=1",
72 $obj[
'links'][] = array(
73 'txt' => _(
"FTP accounts list"),
74 'url' =>
"ftp_list.php"
References $q.
◆ hook_quota_get()
m_ftp::hook_quota_get |
( |
| ) |
|
Returns the used quota for the $name service for the current user.
- Parameters
-
$name | string name of the quota |
- Returns
- integer the number of service used or false if an error occured @access private
Definition at line 469 of file m_ftp.php.
471 $msg->debug(
"ftp",
"getquota");
472 $q = Array(
"name" =>
"ftp",
"description" => _(
"FTP accounts"),
"used" => 0);
473 $db->query(
"SELECT COUNT(*) AS cnt FROM ftpusers WHERE uid= ? ", array(
$cuid));
474 if (
$db->next_record()) {
475 $q[
'used'] =
$db->f(
"cnt");
References $cuid, $db, $msg, and $q.
◆ is_ftp()
Retourne TRUE si $dir possee un compte FTP.
- Parameters
-
string | $dir | Dossier a tester, relatif a la racine du compte courant |
- Returns
- boolean retourne TRUE si $dir a un compte FTP, FALSE sinon.
Definition at line 422 of file m_ftp.php.
424 $msg->debug(
"ftp",
"is_ftp", $dir);
425 if (substr($dir, 0, 1) ==
"/") {
426 $dir = substr($dir, 1);
428 $db->query(
"SELECT id FROM ftpusers WHERE homedir= ? ;", array(
getuserpath() .
"/" .$dir ));
429 if (
$db->num_rows()) {
References $db, $msg, and getuserpath().
◆ m_ftp()
Constructor.
Definition at line 34 of file m_ftp.php.
36 $this->srv_proftpd =
variable_get(
'fqdn_proftpd', $L_FQDN,
'Human name for FTP server. If you change it, launch reload-certs', array(
'desc' =>
'Name',
'type' =>
'string'));
variable_get($name, $default=null, $createit_comment=null)
Return a persistent variable.
References variable_get().
◆ prefix_list()
Retourne la liste des prefixes utilisables par le compte courant.
- Returns
- array tableau contenant la liste des prefixes (domaines + login) du compte actuel.
Definition at line 207 of file m_ftp.php.
210 $r[] =
$mem->user[
"login"];
211 $db->query(
"SELECT domaine FROM domaines WHERE compte= ? ORDER BY domaine;", array(
$cuid));
212 while (
$db->next_record()) {
213 $r[] =
$db->f(
"domaine");
References $cuid, $db, $mem, and $r.
Referenced by add_ftp(), put_ftp_details(), and select_prefix_list().
◆ put_ftp_details()
m_ftp::put_ftp_details |
( |
|
$id, |
|
|
|
$prefixe, |
|
|
|
$login, |
|
|
|
$pass, |
|
|
|
$dir |
|
) |
| |
Modifie les param�tres du comptes FTP $id.
- Parameters
-
integer | $id | Num�ro du compte dont on veut modifier les param�tres |
string | $prefixe | Prefixe du compte FTP |
string | $login | login ajout� au pr�fixe ($prefixe_$login) |
string | $pass | mot de passe |
string | $dir | R�pertoire racine du compte |
- Returns
- boolean TRUE si le compte a �t� modifi�, FALSE si une erreur est survenue.
Definition at line 274 of file m_ftp.php.
276 $msg->log(
"ftp",
"put_ftp_details",
$id);
277 $db->query(
"SELECT count(*) AS cnt FROM ftpusers WHERE id= ? and uid= ?;", array(
$id,
$cuid));
279 if (!
$db->f(
"cnt")) {
280 $msg->raise(
"ERROR",
"ftp", _(
"This FTP account does not exist"));
283 $dir =
$bro->convertabsolute($dir);
284 if (substr($dir, 0, 1) ==
"/") {
285 $dir = substr($dir, 1);
288 if (!in_array($prefixe,
$r)) {
289 $msg->raise(
"ERROR",
"ftp", _(
"The chosen prefix is not allowed"));
293 $full_login = $prefixe;
295 $full_login.=
"_" .
$login;
300 $db->query(
"SELECT COUNT(*) AS cnt FROM ftpusers WHERE id!= ? AND name= ?;", array(
$id, $full_login));
303 $msg->raise(
"ERROR",
"ftp", _(
"This FTP account already exists"));
307 if (!file_exists($absolute)) {
308 system(
"/bin/mkdir -p $absolute");
310 if (!is_dir($absolute)) {
311 $msg->raise(
"ERROR",
"ftp", _(
"The directory cannot be created"));
317 if (is_callable(array($admin,
"checkPolicy"))) {
318 if (!$admin->checkPolicy(
"ftp", $full_login, $pass)) {
323 $db->query(
"UPDATE ftpusers SET name= ? , password='', encrypted_password= ?, homedir= ?, uid= ? WHERE id= ?;", array($full_login, $encrypted_password, $absolute,
$cuid,
$id));
325 $db->query(
"UPDATE ftpusers SET name= ? , homedir= ? , uid= ? WHERE id= ? ;", array($full_login, $absolute,
$cuid,
$id));
References $bro, $cuid, $db, $id, $login, $msg, $r, _sha512cr(), check_login(), getuserpath(), and prefix_list().
◆ select_prefix_list()
m_ftp::select_prefix_list |
( |
|
$current | ) |
|
Affiche (ECHO) la liste des prefixes disponibles sous forme de champs d'option Les champs sont affich�s sous la forme <option>prefixe</option>...
La valeur $current se voit affubl�e de la balise SELECTED.
- Parameters
-
string | $current | Prefixe s�lectionn� par d�faut |
- Returns
- boolean TRUE.
Definition at line 250 of file m_ftp.php.
254 if ($current ==
$val) {
255 $c =
" selected=\"selected\"";
259 echo
"<option$c>$val</option>";
if(empty($_POST['key'])||empty($_POST['val'])) $key
References $c, $key, $r, $val, and prefix_list().
◆ switch_enabled()
m_ftp::switch_enabled |
( |
|
$id, |
|
|
|
$status = null |
|
) |
| |
Switch enabled status of an account.
Definition at line 107 of file m_ftp.php.
110 $msg->raise(
"ERROR",
'ftp', _(
"This account do not exist or is not of this account"));
113 if ($status ==
null) {
114 if ($jj[0][
'enabled'] ==
true) {
121 $status = ($status ? 1 : 0);
123 if (!
$db->query(
"UPDATE ftpusers SET enabled = ? WHERE uid = ? AND id = ? ;", array($status,
$cuid,
$id))) {
124 $msg->raise(
"ERROR",
'ftp', _(
"Error during update"));
get_ftp_details($id)
Retourne les details d'un compte FTP (voir get_list) Le tableau est celui du compte d'id specifie.
References $cuid, $db, $id, $msg, and get_ftp_details().
◆ $srv_proftpd
The documentation for this class was generated from the following file: