Refactor user console command to re-use common code
This commit is contained in:
parent
d666b6cb42
commit
471bb53746
|
@ -136,6 +136,49 @@ HELP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the user nick, either as an argument or from a prompt
|
||||||
|
*
|
||||||
|
* @param int $arg_index Index of the nick argument in the arguments list
|
||||||
|
*
|
||||||
|
* @return string nick of the user
|
||||||
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
|
*/
|
||||||
|
private function getNick($arg_index)
|
||||||
|
{
|
||||||
|
$nick = $this->getArgument($arg_index);
|
||||||
|
|
||||||
|
if (!$nick) {
|
||||||
|
$this->out($this->l10n->t('Enter user nickname: '));
|
||||||
|
$nick = CliPrompt::prompt();
|
||||||
|
if (empty($nick)) {
|
||||||
|
throw new RuntimeException('A nick name must be set.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $nick;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the user from a nick supplied as an argument or from a prompt
|
||||||
|
*
|
||||||
|
* @param int $arg_index Index of the nick argument in the arguments list
|
||||||
|
*
|
||||||
|
* @return mixed user data or dba failure result
|
||||||
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
|
*/
|
||||||
|
private function getUserByNick($arg_index)
|
||||||
|
{
|
||||||
|
$nick = $this->getNick($arg_index);
|
||||||
|
|
||||||
|
$user = $this->dba->selectFirst('user', ['uid'], ['nickname' => $nick]);
|
||||||
|
if (!$this->dba->isResult($user)) {
|
||||||
|
throw new RuntimeException($this->l10n->t('User not found'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $user;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a new password
|
* Sets a new password
|
||||||
*
|
*
|
||||||
|
@ -145,12 +188,7 @@ HELP;
|
||||||
*/
|
*/
|
||||||
private function password()
|
private function password()
|
||||||
{
|
{
|
||||||
$nick = $this->getArgument(1);
|
$user = $this->getUserByNick(1);
|
||||||
|
|
||||||
$user = $this->dba->selectFirst('user', ['uid'], ['nickname' => $nick]);
|
|
||||||
if (!$this->dba->isResult($user)) {
|
|
||||||
throw new RuntimeException($this->l10n->t('User not found'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$password = $this->getArgument(2);
|
$password = $this->getArgument(2);
|
||||||
|
|
||||||
|
@ -235,20 +273,7 @@ HELP;
|
||||||
*/
|
*/
|
||||||
private function pendingUser(bool $allow = true)
|
private function pendingUser(bool $allow = true)
|
||||||
{
|
{
|
||||||
$nick = $this->getArgument(1);
|
$user = $this->getUserByNick(1);
|
||||||
|
|
||||||
if (!$nick) {
|
|
||||||
$this->out($this->l10n->t('Enter user nickname: '));
|
|
||||||
$nick = CliPrompt::prompt();
|
|
||||||
if (empty($nick)) {
|
|
||||||
throw new RuntimeException('A nick name must be set.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$user = $this->dba->selectFirst('user', ['uid'], ['nickname' => $nick]);
|
|
||||||
if (empty($user)) {
|
|
||||||
throw new RuntimeException($this->l10n->t('User not found'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$pending = Register::getPendingForUser($user['uid'] ?? 0);
|
$pending = Register::getPendingForUser($user['uid'] ?? 0);
|
||||||
if (empty($pending)) {
|
if (empty($pending)) {
|
||||||
|
@ -268,20 +293,7 @@ HELP;
|
||||||
*/
|
*/
|
||||||
private function blockUser(bool $block = true)
|
private function blockUser(bool $block = true)
|
||||||
{
|
{
|
||||||
$nick = $this->getArgument(1);
|
$user = $this->getUserByNick(1);
|
||||||
|
|
||||||
if (!$nick) {
|
|
||||||
$this->out($this->l10n->t('Enter user nickname: '));
|
|
||||||
$nick = CliPrompt::prompt();
|
|
||||||
if (empty($nick)) {
|
|
||||||
throw new RuntimeException('A nick name must be set.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$user = $this->dba->selectFirst('user', ['uid'], ['nickname' => $nick]);
|
|
||||||
if (empty($user)) {
|
|
||||||
throw new RuntimeException($this->l10n->t('User not found'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $block ? UserModel::block($user['uid'] ?? 0) : UserModel::block($user['uid'] ?? 0, false);
|
return $block ? UserModel::block($user['uid'] ?? 0) : UserModel::block($user['uid'] ?? 0, false);
|
||||||
}
|
}
|
||||||
|
@ -294,20 +306,7 @@ HELP;
|
||||||
*/
|
*/
|
||||||
private function deleteUser()
|
private function deleteUser()
|
||||||
{
|
{
|
||||||
$nick = $this->getArgument(1);
|
$user = $this->getUserByNick(1);
|
||||||
|
|
||||||
if (!$nick) {
|
|
||||||
$this->out($this->l10n->t('Enter user nickname: '));
|
|
||||||
$nick = CliPrompt::prompt();
|
|
||||||
if (empty($nick)) {
|
|
||||||
throw new RuntimeException('A nick name must be set.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$user = $this->dba->selectFirst('user', ['uid', 'account_removed'], ['nickname' => $nick]);
|
|
||||||
if (empty($user)) {
|
|
||||||
throw new RuntimeException($this->l10n->t('User not found'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($user['account_removed'])) {
|
if (!empty($user['account_removed'])) {
|
||||||
$this->out($this->l10n->t('User has already been marked for deletion.'));
|
$this->out($this->l10n->t('User has already been marked for deletion.'));
|
||||||
|
@ -315,7 +314,7 @@ HELP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->getOption('y')) {
|
if (!$this->getOption('y')) {
|
||||||
$this->out($this->l10n->t('Type "yes" to delete %s', $nick));
|
$this->out($this->l10n->t('Type "yes" to delete %s', $this->getArgument(1)));
|
||||||
if (CliPrompt::prompt() !== 'yes') {
|
if (CliPrompt::prompt() !== 'yes') {
|
||||||
throw new RuntimeException($this->l10n->t('Deletion aborted.'));
|
throw new RuntimeException($this->l10n->t('Deletion aborted.'));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user