bin/console user add [<name> [<nickname> [<email> [<language>]]]] [-h|--help|-?] [-v]
bin/console user allow [<nickname>] [-h|--help|-?] [-v]
bin/console user deny [<nickname>] [-h|--help|-?] [-v]
+ bin/console user block [<nickname>] [-h|--help|-?] [-v]
+ bin/console user unblock [<nickname>] [-h|--help|-?] [-v]
Description
Modify user settings per console commands.
return $this->pendingUser(true);
case 'deny':
return $this->pendingUser(false);
+ case 'block':
+ return $this->blockUser(true);
+ case 'unblock':
+ return $this->blockUser(false);
default:
throw new \Asika\SimpleConsole\CommandArgsException('Wrong command.');
}
* @return bool True, if allow was successful
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public function pendingUser(bool $allow = true)
+ private function pendingUser(bool $allow = true)
{
$nick = $this->getArgument(1);
return ($allow) ? UserModel::allow($pending['hash']) : UserModel::deny($pending['hash']);
}
+
+ /**
+ * Blocks/unblocks a user
+ *
+ * @param bool $block True, if the given user should get blocked
+ *
+ * @return bool True, if the command was successful
+ * @throws \Exception
+ */
+ private function blockUser(bool $block = true)
+ {
+ $nick = $this->getArgument(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);
+ }
}
*/
public static function block(int $uid, bool $block = true)
{
- return DBA::update('user', ['blocked' => 0], ['uid' => $uid]);
+ return DBA::update('user', ['blocked' => $block], ['uid' => $uid]);
}
/**
}
/**
- * @param object $uid user to remove
+ * @param int $uid user to remove
* @return bool
* @throws InternalServerErrorException
*/
- public static function remove($uid)
+ public static function remove(int $uid)
{
if (!$uid) {
return false;
break;
case 'block':
parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't');
- // @TODO Move this to Model\User:block([$uid]);
- DBA::update('user', ['blocked' => 1], ['uid' => $uid]);
+ User::block($uid);
notice(DI::l10n()->t('User "%s" blocked', $user['username']));
break;
case 'unblock':
parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't');
- // @TODO Move this to Model\User:unblock([$uid]);
- DBA::update('user', ['blocked' => 0], ['uid' => $uid]);
+ User::block($uid, false);
notice(DI::l10n()->t('User "%s" unblocked', $user['username']));
break;
}