1818use OCP \IUserManager ;
1919use OCP \L10N \IFactory ;
2020use OCP \Security \ISecureRandom ;
21+ use Psr \Log \LoggerInterface ;
2122
2223class TokenService {
2324 public function __construct (
2425 private IProvider $ tokenProvider ,
2526 private ISecureRandom $ random ,
2627 private EphemeralTokenMapper $ tokenMapper ,
28+ private LoggerInterface $ logger ,
2729 private ITimeFactory $ time ,
2830 private IFactory $ l10nFactory ,
2931 private IUserManager $ userManager ,
@@ -39,7 +41,7 @@ public function __construct(
3941 *
4042 * @param WebhookListener $webhookListener
4143 * @param ?string $triggerUserId the user that triggered the webhook call
42- * @return array{user_ids?:array<string, string>,user_roles?:array{owner?:array<string,string>,trigger?:array<string,string>}}
44+ * @return array{user_ids?:list< string>,user_roles?:array{owner?:array<string,string>,trigger?:array<string,string>}}
4345 */
4446 public function getTokens (WebhookListener $ webhookListener , ?string $ triggerUserId ): array {
4547 $ tokens = [
@@ -49,7 +51,13 @@ public function getTokens(WebhookListener $webhookListener, ?string $triggerUser
4951 $ tokenNeeded = $ webhookListener ->getTokenNeeded ();
5052 if (isset ($ tokenNeeded ['user_ids ' ])) {
5153 foreach ($ tokenNeeded ['user_ids ' ] as $ userId ) {
52- $ tokens ['user_ids ' ][$ userId ] = $ this ->createEphemeralToken ($ userId );
54+ try {
55+ $ tokens ['user_ids ' ][$ userId ] = $ this ->createEphemeralToken ($ userId );
56+ }
57+ catch (\Exception $ e ){
58+ $ this ->logger ->error ('Webhook token creation for user ' . $ userId . ' failed: ' . $ e ->getMessage (), ['exception ' => $ e ]);
59+ }
60+
5361 }
5462 }
5563 if (isset ($ tokenNeeded ['user_roles ' ])) {
@@ -74,6 +82,9 @@ public function getTokens(WebhookListener $webhookListener, ?string $triggerUser
7482 $ triggerUserId => $ this ->createEphemeralToken ($ triggerUserId )
7583 ];
7684 break ;
85+ default :
86+ $ this ->logger ->error ('Webhook token creation for user role ' . $ function . ' not defined. ' . $ e ->getMessage (), ['exception ' => $ e ]);
87+
7788 }
7889 }
7990 }
0 commit comments