Differenciate the activity depending on admin vs user action

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/31519/head
Joas Schilling 2022-03-10 15:26:47 +07:00
parent f98044ddce
commit a6882deebc
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
2 changed files with 12 additions and 2 deletions

@ -115,7 +115,11 @@ class Provider implements IProvider {
} elseif ($event->getSubject() === self::EMAIL_CHANGED) {
$subject = $this->l->t('Your email address was changed by an administrator');
} elseif ($event->getSubject() === self::APP_TOKEN_CREATED) {
$subject = $this->l->t('You created app password "{token}"');
if ($event->getAffectedUser() === $event->getAuthor()) {
$subject = $this->l->t('You created app password "{token}"');
} else {
$subject = $this->l->t('An administrator created app password "{token}"');
}
} elseif ($event->getSubject() === self::APP_TOKEN_DELETED) {
$subject = $this->l->t('You deleted app password "{token}"');
} elseif ($event->getSubject() === self::APP_TOKEN_RENAMED) {

@ -31,6 +31,7 @@ use OCA\Settings\Activity\Provider;
use OCP\Activity\IManager as IActivityManager;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
/**
@ -40,12 +41,17 @@ class AppPasswordCreatedActivityListener implements IEventListener {
/** @var IActivityManager */
private $activityManager;
/** @var IUserSession */
private $userSession;
/** @var LoggerInterface */
private $logger;
public function __construct(IActivityManager $activityManager,
IUserSession $userSession,
LoggerInterface $logger) {
$this->activityManager = $activityManager;
$this->userSession = $userSession;
$this->logger = $logger;
}
@ -58,7 +64,7 @@ class AppPasswordCreatedActivityListener implements IEventListener {
$activity->setApp('settings')
->setType('security')
->setAffectedUser($event->getToken()->getUID())
->setAuthor($event->getToken()->getUID())
->setAuthor($this->userSession->getUser() ? $this->userSession->getUser()->getUID() : '')
->setSubject(Provider::APP_TOKEN_CREATED, ['name' => $event->getToken()->getName()])
->setObject('app_token', $event->getToken()->getId());