5050use OCP \Notification \IManager as INotificationManager ;
5151use OCP \Share ;
5252use OCP \Share \Exceptions \ShareNotFound ;
53+ use OCP \Share \IManager ;
5354use OCP \Share \IShare ;
5455use OCP \Util ;
5556
@@ -70,6 +71,9 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
7071 /** @var IUserManager */
7172 private $ userManager ;
7273
74+ /** @var IManager */
75+ private $ shareManager ;
76+
7377 /** @var ICloudIdManager */
7478 private $ cloudIdManager ;
7579
@@ -102,6 +106,7 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
102106 * @param AddressHandler $addressHandler
103107 * @param ILogger $logger
104108 * @param IUserManager $userManager
109+ * @param IManager $shareManager
105110 * @param ICloudIdManager $cloudIdManager
106111 * @param IActivityManager $activityManager
107112 * @param INotificationManager $notificationManager
@@ -116,6 +121,7 @@ public function __construct(IAppManager $appManager,
116121 AddressHandler $ addressHandler ,
117122 ILogger $ logger ,
118123 IUserManager $ userManager ,
124+ IManager $ shareManager ,
119125 ICloudIdManager $ cloudIdManager ,
120126 IActivityManager $ activityManager ,
121127 INotificationManager $ notificationManager ,
@@ -130,6 +136,7 @@ public function __construct(IAppManager $appManager,
130136 $ this ->addressHandler = $ addressHandler ;
131137 $ this ->logger = $ logger ;
132138 $ this ->userManager = $ userManager ;
139+ $ this ->shareManager = $ shareManager ;
133140 $ this ->cloudIdManager = $ cloudIdManager ;
134141 $ this ->activityManager = $ activityManager ;
135142 $ this ->notificationManager = $ notificationManager ;
@@ -805,6 +812,16 @@ protected function verifyShare(IShare $share, $token) {
805812 return true ;
806813 }
807814
815+ if ($ share ->getShareType () === IShare::TYPE_CIRCLE ) {
816+ try {
817+ $ knownShare = $ this ->shareManager ->getShareByToken ($ token );
818+ if ($ knownShare ->getId () === $ share ->getId ()) {
819+ return true ;
820+ }
821+ } catch (ShareNotFound $ e ) {
822+ }
823+ }
824+
808825 throw new AuthenticationFailedException ();
809826 }
810827
0 commit comments