Beispiel #1
0
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
Beispiel #2
0
 public function index($params)
 {
     //	init
     if (OW::getUser()->isAuthenticated()) {
         $this->redirect(OW_URL_HOME);
         //throw new AuthenticateException();
     }
     if (!isset($params['service']) || !strlen(trim($params['service']))) {
         $this->redirect(OW_URL_HOME);
         //throw new Redirect404Exception();
     }
     $oBridge = YNSOCIALCONNECT_CLASS_SocialBridge::getInstance();
     //	process
     $sService = isset($params['service']) ? strtolower($params['service']) : null;
     $type = 'bridge';
     $sIdentity = null;
     $data = NULL;
     if ($oBridge->hasProvider($sService)) {
         //	process Facebook, Twitter, LinkedIn
         $profile = null;
         //check enable API
         $clientConfig = YNSOCIALBRIDGE_BOL_ApisettingService::getInstance()->getConfig($sService);
         if ($clientConfig) {
             $core = new YNSOCIALBRIDGE_CLASS_Core();
             $oProvider = $core->getInstance($sService);
             $values = array('service' => $sService, 'userId' => OW::getUser()->getId());
             $tokenDto = $oProvider->getToken($values);
             if (!empty($_SESSION['socialbridge_session'][$sService])) {
                 try {
                     $profile = $oProvider->getOwnerInfo($_SESSION['socialbridge_session'][$sService]);
                 } catch (Exception $e) {
                     $profile = null;
                 }
             } else {
                 if ($tokenDto) {
                     $profile = $oProvider->getOwnerInfo(array('access_token' => $tokenDto->accessToken, 'secret_token' => $tokenDto->secretToken, 'user_id' => $tokenDto->uid));
                 }
             }
             //
             if ($profile) {
                 $sIdentity = isset($profile['identity']) ? $profile['identity'] : null;
                 ////	filter data
                 $profile = YNSOCIALCONNECT_CLASS_SocialConnect::getInstance()->filterProfile($profile, $sService);
                 $data = $profile;
             }
         }
     } else {
         //	process with other services
         $type = 'not_bridge';
         $sIdentity = isset($_REQUEST['identity']) ? $_REQUEST['identity'] : null;
         $data = $_REQUEST;
     }
     $provider = YNSOCIALCONNECT_BOL_ServicesService::getInstance()->getProvider($sService);
     $aUser = YNSOCIALCONNECT_BOL_AgentsService::getInstance()->getUserByIdentityAndService($sIdentity, $sService, $provider->id, $data);
     $sUrlRedirect = '';
     if (NULL == $aUser && NULL == $sIdentity) {
         if ($oBridge->hasProvider($sService)) {
             $type = 'close_not_loading';
             $this->assign('type', $type);
             $this->assign('sUrlRedirect', $sUrlRedirect);
         }
     }
     if ($aUser) {
         //	login again
         //	logining which happen in YNSOCIALCONNECT_BOL_AgentsDao after execute checkExistingAgent
         //	now, redirect by url in session
         // @formatter:off
         if (isset($_SESSION['ynsc_session']) && isset($_SESSION['ynsc_session']['urlRedirect']) && strlen(trim($_SESSION['ynsc_session']['urlRedirect'])) > 0) {
             $sUrlRedirect = $_SESSION['ynsc_session']['urlRedirect'];
         } else {
             $sUrlRedirect = OW_URL_HOME;
         }
         // @formatter:on
         //	update login statistic
         YNSOCIALCONNECT_BOL_ServicesService::getInstance()->updateStatistics($sService, 'login');
     } else {
         //	sign up now
         //	saved data to session
         try {
             OW::getSession()->set(self::SESSION_SIGNUP_DATA, array('service' => $sService, 'identity' => $sIdentity, 'user' => $data));
         } catch (Exception $e) {
         }
         $sUrlRedirect = OW::getRouter()->urlForRoute('base_join');
         //	mapping profile in session
         $questions = $this->__mappingProfile($data, $sService);
         //	update later signup statistic in quick signup
         //	check existed user by email
         $checkExist = false;
         $checkEmail = false;
         if (isset($data['email'])) {
             $email = $data['email'];
             $aUser = BOL_UserService::getInstance()->findByEmail($email);
             if ($aUser) {
                 //	redirect to synchronize page
                 $sUrlRedirect = OW::getRouter()->urlFor('YNSOCIALCONNECT_CTRL_UserSync', 'index');
                 $checkExist = true;
             }
             if ($data['email']) {
                 $checkEmail = true;
             }
         }
         $plugin = OW::getPluginManager()->getPlugin('ynsocialconnect');
         $key = strtolower($plugin->getKey());
         if (!OW::getConfig()->getValue($key, 'signup_mode') && !$checkExist && $checkEmail && $questions['username']) {
             $username = $questions['username'];
             $password = uniqid();
             $user = BOL_UserService::getInstance()->createUser($username, $password, $questions['email'], null, true);
             BOL_QuestionService::getInstance()->saveQuestionsData(array_filter($questions), $user->id);
             OW_User::getInstance()->login($user->id);
             $event = new OW_Event(OW_EventManager::ON_USER_REGISTER, array('userId' => $user->id, 'quick_signup' => true));
             OW::getEventManager()->trigger($event);
             $sUrlRedirect = OW_URL_HOME;
         }
     }
     $this->assign('type', $type);
     $this->assign('sUrlRedirect', $sUrlRedirect);
     // 	end
 }
Beispiel #3
0
 protected function userAutoLogin()
 {
     if (OW::getSession()->isKeySet('no_autologin')) {
         OW::getSession()->delete('no_autologin');
         return;
     }
     if (!empty($_COOKIE['ow_login']) && !OW::getUser()->isAuthenticated()) {
         $id = BOL_UserService::getInstance()->findUserIdByCookie(trim($_COOKIE['ow_login']));
         if (!empty($id)) {
             OW_User::getInstance()->login($id);
             $loginCookie = BOL_UserService::getInstance()->findLoginCookieByUserId($id);
             setcookie('ow_login', $loginCookie->getCookie(), time() + 86400 * 7, '/', null, null, true);
         }
     }
 }
Beispiel #4
0
 /**
  * Returns current web user object.
  *
  * @return OW_User
  */
 public static function getUser()
 {
     return OW_User::getInstance();
 }
Beispiel #5
0
 public function queueProcess()
 {
     $queues = YNSOCIALBRIDGE_BOL_QueueService::getInstance()->getAllQueues();
     $core = new YNSOCIALBRIDGE_CLASS_Core();
     foreach ($queues as $queue) {
         switch ($queue->type) {
             case 'sendInvite':
                 $extra_params = unserialize($queue->extraParams);
                 $token = YNSOCIALBRIDGE_BOL_TokenService::getInstance()->findById($queue->tokenId);
                 $obj = $core->getInstance($queue->service);
                 $params['list'] = $extra_params['list'];
                 $params['link'] = $extra_params['link'];
                 $params['message'] = $extra_params['message'];
                 $params['uid'] = $token->uid;
                 $params['user_id'] = $queue->userId;
                 $params['access_token'] = $token->accessToken;
                 $params['secret_token'] = $token->secretToken;
                 echo ucfirst($queue->service) . ": " . $token->uid . ": Send invite successfully! ";
                 if ($obj->sendInvites($params)) {
                     echo " <br/>  ";
                     YNSOCIALBRIDGE_BOL_QueueService::getInstance()->delete($queue);
                 }
                 break;
             case 'getFeed':
                 $configs = OW::getConfig()->getValues('ynsocialstream');
                 if (isset($configs['get_feed_cron']) && $configs['get_feed_cron']) {
                     $service = $queue->service;
                     $token = YNSOCIALBRIDGE_BOL_TokenService::getInstance()->findById($queue->tokenId);
                     //get user & check authorized get feed
                     OW_User::getInstance()->login($token->userId);
                     if (!OW::getUser()->isAuthorized('ynsocialstream', 'get_feed')) {
                         break;
                     }
                     //check preferences
                     if (!$configs['enable_' . $service . '_' . $token->userId]) {
                         break;
                     }
                     if ($token && isset($configs['cron_job_user_' . $token->userId]) && $configs['cron_job_user_' . $token->userId]) {
                         $uid = $token->uid;
                         //get Feeds
                         $obj = $core->getInstance($service);
                         $feedService = YNSOCIALSTREAM_BOL_SocialstreamFeedService::getInstance();
                         $feedLast = $feedService->getFeedLast($service, $uid);
                         $arr_token = array('access_token' => $token->accessToken, 'secret_token' => $token->secretToken);
                         $arr_token['lastFeedTimestamp'] = 0;
                         if ($feedLast) {
                             $arr_token['lastFeedTimestamp'] = $feedLast['timestamp'];
                         }
                         $arr_token['limit'] = $configs['max_' . $service . '_get_feed'];
                         $arr_token['uid'] = $uid;
                         $arr_token['type'] = 'user';
                         $activities = $obj->getActivity($arr_token);
                         if ($activities != null) {
                             $obj->insertFeeds(array('activities' => $activities, 'user_id' => $token->userId, 'timestamp' => $arr_token['lastFeedTimestamp'], 'access_token' => $token->accessToken, 'secret_token' => $token->secretToken, 'uid' => $uid));
                         }
                         $queue->lastRun = date('Y-m-d H:i:s');
                         YNSOCIALBRIDGE_BOL_QueueService::getInstance()->save($queue);
                         echo ucfirst($service) . ": " . $token->uid . ": Get feed successfully!";
                         echo " <br/>  ";
                     }
                     OW_User::getInstance()->logout();
                 }
                 break;
             default:
                 break;
         }
     }
 }