Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>tags/v18.0.0beta2
@@ -302,6 +302,14 @@ return array( | |||
'OCP\\Group\\Backend\\IIsAdminBackend' => $baseDir . '/lib/public/Group/Backend/IIsAdminBackend.php', | |||
'OCP\\Group\\Backend\\IRemoveFromGroupBackend' => $baseDir . '/lib/public/Group/Backend/IRemoveFromGroupBackend.php', | |||
'OCP\\Group\\Backend\\ISetDisplayNameBackend' => $baseDir . '/lib/public/Group/Backend/ISetDisplayNameBackend.php', | |||
'OCP\\Group\\Events\\BeforeGroupCreatedEvent' => $baseDir . '/lib/public/Group/Events/BeforeGroupCreatedEvent.php', | |||
'OCP\\Group\\Events\\BeforeGroupDeletedEvent' => $baseDir . '/lib/public/Group/Events/BeforeGroupDeletedEvent.php', | |||
'OCP\\Group\\Events\\BeforeUserAddedEvent' => $baseDir . '/lib/public/Group/Events/BeforeUserAddedEvent.php', | |||
'OCP\\Group\\Events\\BeforeUserRemovedEvent' => $baseDir . '/lib/public/Group/Events/BeforeUserRemovedEvent.php', | |||
'OCP\\Group\\Events\\GroupCreatedEvent' => $baseDir . '/lib/public/Group/Events/GroupCreatedEvent.php', | |||
'OCP\\Group\\Events\\GroupDeletedEvent' => $baseDir . '/lib/public/Group/Events/GroupDeletedEvent.php', | |||
'OCP\\Group\\Events\\UserAddedEvent' => $baseDir . '/lib/public/Group/Events/UserAddedEvent.php', | |||
'OCP\\Group\\Events\\UserRemovedEvent' => $baseDir . '/lib/public/Group/Events/UserRemovedEvent.php', | |||
'OCP\\Group\\ISubAdmin' => $baseDir . '/lib/public/Group/ISubAdmin.php', | |||
'OCP\\Http\\Client\\IClient' => $baseDir . '/lib/public/Http/Client/IClient.php', | |||
'OCP\\Http\\Client\\IClientService' => $baseDir . '/lib/public/Http/Client/IClientService.php', |
@@ -331,6 +331,14 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c | |||
'OCP\\Group\\Backend\\IIsAdminBackend' => __DIR__ . '/../../..' . '/lib/public/Group/Backend/IIsAdminBackend.php', | |||
'OCP\\Group\\Backend\\IRemoveFromGroupBackend' => __DIR__ . '/../../..' . '/lib/public/Group/Backend/IRemoveFromGroupBackend.php', | |||
'OCP\\Group\\Backend\\ISetDisplayNameBackend' => __DIR__ . '/../../..' . '/lib/public/Group/Backend/ISetDisplayNameBackend.php', | |||
'OCP\\Group\\Events\\BeforeGroupCreatedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/BeforeGroupCreatedEvent.php', | |||
'OCP\\Group\\Events\\BeforeGroupDeletedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/BeforeGroupDeletedEvent.php', | |||
'OCP\\Group\\Events\\BeforeUserAddedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/BeforeUserAddedEvent.php', | |||
'OCP\\Group\\Events\\BeforeUserRemovedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/BeforeUserRemovedEvent.php', | |||
'OCP\\Group\\Events\\GroupCreatedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/GroupCreatedEvent.php', | |||
'OCP\\Group\\Events\\GroupDeletedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/GroupDeletedEvent.php', | |||
'OCP\\Group\\Events\\UserAddedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/UserAddedEvent.php', | |||
'OCP\\Group\\Events\\UserRemovedEvent' => __DIR__ . '/../../..' . '/lib/public/Group/Events/UserRemovedEvent.php', | |||
'OCP\\Group\\ISubAdmin' => __DIR__ . '/../../..' . '/lib/public/Group/ISubAdmin.php', | |||
'OCP\\Http\\Client\\IClient' => __DIR__ . '/../../..' . '/lib/public/Http/Client/IClient.php', | |||
'OCP\\Http\\Client\\IClientService' => __DIR__ . '/../../..' . '/lib/public/Http/Client/IClientService.php', |
@@ -148,6 +148,14 @@ use OCP\Files\NotFoundException; | |||
use OCP\Files\Storage\IStorageFactory; | |||
use OCP\FullTextSearch\IFullTextSearchManager; | |||
use OCP\GlobalScale\IConfig; | |||
use OCP\Group\Events\BeforeGroupCreatedEvent; | |||
use OCP\Group\Events\BeforeGroupDeletedEvent; | |||
use OCP\Group\Events\BeforeUserAddedEvent; | |||
use OCP\Group\Events\BeforeUserRemovedEvent; | |||
use OCP\Group\Events\GroupCreatedEvent; | |||
use OCP\Group\Events\GroupDeletedEvent; | |||
use OCP\Group\Events\UserAddedEvent; | |||
use OCP\Group\Events\UserRemovedEvent; | |||
use OCP\Group\ISubAdmin; | |||
use OCP\ICacheFactory; | |||
use OCP\IDBConnection; | |||
@@ -329,23 +337,57 @@ class Server extends ServerContainer implements IServerContainer { | |||
$groupManager = new \OC\Group\Manager($this->getUserManager(), $c->getEventDispatcher(), $this->getLogger()); | |||
$groupManager->listen('\OC\Group', 'preCreate', function ($gid) { | |||
\OC_Hook::emit('OC_Group', 'pre_createGroup', array('run' => true, 'gid' => $gid)); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new BeforeGroupCreatedEvent($gid)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'postCreate', function (\OC\Group\Group $gid) { | |||
\OC_Hook::emit('OC_User', 'post_createGroup', array('gid' => $gid->getGID())); | |||
$groupManager->listen('\OC\Group', 'postCreate', function (\OC\Group\Group $group) { | |||
\OC_Hook::emit('OC_User', 'post_createGroup', array('gid' => $group->getGID())); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new GroupCreatedEvent($group)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'preDelete', function (\OC\Group\Group $group) { | |||
\OC_Hook::emit('OC_Group', 'pre_deleteGroup', array('run' => true, 'gid' => $group->getGID())); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new BeforeGroupDeletedEvent($group)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'postDelete', function (\OC\Group\Group $group) { | |||
\OC_Hook::emit('OC_User', 'post_deleteGroup', array('gid' => $group->getGID())); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new GroupDeletedEvent($group)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'preAddUser', function (\OC\Group\Group $group, \OC\User\User $user) { | |||
\OC_Hook::emit('OC_Group', 'pre_addToGroup', array('run' => true, 'uid' => $user->getUID(), 'gid' => $group->getGID())); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new BeforeUserAddedEvent($group, $user)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'postAddUser', function (\OC\Group\Group $group, \OC\User\User $user) { | |||
\OC_Hook::emit('OC_Group', 'post_addToGroup', array('uid' => $user->getUID(), 'gid' => $group->getGID())); | |||
//Minimal fix to keep it backward compatible TODO: clean up all the GroupManager hooks | |||
\OC_Hook::emit('OC_User', 'post_addToGroup', array('uid' => $user->getUID(), 'gid' => $group->getGID())); | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new UserAddedEvent($group, $user)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'preRemoveUser', function (\OC\Group\Group $group, \OC\User\User $user) { | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new BeforeUserRemovedEvent($group, $user)); | |||
}); | |||
$groupManager->listen('\OC\Group', 'postRemoveUser', function (\OC\Group\Group $group, \OC\User\User $user) { | |||
/** @var IEventDispatcher $dispatcher */ | |||
$dispatcher = $this->query(IEventDispatcher::class); | |||
$dispatcher->dispatchTyped(new UserRemovedEvent($group, $user)); | |||
}); | |||
return $groupManager; | |||
}); |
@@ -0,0 +1,55 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class BeforeGroupCreatedEvent extends Event { | |||
/** @var string */ | |||
private $name; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(string $name) { | |||
parent::__construct(); | |||
$this->name = $name; | |||
} | |||
/** | |||
* @return string | |||
* @since 18.0.0 | |||
*/ | |||
public function getName(): string { | |||
return $this->name; | |||
} | |||
} |
@@ -0,0 +1,55 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class BeforeGroupDeletedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
use OCP\IUser; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class BeforeUserAddedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/*** @var IUser */ | |||
private $user; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group, IUser $user) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
$this->user = $user; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
/** | |||
* @return IUser | |||
* @since 18.0.0 | |||
*/ | |||
public function getUser(): IUser { | |||
return $this->user; | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
use OCP\IUser; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class BeforeUserRemovedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/*** @var IUser */ | |||
private $user; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group, IUser $user) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
$this->user = $user; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
/** | |||
* @return IUser | |||
* @since 18.0.0 | |||
*/ | |||
public function getUser(): IUser { | |||
return $this->user; | |||
} | |||
} |
@@ -0,0 +1,55 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class GroupCreatedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
} |
@@ -0,0 +1,55 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class GroupDeletedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
use OCP\IUser; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class UserAddedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/*** @var IUser */ | |||
private $user; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group, IUser $user) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
$this->user = $user; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
/** | |||
* @return IUser | |||
* @since 18.0.0 | |||
*/ | |||
public function getUser(): IUser { | |||
return $this->user; | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OCP\Group\Events; | |||
use OCP\EventDispatcher\Event; | |||
use OCP\IGroup; | |||
use OCP\IUser; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
class UserRemovedEvent extends Event { | |||
/** @var IGroup */ | |||
private $group; | |||
/*** @var IUser */ | |||
private $user; | |||
/** | |||
* @since 18.0.0 | |||
*/ | |||
public function __construct(IGroup $group, IUser $user) { | |||
parent::__construct(); | |||
$this->group = $group; | |||
$this->user = $user; | |||
} | |||
/** | |||
* @return IGroup | |||
* @since 18.0.0 | |||
*/ | |||
public function getGroup(): IGroup { | |||
return $this->group; | |||
} | |||
/** | |||
* @return IUser | |||
* @since 18.0.0 | |||
*/ | |||
public function getUser(): IUser { | |||
return $this->user; | |||
} | |||
} |