3232namespace OC ;
3333
3434use OC \Hooks \PublicEmitter ;
35+ use OCP \EventDispatcher \IEventDispatcher ;
36+ use OCP \Group \Events \SubAdminAddedEvent ;
37+ use OCP \Group \Events \SubAdminRemovedEvent ;
3538use OCP \Group \ISubAdmin ;
3639use OCP \IDBConnection ;
3740use OCP \IGroup ;
@@ -50,17 +53,22 @@ class SubAdmin extends PublicEmitter implements ISubAdmin {
5053 /** @var IDBConnection */
5154 private $ dbConn ;
5255
56+ /** @var IEventDispatcher */
57+ private $ eventDispatcher ;
58+
5359 /**
5460 * @param IUserManager $userManager
5561 * @param IGroupManager $groupManager
5662 * @param IDBConnection $dbConn
5763 */
5864 public function __construct (IUserManager $ userManager ,
5965 IGroupManager $ groupManager ,
60- IDBConnection $ dbConn ) {
66+ IDBConnection $ dbConn ,
67+ IEventDispatcher $ eventDispatcher ) {
6168 $ this ->userManager = $ userManager ;
6269 $ this ->groupManager = $ groupManager ;
6370 $ this ->dbConn = $ dbConn ;
71+ $ this ->eventDispatcher = $ eventDispatcher ;
6472
6573 $ this ->userManager ->listen ('\OC\User ' , 'postDelete ' , function ($ user ) {
6674 $ this ->post_deleteUser ($ user );
@@ -85,8 +93,10 @@ public function createSubAdmin(IUser $user, IGroup $group): void {
8593 ])
8694 ->execute ();
8795
96+ /** @depreacted 21.0.0 - use type SubAdminAddedEvent instead */
8897 $ this ->emit ('\OC\SubAdmin ' , 'postCreateSubAdmin ' , [$ user , $ group ]);
89- \OC_Hook::emit ("OC_SubAdmin " , "post_createSubAdmin " , ["gid " => $ group ->getGID ()]);
98+ $ event = new SubAdminAddedEvent ($ group , $ user );
99+ $ this ->eventDispatcher ->dispatchTyped ($ event );
90100 }
91101
92102 /**
@@ -102,8 +112,10 @@ public function deleteSubAdmin(IUser $user, IGroup $group): void {
102112 ->andWhere ($ qb ->expr ()->eq ('uid ' , $ qb ->createNamedParameter ($ user ->getUID ())))
103113 ->execute ();
104114
115+ /** @depreacted 21.0.0 - use type SubAdminRemovedEvent instead */
105116 $ this ->emit ('\OC\SubAdmin ' , 'postDeleteSubAdmin ' , [$ user , $ group ]);
106- \OC_Hook::emit ("OC_SubAdmin " , "post_deleteSubAdmin " , ["gid " => $ group ->getGID ()]);
117+ $ event = new SubAdminRemovedEvent ($ group , $ user );
118+ $ this ->eventDispatcher ->dispatchTyped ($ event );
107119 }
108120
109121 /**
0 commit comments