mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-28 20:18:13 +01:00
Summary: `strlen()` was used in Phabricator to check if a generic value is a non-empty string. This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement. Note: this may highlight other absurd input values that might be worth correcting instead of just ignoring. If phutil_nonempty_string() throws an exception in your instance, report it to Phorge to evaluate and fix that specific corner case. ``` ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php:30] ``` Test Plan: Run `../phorge/bin/auth unlimit`: Get no `strlen()` error anymore but only expected output `Usage Exception: Use --user to choose a user to reset actions for.` Reviewers: O1 Blessed Committers, valerio.bozzolan Reviewed By: O1 Blessed Committers, valerio.bozzolan Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Differential Revision: https://we.phorge.it/D25582
67 lines
1.8 KiB
PHP
67 lines
1.8 KiB
PHP
<?php
|
|
|
|
final class PhabricatorAuthManagementUnlimitWorkflow
|
|
extends PhabricatorAuthManagementWorkflow {
|
|
|
|
protected function didConstruct() {
|
|
$this
|
|
->setName('unlimit')
|
|
->setExamples('**unlimit** --user __username__ --all')
|
|
->setSynopsis(
|
|
pht(
|
|
'Reset action counters so a user can continue taking '.
|
|
'rate-limited actions.'))
|
|
->setArguments(
|
|
array(
|
|
array(
|
|
'name' => 'user',
|
|
'param' => 'username',
|
|
'help' => pht('Reset action counters for this user.'),
|
|
),
|
|
array(
|
|
'name' => 'all',
|
|
'help' => pht('Reset all counters.'),
|
|
),
|
|
));
|
|
}
|
|
|
|
public function execute(PhutilArgumentParser $args) {
|
|
$username = $args->getArg('user');
|
|
if (!phutil_nonempty_string($username)) {
|
|
throw new PhutilArgumentUsageException(
|
|
pht(
|
|
'Use %s to choose a user to reset actions for.', '--user'));
|
|
}
|
|
|
|
$user = id(new PhabricatorPeopleQuery())
|
|
->setViewer($this->getViewer())
|
|
->withUsernames(array($username))
|
|
->executeOne();
|
|
if (!$user) {
|
|
throw new PhutilArgumentUsageException(
|
|
pht(
|
|
'No user exists with username "%s".',
|
|
$username));
|
|
}
|
|
|
|
$all = $args->getArg('all');
|
|
if (!$all) {
|
|
// TODO: Eventually, let users reset specific actions. For now, we
|
|
// require `--all` so that usage won't change when you can reset in a
|
|
// more tailored way.
|
|
throw new PhutilArgumentUsageException(
|
|
pht(
|
|
'Specify %s to reset all action counters.', '--all'));
|
|
}
|
|
|
|
$count = PhabricatorSystemActionEngine::resetActions(
|
|
array(
|
|
$user->getPHID(),
|
|
));
|
|
|
|
echo pht('Reset %s action(s).', new PhutilNumber($count))."\n";
|
|
|
|
return 0;
|
|
}
|
|
|
|
}
|