adapt occ 'dav:sync-birthday-calendar command
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
5068d56fb0
commit
1c106a66b1
1 changed files with 33 additions and 1 deletions
|
@ -23,6 +23,7 @@
|
|||
namespace OCA\DAV\Command;
|
||||
|
||||
use OCA\DAV\CalDAV\BirthdayService;
|
||||
use OCP\IConfig;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
|
@ -36,16 +37,22 @@ class SyncBirthdayCalendar extends Command {
|
|||
/** @var BirthdayService */
|
||||
private $birthdayService;
|
||||
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/** @var IUserManager */
|
||||
private $userManager;
|
||||
|
||||
/**
|
||||
* @param IUserManager $userManager
|
||||
* @param IConfig $config
|
||||
* @param BirthdayService $birthdayService
|
||||
*/
|
||||
function __construct(IUserManager $userManager, BirthdayService $birthdayService) {
|
||||
function __construct(IUserManager $userManager, IConfig $config,
|
||||
BirthdayService $birthdayService) {
|
||||
parent::__construct();
|
||||
$this->birthdayService = $birthdayService;
|
||||
$this->config = $config;
|
||||
$this->userManager = $userManager;
|
||||
}
|
||||
|
||||
|
@ -63,11 +70,21 @@ class SyncBirthdayCalendar extends Command {
|
|||
* @param OutputInterface $output
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output) {
|
||||
$this->verifyEnabled();
|
||||
|
||||
$user = $input->getArgument('user');
|
||||
if (!is_null($user)) {
|
||||
if (!$this->userManager->userExists($user)) {
|
||||
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");
|
||||
$this->birthdayService->syncUser($user);
|
||||
return;
|
||||
|
@ -77,6 +94,13 @@ class SyncBirthdayCalendar extends Command {
|
|||
$p->start();
|
||||
$this->userManager->callForAllUsers(function($user) use ($p) {
|
||||
$p->advance();
|
||||
|
||||
$userId = $user->getUID();
|
||||
$isEnabled = $this->config->getUserValue($userId, 'dav', 'generateBirthdayCalendar', 'yes');
|
||||
if ($isEnabled !== 'yes') {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var IUser $user */
|
||||
$this->birthdayService->syncUser($user->getUID());
|
||||
});
|
||||
|
@ -84,4 +108,12 @@ class SyncBirthdayCalendar extends Command {
|
|||
$p->finish();
|
||||
$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 a new issue