protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $sfGuardUsers = sfFacebook::getGuardAdapter()->getNonRegisteredUsers(); $this->logSection('info', count($sfGuardUsers) . " non registered users in your database"); $chunks = array_chunk($sfGuardUsers, 50); $num_registered = 0; foreach ($chunks as $chunk) { // Call to facebook API $num_registered += sfFacebookConnect::registerUsers($chunk); $this->logSection('do', $num_registered . " registered."); } }
function run_facebook_register_users($task, $args) { if (!count($args)) { throw new Exception('You must provide an application.'); } $app = $args[0]; define('SF_ROOT_DIR', sfConfig::get('sf_root_dir')); define('SF_APP', $app); require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php'; sfContext::getInstance(); $sfGuardUsers = sfFacebookConnect::getNonRegisteredUsers(); echo count($sfGuardUsers) . " non registered users in your database\n"; $chunks = array_chunk($sfGuardUsers, 50); $num_registered = 0; foreach ($chunks as $chunk) { $num_registered += sfFacebookConnect::registerUsers($chunk); echo $num_registered . " registered.\n"; } }
/** * Creates an empty sfGuardUser with profile field Facebook UID set * * @param Integer $facebook_uid * @return sfGuardUser * @author fabriceb * @since 2009-05-17 * @since 2009-08-11 ORM-agnostic version */ public function createSfGuardUserWithFacebookUidAndCon($facebook_uid, $con) { $sfGuardUser = new sfGuardUser(); $sfGuardUser->setUsername('Facebook_' . $facebook_uid); $this->setUserFacebookUid($sfGuardUser, $facebook_uid); sfFacebookConnect::newSfGuardConnectionHook($sfGuardUser, $facebook_uid); // Save them into the database using a transaction to ensure a Facebook sfGuardUser cannot be stored without its facebook uid try { if (method_exists($con, 'begin')) { $con->begin(); } else { $con->beginTransaction(); } $sfGuardUser->save(); $sfGuardUser->getProfile()->save(); $con->commit(); } catch (Exception $e) { $con->rollback(); throw $e; } $this->setDefaultPermissions($sfGuardUser); return $sfGuardUser; }
/** * gets a sfGuardUser using the facebook_uid column of his Profile class or his email_hash * * @param Integer $facebook_uid * @param boolean $isActive * @return sfGuardUser * @author fabriceb * @since 2009-05-17 */ public function getSfGuardUserByFacebookUid($facebook_uid, $isActive = true) { $sfGuardUser = self::retrieveSfGuardUserByFacebookUid($facebook_uid, $isActive); if (!$sfGuardUser instanceof sfGuardUser) { if (sfConfig::get('sf_logging_enabled')) { sfContext::getInstance()->getLogger()->info('{sfFacebookConnect} No user exists with current facebook_uid'); } $sfGuardUser = sfFacebookConnect::getSfGuardUserByFacebookEmail($facebook_uid, $isActive); } return $sfGuardUser; }
} catch (Exception $e) { $con->rollback(); throw $e; } $sfGuardUser->delete(); $t->diag('sfFacebook::getGuardAdapter()->getSfGuardUserByEmailHashes Test'); $sfGuardUser = new sfGuardUser(); $sfGuardUser->setUsername('test'); sfFacebook::getGuardAdapter()->setUserProfileProperty($sfGuardUser, 'email_hash', sfFacebookConnect::getEmailHash('*****@*****.**')); try { $con = Doctrine::getConnectionByTableName('sfGuardUser'); $con->beginTransaction(); $sfGuardUser->save(); $sfGuardUser->getProfile()->save(); $con->commit(); $t->is(sfFacebook::getGuardAdapter()->getSfGuardUserByEmailHashes(array('trucmuche', sfFacebookConnect::getEmailHash('*****@*****.**')))->getUsername(), 'test'); } catch (Exception $e) { $con->rollback(); throw $e; } $sfGuardUser->delete(); $t->diag('sfFacebook::getGuardAdapter()->createSfGuardUserWithFacebookUid Test'); sfFacebook::getGuardAdapter()->createSfGuardUserWithFacebookUid(9999999999.0); $sfGuardUser = sfFacebook::getGuardAdapter()->getSfGuardUserByFacebookUid(9999999999.0); $t->is($sfGuardUser->getUsername(), 'Facebook_9999999999'); $sfGuardUser->delete(); $t->diag('sfFacebook::getGuardAdapter()->setDefaultPermissions Test'); $permission = new sfGuardPermission(); $permission->setName('member'); $permission->save(); sfConfig::set('app_facebook_connect_user_permissions', array('member'));