Trigger an event to log an activity when an administrator generates an app password

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/31535/head
Joas Schilling 2 years ago committed by backportbot[bot]
parent 69d9c1d7c7
commit 4bf6f68bba

@ -23,10 +23,11 @@
*/
namespace OC\Core\Command\User;
use OC\Authentication\Events\AppPasswordCreatedEvent;
use OC\Authentication\Token\IProvider;
use OC\Authentication\Token\IToken;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUserManager;
use OCP\Security\ICrypto;
use OCP\Security\ISecureRandom;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\QuestionHelper;
@ -44,17 +45,17 @@ class AddAppPassword extends Command {
protected $tokenProvider;
/** @var ISecureRandom */
private $random;
/** @var ICrypto */
private $crypto;
/** @var IEventDispatcher */
private $eventDispatcher;
public function __construct(IUserManager $userManager,
IProvider $tokenProvider,
ISecureRandom $random,
ICrypto $crypto) {
IEventDispatcher $eventDispatcher) {
$this->tokenProvider = $tokenProvider;
$this->userManager = $userManager;
$this->random = $random;
$this->crypto = $crypto;
$this->eventDispatcher = $eventDispatcher;
parent::__construct();
}
@ -112,7 +113,7 @@ class AddAppPassword extends Command {
$token = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS);
$this->tokenProvider->generateToken(
$generatedToken = $this->tokenProvider->generateToken(
$token,
$user->getUID(),
$user->getUID(),
@ -122,6 +123,10 @@ class AddAppPassword extends Command {
IToken::DO_NOT_REMEMBER
);
$this->eventDispatcher->dispatchTyped(
new AppPasswordCreatedEvent($generatedToken)
);
$output->writeln('app password:');
$output->writeln($token);

@ -186,7 +186,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
$application->add(new OC\Core\Command\User\Setting(\OC::$server->getUserManager(), \OC::$server->getConfig(), \OC::$server->getDatabaseConnection()));
$application->add(new OC\Core\Command\User\ListCommand(\OC::$server->getUserManager(), \OC::$server->getGroupManager()));
$application->add(new OC\Core\Command\User\Info(\OC::$server->getUserManager(), \OC::$server->getGroupManager()));
$application->add(new OC\Core\Command\User\AddAppPassword(\OC::$server->get(\OCP\IUserManager::class), \OC::$server->get(\OC\Authentication\Token\IProvider::class), \OC::$server->get(\OCP\Security\ISecureRandom::class), \OC::$server->get(\OCP\Security\ICrypto::class)));
$application->add(new OC\Core\Command\User\AddAppPassword(\OC::$server->get(\OCP\IUserManager::class), \OC::$server->get(\OC\Authentication\Token\IProvider::class), \OC::$server->get(\OCP\Security\ISecureRandom::class), \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class)));
$application->add(new OC\Core\Command\Group\Add(\OC::$server->getGroupManager()));
$application->add(new OC\Core\Command\Group\Delete(\OC::$server->getGroupManager()));

Loading…
Cancel
Save