diff options
Diffstat (limited to 'plugins/FBConnect')
-rw-r--r-- | plugins/FBConnect/FBCLoginGroupNav.php | 22 | ||||
-rw-r--r-- | plugins/FBConnect/FBCSettingsNav.php | 22 | ||||
-rw-r--r-- | plugins/FBConnect/FBC_XDReceiver.php | 11 | ||||
-rw-r--r-- | plugins/FBConnect/FBConnectAuth.php | 75 | ||||
-rw-r--r-- | plugins/FBConnect/FBConnectLogin.php | 4 | ||||
-rw-r--r-- | plugins/FBConnect/FBConnectPlugin.css | 8 | ||||
-rw-r--r-- | plugins/FBConnect/FBConnectPlugin.php | 57 | ||||
-rw-r--r-- | plugins/FBConnect/FBConnectSettings.php | 24 | ||||
-rw-r--r-- | plugins/FBConnect/README | 33 |
9 files changed, 124 insertions, 132 deletions
diff --git a/plugins/FBConnect/FBCLoginGroupNav.php b/plugins/FBConnect/FBCLoginGroupNav.php index 6eb09c3c0..6e12c2040 100644 --- a/plugins/FBConnect/FBCLoginGroupNav.php +++ b/plugins/FBConnect/FBCLoginGroupNav.php @@ -1,6 +1,6 @@ <?php /** - * Laconica, the distributed open-source microblogging tool + * StatusNet, the distributed open-source microblogging tool * * Menu for login group of actions * @@ -20,15 +20,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @category Menu - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Zach Copley <zach@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -38,11 +38,11 @@ require_once INSTALLDIR . '/lib/widget.php'; * Menu for login group of actions * * @category Output - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Zach Copley <zach@controlyourself.ca> + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * * @see Widget */ diff --git a/plugins/FBConnect/FBCSettingsNav.php b/plugins/FBConnect/FBCSettingsNav.php index 8b8411853..29724d6bd 100644 --- a/plugins/FBConnect/FBCSettingsNav.php +++ b/plugins/FBConnect/FBCSettingsNav.php @@ -1,6 +1,6 @@ <?php /** - * Laconica, the distributed open-source microblogging tool + * StatusNet, the distributed open-source microblogging tool * * Menu for login group of actions * @@ -20,15 +20,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @category Menu - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Zach Copley <zach@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -38,11 +38,11 @@ require_once INSTALLDIR . '/lib/widget.php'; * A widget for showing the connect group local nav menu * * @category Output - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Zach Copley <zach@controlyourself.ca> + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * * @see Widget */ diff --git a/plugins/FBConnect/FBC_XDReceiver.php b/plugins/FBConnect/FBC_XDReceiver.php index 57c98b4f1..2bc790d5a 100644 --- a/plugins/FBConnect/FBC_XDReceiver.php +++ b/plugins/FBConnect/FBC_XDReceiver.php @@ -1,6 +1,6 @@ <?php -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -47,9 +47,7 @@ class FBC_XDReceiverAction extends Action header('Expires:'); header('Pragma:'); - $this->startXML('html', - '-//W3C//DTD XHTML 1.0 Strict//EN', - 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); + $this->startXML('html'); $language = $this->getLanguage(); @@ -58,10 +56,7 @@ class FBC_XDReceiverAction extends Action 'lang' => $language)); $this->elementStart('head'); $this->element('title', null, 'cross domain receiver page'); - $this->element('script', - array('src' => - 'http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.debug.js', - 'type' => 'text/javascript'), ''); + $this->script('http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.debug.js'); $this->elementEnd('head'); $this->elementStart('body'); $this->elementEnd('body'); diff --git a/plugins/FBConnect/FBConnectAuth.php b/plugins/FBConnect/FBConnectAuth.php index 3cf9fefc1..647d5def8 100644 --- a/plugins/FBConnect/FBConnectAuth.php +++ b/plugins/FBConnect/FBConnectAuth.php @@ -1,6 +1,6 @@ <?php /** - * Laconica, the distributed open-source microblogging tool + * StatusNet, the distributed open-source microblogging tool * * Plugin to enable Facebook Connect * @@ -20,38 +20,36 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @category Plugin - * @package Laconica - * @author Zach Copley <zach@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ require_once INSTALLDIR . '/plugins/FBConnect/FBConnectPlugin.php'; class FBConnectauthAction extends Action { - var $fbuid = null; var $fb_fields = null; function prepare($args) { parent::prepare($args); - try { + $this->fbuid = getFacebook()->get_loggedin_user(); - $this->fbuid = getFacebook()->get_loggedin_user(); + if ($this->fbuid > 0) { + $this->fb_fields = $this->getFacebookFields($this->fbuid, + array('first_name', 'last_name', 'name')); + } else { + list($proxy, $ip) = common_client_ip(); - if ($this->fbuid > 0) { - $this->fb_fields = $this->getFacebookFields($this->fbuid, - array('first_name', 'last_name', 'name')); - } else { - common_debug("No Facebook User found."); - } + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + "Failed auth attempt, proxy = $proxy, ip = $ip."); - } catch (Exception $e) { - common_log(LOG_WARNING, 'Problem getting Facebook uid: ' . - $e->getMessage()); + $this->clientError(_('You must be logged into Facebook to ' . + 'use Facebook Connect.')); } return true; @@ -69,8 +67,9 @@ class FBConnectauthAction extends Action if (!empty($flink)) { // User already has a linked Facebook account and shouldn't be here - common_debug('There is already a local user (' . $flink->user_id . - ') linked with this Facebook (' . $this->fbuid . ').'); + common_debug('Facebook Connect Plugin - ' . + 'There is already a local user (' . $flink->user_id . + ') linked with this Facebook (' . $this->fbuid . ').'); // We don't want these cookies getFacebook()->clear_cookie_state(); @@ -101,7 +100,8 @@ class FBConnectauthAction extends Action } else if ($this->arg('connect')) { $this->connectNewUser(); } else { - common_debug(print_r($this->args, true), __FILE__); + common_debug('Facebook Connect Plugin - ' . + print_r($this->args, true)); $this->showForm(_('Something weird happened.'), $this->trimmed('newname')); } @@ -211,7 +211,6 @@ class FBConnectauthAction extends Action function createNewUser() { - if (common_config('site', 'closed')) { $this->clientError(_('Registration not allowed.')); return; @@ -238,7 +237,7 @@ class FBConnectauthAction extends Action if (!Validate::string($nickname, array('min_length' => 1, 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { + 'format' => NICKNAME_FMT))) { $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.')); return; } @@ -274,7 +273,8 @@ class FBConnectauthAction extends Action common_set_user($user); common_real_login(true); - common_debug("Registered new user $user->id from Facebook user $this->fbuid"); + common_debug('Facebook Connect Plugin - ' . + "Registered new user $user->id from Facebook user $this->fbuid"); common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)), 303); @@ -292,8 +292,9 @@ class FBConnectauthAction extends Action $user = User::staticGet('nickname', $nickname); - if ($user) { - common_debug("Legit user to connect to Facebook: $nickname"); + if (!empty($user)) { + common_debug('Facebook Connect Plugin - ' . + "Legit user to connect to Facebook: $nickname"); } $result = $this->flinkUser($user->id, $this->fbuid); @@ -303,7 +304,8 @@ class FBConnectauthAction extends Action return; } - common_debug("Connected Facebook user $this->fbuid to local user $user->id"); + common_debug('Facebook Connnect Plugin - ' . + "Connected Facebook user $this->fbuid to local user $user->id"); common_set_user($user); common_real_login(true); @@ -317,12 +319,13 @@ class FBConnectauthAction extends Action $result = $this->flinkUser($user->id, $this->fbuid); - if (!$result) { + if (empty($result)) { $this->serverError(_('Error connecting user to Facebook.')); return; } - common_debug("Connected Facebook user $this->fbuid to local user $user->id"); + common_debug('Facebook Connect Plugin - ' . + "Connected Facebook user $this->fbuid to local user $user->id"); // Return to Facebook connection settings tab common_redirect(common_local_url('FBConnectSettings'), 303); @@ -330,16 +333,18 @@ class FBConnectauthAction extends Action function tryLogin() { - common_debug("Trying Facebook Login..."); + common_debug('Facebook Connect Plugin - ' . + "Trying login for Facebook user $this->fbuid."); $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE); - if ($flink) { + if (!empty($flink)) { $user = $flink->getUser(); if (!empty($user)) { - common_debug("Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)"); + common_debug('Facebook Connect Plugin - ' . + "Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)"); common_set_user($user); common_real_login(true); @@ -348,7 +353,8 @@ class FBConnectauthAction extends Action } else { - common_debug("No flink found for fbuid: $this->fbuid"); + common_debug('Facebook Connect Plugin - ' . + "No flink found for fbuid: $this->fbuid - new user"); $this->showForm(null, $this->bestNewNickname()); } @@ -418,7 +424,7 @@ class FBConnectauthAction extends Action { if (!Validate::string($str, array('min_length' => 1, 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { + 'format' => NICKNAME_FMT))) { return false; } if (!User::allowed_nickname($str)) { @@ -444,7 +450,8 @@ class FBConnectauthAction extends Action return reset($infos); } catch (Exception $e) { - common_log(LOG_WARNING, "Facebook client failure when requesting " . + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + "Facebook client failure when requesting " . join(",", $fields) . " on uid " . $fb_uid . " : ". $e->getMessage()); return null; diff --git a/plugins/FBConnect/FBConnectLogin.php b/plugins/FBConnect/FBConnectLogin.php index 205086cd8..5696d8848 100644 --- a/plugins/FBConnect/FBConnectLogin.php +++ b/plugins/FBConnect/FBConnectLogin.php @@ -1,6 +1,6 @@ <?php /* - * Laconica - a distributed open-source microblogging tool + * StatusNet - a distributed open-source microblogging tool * Copyright (C) 2008, Controlez-Vous, Inc. * * This program is free software: you can redistribute it and/or modify @@ -17,7 +17,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } diff --git a/plugins/FBConnect/FBConnectPlugin.css b/plugins/FBConnect/FBConnectPlugin.css index e52675459..49217bf13 100644 --- a/plugins/FBConnect/FBConnectPlugin.css +++ b/plugins/FBConnect/FBConnectPlugin.css @@ -1,10 +1,10 @@ /** Styles for Facebook logo and Facebook user profile avatar. * - * @package Laconica - * @author Sarven Capadisli <csarven@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Sarven Capadisli <csarven@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ #site_nav_global_primary #nav_fb { diff --git a/plugins/FBConnect/FBConnectPlugin.php b/plugins/FBConnect/FBConnectPlugin.php index 2e32ad198..593b49b4e 100644 --- a/plugins/FBConnect/FBConnectPlugin.php +++ b/plugins/FBConnect/FBConnectPlugin.php @@ -1,6 +1,6 @@ <?php /** - * Laconica, the distributed open-source microblogging tool + * StatusNet, the distributed open-source microblogging tool * * Plugin to enable Facebook Connect * @@ -20,14 +20,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @category Plugin - * @package Laconica - * @author Zach Copley <zach@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -45,10 +45,10 @@ require_once INSTALLDIR . '/plugins/FBConnect/FBC_XDReceiver.php'; * Plugin to enable Facebook Connect * * @category Plugin - * @package Laconica - * @author Zach Copley <zach@controlyourself.ca> + * @package StatusNet + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ class FBConnectPlugin extends Plugin @@ -82,9 +82,7 @@ class FBConnectPlugin extends Plugin $action->extraHeaders(); - $action->startXML('html', - '-//W3C//DTD XHTML 1.0 Strict//EN', - 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); + $action->startXML('html'); $language = $action->getLanguage(); @@ -118,15 +116,13 @@ class FBConnectPlugin extends Plugin // but we actually do, for IE and Safari. Gar. $html = sprintf('<script type="text/javascript"> - window.onload = function () { + $(document).ready(function () { FB_RequireFeatures( ["XFBML"], function() { - FB.init("%s", "../xd_receiver.html", - {"doNotUseCachedConnectState":true }); - + FB.init("%s", "../xd_receiver.html"); } - ); } + ); }); function goto_login() { window.location = "%s"; @@ -148,22 +144,15 @@ class FBConnectPlugin extends Plugin function onEndShowFooter($action) { if ($this->reqFbScripts($action)) { - - $action->element('script', - array('type' => 'text/javascript', - 'src' => 'http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php'), - ''); + $action->script('http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php'); } } - function onEndShowLaconicaStyles($action) + function onEndShowStatusNetStyles($action) { if ($this->reqFbScripts($action)) { - - $action->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => common_path('plugins/FBConnect/FBConnectPlugin.css'))); + $action->cssLink('plugins/FBConnect/FBConnectPlugin.css'); } } @@ -222,10 +211,10 @@ class FBConnectPlugin extends Plugin try { $facebook = getFacebook(); - $fbuid = $facebook->api_client->users_getLoggedInUser(); + $fbuid = $facebook->get_loggedin_user(); } catch (Exception $e) { - common_log(LOG_WARNING, + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . 'Problem getting Facebook user: ' . $e->getMessage()); } @@ -353,7 +342,7 @@ class FBConnectPlugin extends Plugin } function onStartLogout($action) - { +{ $action->logout(); $fbuid = $this->loggedIn(); @@ -362,8 +351,9 @@ class FBConnectPlugin extends Plugin $facebook = getFacebook(); $facebook->expire_session(); } catch (Exception $e) { - common_log(LOG_WARNING, 'Could\'t logout of Facebook: ' . - $e->getMessage()); + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + 'Could\'t logout of Facebook: ' . + $e->getMessage()); } } @@ -387,7 +377,8 @@ class FBConnectPlugin extends Plugin } } catch (Exception $e) { - common_log(LOG_WARNING, "Facebook client failure requesting profile pic!"); + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + "Facebook client failure requesting profile pic!"); } return $url; diff --git a/plugins/FBConnect/FBConnectSettings.php b/plugins/FBConnect/FBConnectSettings.php index 034ecebae..911c56787 100644 --- a/plugins/FBConnect/FBConnectSettings.php +++ b/plugins/FBConnect/FBConnectSettings.php @@ -1,6 +1,6 @@ <?php /** - * Laconica, the distributed open-source microblogging tool + * StatusNet, the distributed open-source microblogging tool * * Facebook Connect settings * @@ -20,14 +20,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @category Settings - * @package Laconica - * @author Zach Copley <zach@controlyourself.ca> - * @copyright 2009 Control Yourself, Inc. + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -37,10 +37,10 @@ require_once INSTALLDIR.'/lib/connectsettingsaction.php'; * Facebook Connect settings action * * @category Settings - * @package Laconica - * @author Zach Copley <zach@controlyourself.ca> + * @package StatusNet + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ class FBConnectSettingsAction extends ConnectSettingsAction @@ -186,9 +186,9 @@ class FBConnectSettingsAction extends ConnectSettingsAction $facebook->clear_cookie_state(); } catch (Exception $e) { - common_log(LOG_WARNING, - 'Couldn\'t clear Facebook cookies: ' . - $e->getMessage()); + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + 'Couldn\'t clear Facebook cookies: ' . + $e->getMessage()); } $this->showForm(_('You have disconnected from Facebook.'), true); diff --git a/plugins/FBConnect/README b/plugins/FBConnect/README index 914b774cb..77d57eff9 100644 --- a/plugins/FBConnect/README +++ b/plugins/FBConnect/README @@ -1,18 +1,18 @@ -This plugin allows you to utilize Facebook Connect with Laconica. +This plugin allows you to utilize Facebook Connect with StatusNet. Supported Facebook Connect features: - Authenticate (register/login/logout -- works similar to OpenID) -- Associate an existing Laconica account with a Facebook account -- Disconnect a Facebook account from a Laconica account +- Associate an existing StatusNet account with a Facebook account +- Disconnect a Facebook account from a StatusNet account Future planned functionality: -- Invite Facebook friends to use your Laconica installation -- Auto-subscribe Facebook friends already using Laconica -- Share Laconica favorite notices to your Facebook stream +- Invite Facebook friends to use your StatusNet installation +- Auto-subscribe Facebook friends already using StatusNet +- Share StatusNet favorite notices to your Facebook stream To use the plugin you will need to configure a Facebook application -to point to your Laconica installation (see the Installation section +to point to your StatusNet installation (see the Installation section below). Installation @@ -26,16 +26,16 @@ Facebook developer wiki: http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site -If you already are using the build-in Laconica Facebook application, +If you already are using the build-in StatusNet Facebook application, you can modify your existing application's configuration using the Facebook Developer Application on Facebook. Use it to edit your application settings, and under the 'Connect' tab, change the 'Connect -URL' to be the main URL for your Laconica site. E.g.: +URL' to be the main URL for your StatusNet site. E.g.: - http://SITE/PATH_TO_LACONICA/ + http://SITE/PATH_TO_STATUSNET/ After you application is created and configured, you'll need to add its -API key and secret to your Laconica config.php file: +API key and secret to your StatusNet config.php file: $config['facebook']['apikey'] = 'APIKEY'; $config['facebook']['secret'] = 'SECRET'; @@ -43,16 +43,15 @@ API key and secret to your Laconica config.php file: Finally, to enable the plugin, add the following stanza to your config.php: - require_once(INSTALLDIR.'/plugins/FBConnect/FBConnectPlugin.php'); - $fbc = new FBConnectPlugin(); + addPlugin('FBConnect'); To try out the plugin, fire up your browser and connect to: - http://SITE/PATH_TO_LACONICA/main/facebooklogin + http://SITE/PATH_TO_STATUSNET/main/facebooklogin or, if you do not have fancy URLs turned on: - http://SITE/PATH_TO_LACONICA/index.php/main/facebooklogin + http://SITE/PATH_TO_STATUSNET/index.php/main/facebooklogin You should see a page with a blue button that says: "Connect with Facebook". @@ -63,10 +62,10 @@ Connect/Disconnect existing account If the Facebook Connect plugin is enabled, there will be a new Facebook Connect Settings tab under each user's Connect menu. Users can connect and disconnect to their Facebook accounts from it. Note: Before a user -can disconnect from Facebook, she must set a normal Laconica password. +can disconnect from Facebook, she must set a normal StatusNet password. Otherwise, she might not be able to login in to her account in the future. This is usually only required for users who have used Facebook -Connect to register their Laconica account, and therefore haven't +Connect to register their StatusNet account, and therefore haven't already set a local password. Helpful links |