streams/Code/Module/Admin/Account_edit.php
2022-02-15 20:08:28 -08:00

86 lines
2.4 KiB
PHP

<?php
namespace Code\Module\Admin;
use Code\Render\Theme;
class Account_edit
{
public function post()
{
$account_id = $_REQUEST['aid'];
if (!$account_id) {
return;
}
$pass1 = trim($_REQUEST['pass1']);
$pass2 = trim($_REQUEST['pass2']);
if ($pass1 && $pass2 && ($pass1 === $pass2)) {
$salt = random_string(32);
$password_encoded = hash('whirlpool', $salt . $pass1);
$r = q(
"update account set account_salt = '%s', account_password = '%s',
account_password_changed = '%s' where account_id = %d",
dbesc($salt),
dbesc($password_encoded),
dbesc(datetime_convert()),
intval($account_id)
);
if ($r) {
info(sprintf(t('Password changed for account %d.'), $account_id) . EOL);
}
}
$service_class = trim($_REQUEST['service_class']);
$account_language = trim($_REQUEST['account_language']);
$r = q(
"update account set account_service_class = '%s', account_language = '%s'
where account_id = %d",
dbesc($service_class),
dbesc($account_language),
intval($account_id)
);
if ($r) {
info(t('Account settings updated.') . EOL);
}
goaway(z_root() . '/admin/accounts');
}
public function get()
{
if (argc() > 2) {
$account_id = argv(2);
}
$x = q(
"select * from account where account_id = %d limit 1",
intval($account_id)
);
if (!$x) {
notice(t('Account not found.') . EOL);
return '';
}
$a = replace_macros(Theme::get_template('admin_account_edit.tpl'), [
'$account' => $x[0],
'$title' => t('Account Edit'),
'$pass1' => ['pass1', t('New Password'), ' ', ''],
'$pass2' => ['pass2', t('New Password again'), ' ', ''],
'$account_language' => ['account_language', t('Account language (for emails)'), $x[0]['account_language'], '', language_list()],
'$service_class' => ['service_class', t('Service class'), $x[0]['account_service_class'], ''],
'$submit' => t('Submit'),
]);
return $a;
}
}