adapt occ 'dav:sync-birthday-calendar command
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
5068d56fb0
commit
1c106a66b1
|
@ -23,6 +23,7 @@
|
||||||
namespace OCA\DAV\Command;
|
namespace OCA\DAV\Command;
|
||||||
|
|
||||||
use OCA\DAV\CalDAV\BirthdayService;
|
use OCA\DAV\CalDAV\BirthdayService;
|
||||||
|
use OCP\IConfig;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
@ -36,16 +37,22 @@ class SyncBirthdayCalendar extends Command {
|
||||||
/** @var BirthdayService */
|
/** @var BirthdayService */
|
||||||
private $birthdayService;
|
private $birthdayService;
|
||||||
|
|
||||||
|
/** @var IConfig */
|
||||||
|
private $config;
|
||||||
|
|
||||||
/** @var IUserManager */
|
/** @var IUserManager */
|
||||||
private $userManager;
|
private $userManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param IUserManager $userManager
|
* @param IUserManager $userManager
|
||||||
|
* @param IConfig $config
|
||||||
* @param BirthdayService $birthdayService
|
* @param BirthdayService $birthdayService
|
||||||
*/
|
*/
|
||||||
function __construct(IUserManager $userManager, BirthdayService $birthdayService) {
|
function __construct(IUserManager $userManager, IConfig $config,
|
||||||
|
BirthdayService $birthdayService) {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->birthdayService = $birthdayService;
|
$this->birthdayService = $birthdayService;
|
||||||
|
$this->config = $config;
|
||||||
$this->userManager = $userManager;
|
$this->userManager = $userManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,11 +70,21 @@ class SyncBirthdayCalendar extends Command {
|
||||||
* @param OutputInterface $output
|
* @param OutputInterface $output
|
||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output) {
|
protected function execute(InputInterface $input, OutputInterface $output) {
|
||||||
|
$this->verifyEnabled();
|
||||||
|
|
||||||
$user = $input->getArgument('user');
|
$user = $input->getArgument('user');
|
||||||
if (!is_null($user)) {
|
if (!is_null($user)) {
|
||||||
if (!$this->userManager->userExists($user)) {
|
if (!$this->userManager->userExists($user)) {
|
||||||
throw new \InvalidArgumentException("User <$user> in unknown.");
|
throw new \InvalidArgumentException("User <$user> in unknown.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// re-enable the birthday calendar in case it's called directly with a user name
|
||||||
|
$isEnabled = $this->config->getUserValue($user, 'dav', 'generateBirthdayCalendar', 'yes');
|
||||||
|
if ($isEnabled !== 'yes') {
|
||||||
|
$this->config->setUserValue($user, 'dav', 'generateBirthdayCalendar', 'yes');
|
||||||
|
$output->writeln("Re-enabling birthday calendar for $user");
|
||||||
|
}
|
||||||
|
|
||||||
$output->writeln("Start birthday calendar sync for $user");
|
$output->writeln("Start birthday calendar sync for $user");
|
||||||
$this->birthdayService->syncUser($user);
|
$this->birthdayService->syncUser($user);
|
||||||
return;
|
return;
|
||||||
|
@ -77,6 +94,13 @@ class SyncBirthdayCalendar extends Command {
|
||||||
$p->start();
|
$p->start();
|
||||||
$this->userManager->callForAllUsers(function($user) use ($p) {
|
$this->userManager->callForAllUsers(function($user) use ($p) {
|
||||||
$p->advance();
|
$p->advance();
|
||||||
|
|
||||||
|
$userId = $user->getUID();
|
||||||
|
$isEnabled = $this->config->getUserValue($userId, 'dav', 'generateBirthdayCalendar', 'yes');
|
||||||
|
if ($isEnabled !== 'yes') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/** @var IUser $user */
|
/** @var IUser $user */
|
||||||
$this->birthdayService->syncUser($user->getUID());
|
$this->birthdayService->syncUser($user->getUID());
|
||||||
});
|
});
|
||||||
|
@ -84,4 +108,12 @@ class SyncBirthdayCalendar extends Command {
|
||||||
$p->finish();
|
$p->finish();
|
||||||
$output->writeln('');
|
$output->writeln('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function verifyEnabled () {
|
||||||
|
$isEnabled = $this->config->getAppValue('dav', 'generateBirthdayCalendar', 'yes');
|
||||||
|
|
||||||
|
if ($isEnabled !== 'yes') {
|
||||||
|
throw new \InvalidArgumentException('Birthday calendars are disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue