/** * @param PCHelperSocialAdapter $adapter * @return PCModelUserOauth */ public static function createUserForOauthServiceWithAdapter($adapter){ $values = $adapter->getValuesForCreatingUser(); $mapper = PCModelUser::getMapper(); //creo il 'vero' utente nel db if (PCModelManager::insertObject($mapper, $values) == FALSE) return NULL; $instances = PCModelManager::fetchModelObjectInstances($mapper, $values); if(count($instances) == 0) return NULL; $user = $instances[0]; $user_identifier = $user->getIdentifier(); $token = $adapter->getTokenValue(); $secret = $adapter->getSecretValue(); $service_u_id = $adapter->getServiceUserIdentifier(); $service_type = $adapter->getServiceType(); if(PCMapperUserOauth::insertUserOauth($service_type, $service_u_id, $token, $secret, $user_identifier)){ $adapter->addOauthInfoToUser($user); if (PCConfigManager::sharedManager()->getBoolValue('NOTIF_ON_REGISTER')) { $email = $values['email']; $surname = $values['surname']; $name = $values['name']; $username = $values['username']; $serv = $adapter->getServiceName(); PCHelperNotificationSender::sendPushNotificationToAdmin("User Registered", "uname: $username Name: $name Sur: $surname mail: $email service_id: $service_u_id via: $serv"); } return $user; } return NULL; }
/** * * @param PCHelperSocialAdapter $adapter * @return boolean */ public function authorizeOauthUser($adapter){ $user = PCMapperUserOauth::getOauthUserWithIdentifier($adapter); if(isset($user) == FALSE && $adapter->hasUsername()){ $user = PCMapperUserOauth::createUserForOauthServiceWithAdapter($adapter); } return $this->authorizeUser($user); }
/** * @return array */ public function getOauthStore() { static $loaded = FALSE; if($this->oauth_store == NULL && $loaded == FALSE){ error_log("AAA"); $this->oauth_store = PCMapperUserOauth::getOauthConfig($this->getIdentifier(), $this->getAccountType()); $loaded = TRUE; } return $this->oauth_store; }