summaryrefslogtreecommitdiff
path: root/models/google.php
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2014-05-22 12:28:28 -0400
committerFrédéric Guillot <fred@kanboard.net>2014-05-22 12:28:28 -0400
commit2230dd4e6b148346c0ec596b9e3e12996a762ed8 (patch)
treeef99ccde4f8b18592a3fb06a6ec45162c501fe38 /models/google.php
parenta750b8ab2a0cb715da6fd9025a7ec8375db68a4d (diff)
Code refactoring (add autoloader and change files organization)
Diffstat (limited to 'models/google.php')
-rw-r--r--models/google.php153
1 files changed, 0 insertions, 153 deletions
diff --git a/models/google.php b/models/google.php
deleted file mode 100644
index 4f83a41e..00000000
--- a/models/google.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-
-namespace Model;
-
-require_once __DIR__.'/base.php';
-require __DIR__.'/../vendor/OAuth/bootstrap.php';
-
-use \OAuth\Common\Storage\Session;
-use \OAuth\Common\Consumer\Credentials;
-use \OAuth\Common\Http\Uri\UriFactory;
-use \OAuth\ServiceFactory;
-use \OAuth\Common\Http\Exception\TokenResponseException;
-
-/**
- * Google model
- *
- * @package model
- * @author Frederic Guillot
- */
-class Google extends Base
-{
- /**
- * Authenticate a Google user
- *
- * @access public
- * @param string $google_id Google unique id
- * @return boolean
- */
- public function authenticate($google_id)
- {
- $userModel = new User($this->db, $this->event);
- $user = $userModel->getByGoogleId($google_id);
-
- if ($user) {
-
- // Create the user session
- $userModel->updateSession($user);
-
- // Update login history
- $lastLogin = new LastLogin($this->db, $this->event);
- $lastLogin->create(
- LastLogin::AUTH_GOOGLE,
- $user['id'],
- $userModel->getIpAddress(),
- $userModel->getUserAgent()
- );
-
- return true;
- }
-
- return false;
- }
-
- /**
- * Unlink a Google account for a given user
- *
- * @access public
- * @param integer $user_id User id
- * @return boolean
- */
- public function unlink($user_id)
- {
- $userModel = new User($this->db, $this->event);
-
- return $userModel->update(array(
- 'id' => $user_id,
- 'google_id' => '',
- ));
- }
-
- /**
- * Update the user table based on the Google profile information
- *
- * @access public
- * @param integer $user_id User id
- * @param array $profile Google profile
- * @return boolean
- */
- public function updateUser($user_id, array $profile)
- {
- $userModel = new User($this->db, $this->event);
-
- return $userModel->update(array(
- 'id' => $user_id,
- 'google_id' => $profile['id'],
- 'email' => $profile['email'],
- 'name' => $profile['name'],
- ));
- }
-
- /**
- * Get the Google service instance
- *
- * @access public
- * @return \OAuth\OAuth2\Service\Google
- */
- public function getService()
- {
- $uriFactory = new UriFactory();
- $currentUri = $uriFactory->createFromSuperGlobalArray($_SERVER);
- $currentUri->setQuery('controller=user&action=google');
-
- $storage = new Session(false);
-
- $credentials = new Credentials(
- GOOGLE_CLIENT_ID,
- GOOGLE_CLIENT_SECRET,
- $currentUri->getAbsoluteUri()
- );
-
- $serviceFactory = new ServiceFactory();
-
- return $serviceFactory->createService(
- 'google',
- $credentials,
- $storage,
- array('userinfo_email', 'userinfo_profile')
- );
- }
-
- /**
- * Get the authorization URL
- *
- * @access public
- * @return \OAuth\Common\Http\Uri\Uri
- */
- public function getAuthorizationUrl()
- {
- return $this->getService()->getAuthorizationUri();
- }
-
- /**
- * Get Google profile information from the API
- *
- * @access public
- * @param string $code Google authorization code
- * @return bool|array
- */
- public function getGoogleProfile($code)
- {
- try {
-
- $googleService = $this->getService();
- $googleService->requestAccessToken($code);
- return json_decode($googleService->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);
- }
- catch (TokenResponseException $e) {
- return false;
- }
-
- return false;
- }
-}