added new cli command froxlor:user for unlocking, password-changing and info-display of a user
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -126,57 +126,4 @@ final class RunApiCommand extends CliCommand
|
||||
return ['class' => $command[0], 'function' => $command[1]];
|
||||
}
|
||||
|
||||
private function getUserByName(?string $loginname): array
|
||||
{
|
||||
if (empty($loginname)) {
|
||||
throw new Exception("Empty username");
|
||||
}
|
||||
|
||||
$stmt = Database::prepare("
|
||||
SELECT `loginname` AS `customer`
|
||||
FROM `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
WHERE `loginname`= :loginname
|
||||
");
|
||||
Database::pexecute($stmt, [
|
||||
"loginname" => $loginname
|
||||
]);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($row && $row['customer'] == $loginname) {
|
||||
$table = "`" . TABLE_PANEL_CUSTOMERS . "`";
|
||||
$adminsession = '0';
|
||||
} else {
|
||||
$stmt = Database::prepare("
|
||||
SELECT `loginname` AS `admin` FROM `" . TABLE_PANEL_ADMINS . "`
|
||||
WHERE `loginname`= :loginname
|
||||
");
|
||||
Database::pexecute($stmt, [
|
||||
"loginname" => $loginname
|
||||
]);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($row && $row['admin'] == $loginname) {
|
||||
$table = "`" . TABLE_PANEL_ADMINS . "`";
|
||||
$adminsession = '1';
|
||||
} else {
|
||||
throw new Exception("Unknown user '" . $loginname . "'");
|
||||
}
|
||||
}
|
||||
|
||||
$userinfo_stmt = Database::prepare("
|
||||
SELECT * FROM $table
|
||||
WHERE `loginname`= :loginname
|
||||
");
|
||||
Database::pexecute($userinfo_stmt, [
|
||||
"loginname" => $loginname
|
||||
]);
|
||||
$userinfo = $userinfo_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$userinfo['adminsession'] = $adminsession;
|
||||
|
||||
if ($userinfo['deactivated']) {
|
||||
throw new Exception("User '" . $loginname . "' is currently deactivated");
|
||||
}
|
||||
|
||||
return $userinfo;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user