diff options
Diffstat (limited to 'mayor-orig/www/include/share/facebook/Helpers')
5 files changed, 0 insertions, 688 deletions
diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php deleted file mode 100644 index 7f3466ff..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -/** - * Class FacebookCanvasLoginHelper - * - * @package Facebook - */ -class FacebookCanvasHelper extends FacebookSignedRequestFromInputHelper -{ - /** - * Returns the app data value. - * - * @return mixed|null - */ - public function getAppData() - { - return $this->signedRequest ? $this->signedRequest->get('app_data') : null; - } - - /** - * Get raw signed request from POST. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->getRawSignedRequestFromPost() ?: null; - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php deleted file mode 100644 index 01a76b8b..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -/** - * Class FacebookJavaScriptLoginHelper - * - * @package Facebook - */ -class FacebookJavaScriptHelper extends FacebookSignedRequestFromInputHelper -{ - /** - * Get raw signed request from the cookie. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->getRawSignedRequestFromCookie(); - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php deleted file mode 100644 index da2c356c..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\FacebookApp; -use Facebook\FacebookClient; - -/** - * Class FacebookPageTabHelper - * - * @package Facebook - */ -class FacebookPageTabHelper extends FacebookCanvasHelper -{ - /** - * @var array|null - */ - protected $pageData; - - /** - * Initialize the helper and process available signed request data. - * - * @param FacebookApp $app The FacebookApp entity. - * @param FacebookClient $client The client to make HTTP requests. - * @param string|null $graphVersion The version of Graph to use. - */ - public function __construct(FacebookApp $app, FacebookClient $client, $graphVersion = null) - { - parent::__construct($app, $client, $graphVersion); - - if (!$this->signedRequest) { - return; - } - - $this->pageData = $this->signedRequest->get('page'); - } - - /** - * Returns a value from the page data. - * - * @param string $key - * @param mixed|null $default - * - * @return mixed|null - */ - public function getPageData($key, $default = null) - { - if (isset($this->pageData[$key])) { - return $this->pageData[$key]; - } - - return $default; - } - - /** - * Returns true if the user is an admin. - * - * @return boolean - */ - public function isAdmin() - { - return $this->getPageData('admin') === true; - } - - /** - * Returns the page id if available. - * - * @return string|null - */ - public function getPageId() - { - return $this->getPageData('id'); - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php deleted file mode 100644 index 3240ba81..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php +++ /dev/null @@ -1,333 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\Authentication\AccessToken; -use Facebook\Authentication\OAuth2Client; -use Facebook\Exceptions\FacebookSDKException; -use Facebook\PersistentData\FacebookSessionPersistentDataHandler; -use Facebook\PersistentData\PersistentDataInterface; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorFactory; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface; -use Facebook\Url\FacebookUrlDetectionHandler; -use Facebook\Url\FacebookUrlManipulator; -use Facebook\Url\UrlDetectionInterface; - -/** - * Class FacebookRedirectLoginHelper - * - * @package Facebook - */ -class FacebookRedirectLoginHelper -{ - /** - * @const int The length of CSRF string to validate the login link. - */ - const CSRF_LENGTH = 32; - - /** - * @var OAuth2Client The OAuth 2.0 client service. - */ - protected $oAuth2Client; - - /** - * @var UrlDetectionInterface The URL detection handler. - */ - protected $urlDetectionHandler; - - /** - * @var PersistentDataInterface The persistent data handler. - */ - protected $persistentDataHandler; - - /** - * @var PseudoRandomStringGeneratorInterface The cryptographically secure pseudo-random string generator. - */ - protected $pseudoRandomStringGenerator; - - /** - * @param OAuth2Client $oAuth2Client The OAuth 2.0 client service. - * @param PersistentDataInterface|null $persistentDataHandler The persistent data handler. - * @param UrlDetectionInterface|null $urlHandler The URL detection handler. - * @param PseudoRandomStringGeneratorInterface|null $prsg The cryptographically secure pseudo-random string generator. - */ - public function __construct(OAuth2Client $oAuth2Client, PersistentDataInterface $persistentDataHandler = null, UrlDetectionInterface $urlHandler = null, PseudoRandomStringGeneratorInterface $prsg = null) - { - $this->oAuth2Client = $oAuth2Client; - $this->persistentDataHandler = $persistentDataHandler ?: new FacebookSessionPersistentDataHandler(); - $this->urlDetectionHandler = $urlHandler ?: new FacebookUrlDetectionHandler(); - $this->pseudoRandomStringGenerator = PseudoRandomStringGeneratorFactory::createPseudoRandomStringGenerator($prsg); - } - - /** - * Returns the persistent data handler. - * - * @return PersistentDataInterface - */ - public function getPersistentDataHandler() - { - return $this->persistentDataHandler; - } - - /** - * Returns the URL detection handler. - * - * @return UrlDetectionInterface - */ - public function getUrlDetectionHandler() - { - return $this->urlDetectionHandler; - } - - /** - * Returns the cryptographically secure pseudo-random string generator. - * - * @return PseudoRandomStringGeneratorInterface - */ - public function getPseudoRandomStringGenerator() - { - return $this->pseudoRandomStringGenerator; - } - - /** - * Stores CSRF state and returns a URL to which the user should be sent to in order to continue the login process with Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param array $params An array of parameters to generate URL. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - private function makeUrl($redirectUrl, array $scope, array $params = [], $separator = '&') - { - $state = $this->persistentDataHandler->get('state') ?: $this->pseudoRandomStringGenerator->getPseudoRandomString(static::CSRF_LENGTH); - $this->persistentDataHandler->set('state', $state); - - return $this->oAuth2Client->getAuthorizationUrl($redirectUrl, $state, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getLoginUrl($redirectUrl, array $scope = [], $separator = '&') - { - return $this->makeUrl($redirectUrl, $scope, [], $separator); - } - - /** - * Returns the URL to send the user in order to log out of Facebook. - * - * @param AccessToken|string $accessToken The access token that will be logged out. - * @param string $next The url Facebook should redirect the user to after a successful logout. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - * - * @throws FacebookSDKException - */ - public function getLogoutUrl($accessToken, $next, $separator = '&') - { - if (!$accessToken instanceof AccessToken) { - $accessToken = new AccessToken($accessToken); - } - - if ($accessToken->isAppAccessToken()) { - throw new FacebookSDKException('Cannot generate a logout URL with an app access token.', 722); - } - - $params = [ - 'next' => $next, - 'access_token' => $accessToken->getValue(), - ]; - - return 'https://www.facebook.com/logout.php?' . http_build_query($params, null, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with permission(s) to be re-asked. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReRequestUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'rerequest']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with user to be re-authenticated. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReAuthenticationUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'reauthenticate']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Takes a valid code from a login redirect, and returns an AccessToken entity. - * - * @param string|null $redirectUrl The redirect URL. - * - * @return AccessToken|null - * - * @throws FacebookSDKException - */ - public function getAccessToken($redirectUrl = null) - { - if (!$code = $this->getCode()) { - return null; - } - - $this->validateCsrf(); - $this->resetCsrf(); - - $redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl(); - // At minimum we need to remove the 'state' and 'code' params - $redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['code', 'state']); - - return $this->oAuth2Client->getAccessTokenFromCode($code, $redirectUrl); - } - - /** - * Validate the request against a cross-site request forgery. - * - * @throws FacebookSDKException - */ - protected function validateCsrf() - { - $state = $this->getState(); - if (!$state) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required GET param "state" missing.'); - } - $savedState = $this->persistentDataHandler->get('state'); - if (!$savedState) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required param "state" missing from persistent data.'); - } - - if (\hash_equals($savedState, $state)) { - return; - } - - throw new FacebookSDKException('Cross-site request forgery validation failed. The "state" param from the URL and session do not match.'); - } - - /** - * Resets the CSRF so that it doesn't get reused. - */ - private function resetCsrf() - { - $this->persistentDataHandler->set('state', null); - } - - /** - * Return the code. - * - * @return string|null - */ - protected function getCode() - { - return $this->getInput('code'); - } - - /** - * Return the state. - * - * @return string|null - */ - protected function getState() - { - return $this->getInput('state'); - } - - /** - * Return the error code. - * - * @return string|null - */ - public function getErrorCode() - { - return $this->getInput('error_code'); - } - - /** - * Returns the error. - * - * @return string|null - */ - public function getError() - { - return $this->getInput('error'); - } - - /** - * Returns the error reason. - * - * @return string|null - */ - public function getErrorReason() - { - return $this->getInput('error_reason'); - } - - /** - * Returns the error description. - * - * @return string|null - */ - public function getErrorDescription() - { - return $this->getInput('error_description'); - } - - /** - * Returns a value from a GET param. - * - * @param string $key - * - * @return string|null - */ - private function getInput($key) - { - return isset($_GET[$key]) ? $_GET[$key] : null; - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php deleted file mode 100644 index 4044da10..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php +++ /dev/null @@ -1,166 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\Facebook; -use Facebook\FacebookApp; -use Facebook\FacebookClient; -use Facebook\SignedRequest; -use Facebook\Authentication\AccessToken; -use Facebook\Authentication\OAuth2Client; - -/** - * Class FacebookSignedRequestFromInputHelper - * - * @package Facebook - */ -abstract class FacebookSignedRequestFromInputHelper -{ - /** - * @var SignedRequest|null The SignedRequest entity. - */ - protected $signedRequest; - - /** - * @var FacebookApp The FacebookApp entity. - */ - protected $app; - - /** - * @var OAuth2Client The OAuth 2.0 client service. - */ - protected $oAuth2Client; - - /** - * Initialize the helper and process available signed request data. - * - * @param FacebookApp $app The FacebookApp entity. - * @param FacebookClient $client The client to make HTTP requests. - * @param string|null $graphVersion The version of Graph to use. - */ - public function __construct(FacebookApp $app, FacebookClient $client, $graphVersion = null) - { - $this->app = $app; - $graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - $this->oAuth2Client = new OAuth2Client($this->app, $client, $graphVersion); - - $this->instantiateSignedRequest(); - } - - /** - * Instantiates a new SignedRequest entity. - * - * @param string|null - */ - public function instantiateSignedRequest($rawSignedRequest = null) - { - $rawSignedRequest = $rawSignedRequest ?: $this->getRawSignedRequest(); - - if (!$rawSignedRequest) { - return; - } - - $this->signedRequest = new SignedRequest($this->app, $rawSignedRequest); - } - - /** - * Returns an AccessToken entity from the signed request. - * - * @return AccessToken|null - * - * @throws \Facebook\Exceptions\FacebookSDKException - */ - public function getAccessToken() - { - if ($this->signedRequest && $this->signedRequest->hasOAuthData()) { - $code = $this->signedRequest->get('code'); - $accessToken = $this->signedRequest->get('oauth_token'); - - if ($code && !$accessToken) { - return $this->oAuth2Client->getAccessTokenFromCode($code); - } - - $expiresAt = $this->signedRequest->get('expires', 0); - - return new AccessToken($accessToken, $expiresAt); - } - - return null; - } - - /** - * Returns the SignedRequest entity. - * - * @return SignedRequest|null - */ - public function getSignedRequest() - { - return $this->signedRequest; - } - - /** - * Returns the user_id if available. - * - * @return string|null - */ - public function getUserId() - { - return $this->signedRequest ? $this->signedRequest->getUserId() : null; - } - - /** - * Get raw signed request from input. - * - * @return string|null - */ - abstract public function getRawSignedRequest(); - - /** - * Get raw signed request from POST input. - * - * @return string|null - */ - public function getRawSignedRequestFromPost() - { - if (isset($_POST['signed_request'])) { - return $_POST['signed_request']; - } - - return null; - } - - /** - * Get raw signed request from cookie set from the Javascript SDK. - * - * @return string|null - */ - public function getRawSignedRequestFromCookie() - { - if (isset($_COOKIE['fbsr_' . $this->app->getId()])) { - return $_COOKIE['fbsr_' . $this->app->getId()]; - } - - return null; - } -} |