File: //proc/thread-self/root/opt/cpvendor/bin/users
#!/usr/local/emps/bin/php
<?php
$ret['data'] = [];
$ret['metadata']['result'] = 'ok';
include_once(__DIR__.'/inc.php');
// Get the parameters for data
$args = getopt('o:', ['owner:', 'package-name:', 'package-owner:', 'username:', 'unix-id:', 'fields:']);
$owner = $args['owner'];
$owner = empty($args['o']) ? $args['owner'] : $args['o'];
$users = cl_user_list();
foreach($users as $user => $v){
$v = @json_decode(file_get_contents($globals['users_path'].'/'.$user.'/info'), true);
if(empty($v)){
continue;
}
if(!empty($owner) && $v['owner'] != $owner){
continue;
}
$info = posix_getpwnam($user);
$u = [];
$u['id'] = $info['uid'];
$u['username'] = $user;
$u['owner'] = empty($v['owner']) ? 'root' : $v['owner'];
$u['domain'] = $v['domain'];
$u['email'] = $v['email'];
//$u['locale_code'] = 'EN_us';
$u['package'] = NULL;
if(!empty($v['plan'])){
$u['package']['name'] = $v['plan'];
$u['package']['owner'] = $u['owner'];
}
if(!empty($owner) && $u['owner'] != $owner){
continue;
}
if(!empty($args['package-name']) && $args['package-name'] != $u['package']['name']){
continue;
}
if(!empty($args['package-owner']) && $args['package-owner'] != $u['package']['owner']){
continue;
}
if(!empty($args['username']) && $args['username'] != $u['username']){
continue;
}
if(!empty($args['unix-id']) && $args['unix-id'] != $u['id']){
continue;
}
if(!empty($args['fields'])){
$fields = explode(',', $args['fields']);
foreach($u as $uk => $uv){
if(!in_array($uk, $fields)){
//echo $uk;
unset($u[$uk]);
}
}
}
$ret['data'][] = $u;
}
echo json_encode($ret, JSON_PRETTY_PRINT)."\n";