limit account/member listing to those created by a specific reseller
This commit is contained in:
parent
4701274c2e
commit
1b9ed23260
|
@ -37,7 +37,9 @@ if (!$admin->enabled) {
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
$r=$admin->get_list($_REQUEST['show'] == 'all' ? 1 : 0);
|
$creator_id = intval($_REQUEST['creator']);
|
||||||
|
|
||||||
|
$r=$admin->get_list($_REQUEST['show'] == 'all' ? 1 : 0, $creator_id);
|
||||||
|
|
||||||
include("head.php");
|
include("head.php");
|
||||||
?>
|
?>
|
||||||
|
@ -53,6 +55,19 @@ include("head.php");
|
||||||
<?php __("Here is the list of hosted members"); ?>
|
<?php __("Here is the list of hosted members"); ?>
|
||||||
<?php if($_REQUEST['show'] != 'all') {
|
<?php if($_REQUEST['show'] != 'all') {
|
||||||
echo '<br /><a href="adm_list.php?show=all">' . _('List all the accounts') . '</a>';
|
echo '<br /><a href="adm_list.php?show=all">' . _('List all the accounts') . '</a>';
|
||||||
|
|
||||||
|
if ($cuid == 2000) {
|
||||||
|
$list_creators = $admin->get_creator_list();
|
||||||
|
$infos_creators = array();
|
||||||
|
|
||||||
|
foreach ($list_creators as $key => $val) {
|
||||||
|
$infos_creators[] = '<a href="adm_list.php?show_all&creator=' . $val['uid'] . '">' . $val['login'] . '</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($infos_creators)) {
|
||||||
|
echo ' (' . implode(', ', $infos_creators) . ')';
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
echo '<br /><a href="adm_list.php">' . _('List only my accounts') . '</a>';
|
echo '<br /><a href="adm_list.php">' . _('List only my accounts') . '</a>';
|
||||||
} ?>
|
} ?>
|
||||||
|
|
|
@ -114,6 +114,49 @@ class m_admin {
|
||||||
return $c;
|
return $c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the known information about a specific hosted account
|
||||||
|
* Similar to get_list() but for creators/resellers.
|
||||||
|
*/
|
||||||
|
function get_creator($uid) {
|
||||||
|
global $err,$db;
|
||||||
|
// $err->log("admin","get",$uid);
|
||||||
|
if (!$this->enabled) {
|
||||||
|
$err->raise("admin",1);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->query("SELECT m.*, parent.login as parentlogin FROM membres as m LEFT JOIN membres as parent ON (parent.uid = m.creator) WHERE m.uid='$uid';");
|
||||||
|
|
||||||
|
if ($db->num_rows()) {
|
||||||
|
$db->next_record();
|
||||||
|
$c=$db->Record;
|
||||||
|
} else {
|
||||||
|
$err->raise("admin",2);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->query("SELECT * FROM local WHERE uid='$uid';");
|
||||||
|
if ($db->num_rows()) {
|
||||||
|
$db->next_record();
|
||||||
|
reset($db->Record);
|
||||||
|
while (list($key,$val)=each($db->Record)) {
|
||||||
|
$c[$key]=$val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->query("SELECT count(*) as nbcreated FROM membres WHERE creator='$uid';");
|
||||||
|
if ($db->num_rows()) {
|
||||||
|
$db->next_record();
|
||||||
|
reset($db->Record);
|
||||||
|
while (list($key,$val)=each($db->Record)) {
|
||||||
|
$c[$key]=$val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $c;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
/**
|
/**
|
||||||
* @return TRUE if there's only ONE admin account
|
* @return TRUE if there's only ONE admin account
|
||||||
|
@ -146,7 +189,7 @@ class m_admin {
|
||||||
* produite.
|
* produite.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function get_list($all=0) {
|
function get_list($all=0,$creator=0) {
|
||||||
// PATCHBEN pour ne voir que les comptes que l'on a créé (sauf admin)
|
// PATCHBEN pour ne voir que les comptes que l'on a créé (sauf admin)
|
||||||
global $err,$mem,$cuid;
|
global $err,$mem,$cuid;
|
||||||
$err->log("admin","get_list");
|
$err->log("admin","get_list");
|
||||||
|
@ -155,7 +198,10 @@ class m_admin {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$db=new DB_System();
|
$db=new DB_System();
|
||||||
if ($mem->user[uid]==2000 || $all) {
|
if ($mem->user['uid']==2000 && $creator) {
|
||||||
|
// Limit listing to a specific reseller
|
||||||
|
$db->query("SELECT uid FROM membres WHERE creator='".$creator."' ORDER BY login;");
|
||||||
|
} elseif ($mem->user['uid']==2000 || $all) {
|
||||||
$db->query("SELECT uid FROM membres ORDER BY login;");
|
$db->query("SELECT uid FROM membres ORDER BY login;");
|
||||||
} else {
|
} else {
|
||||||
$db->query("SELECT uid FROM membres WHERE creator='".$cuid."' ORDER BY login;");
|
$db->query("SELECT uid FROM membres WHERE creator='".$cuid."' ORDER BY login;");
|
||||||
|
@ -170,6 +216,38 @@ class m_admin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the known information about resellers (uid, login, number of accounts)
|
||||||
|
* May only be called by the admin account (2000)
|
||||||
|
*/
|
||||||
|
function get_creator_list() {
|
||||||
|
global $err,$mem,$cuid;
|
||||||
|
|
||||||
|
$err->log("admin","get_reseller_list");
|
||||||
|
if (!$this->enabled) {
|
||||||
|
$err->raise("admin",1);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cuid != 2000) {
|
||||||
|
$err->raise("admin",1);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db=new DB_System();
|
||||||
|
|
||||||
|
$db->query("SELECT distinct creator FROM membres WHERE creator <> 0 ORDER BY creator asc;");
|
||||||
|
|
||||||
|
if ($db->num_rows()) {
|
||||||
|
while ($db->next_record()) {
|
||||||
|
$c[]=$this->get_creator($db->f("creator"));
|
||||||
|
}
|
||||||
|
return $c;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
/**
|
/**
|
||||||
* Check if I am the creator of the member $uid
|
* Check if I am the creator of the member $uid
|
||||||
|
|
Loading…
Reference in New Issue