summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/facebookhome.php4
-rw-r--r--actions/facebooklogin.php101
-rwxr-xr-xscripts/update_facebook.php2
3 files changed, 104 insertions, 3 deletions
diff --git a/actions/facebookhome.php b/actions/facebookhome.php
index e8c10c9ed..9510e7f08 100644
--- a/actions/facebookhome.php
+++ b/actions/facebookhome.php
@@ -202,13 +202,13 @@ class FacebookhomeAction extends FacebookAction
$this->elementEnd('p');
$this->elementStart('form', array('method' => 'post',
- 'action' => $app_url,
+ 'action' => "$app_url/index.php",
'id' => 'facebook-skip-permissions'));
$this->elementStart('ul', array('id' => 'fb-permissions-list'));
$this->elementStart('li', array('id' => 'fb-permissions-item'));
$this->elementStart('fb:prompt-permission', array('perms' => 'status_update',
- 'next_fbjs' => 'document.setLocation(\'' . $this->app_uri . '\')'));
+ 'next_fbjs' => 'document.setLocation(\'' . "$this->app_uri/index.php" . '\')'));
$this->element('span', array('class' => 'facebook-button'),
sprintf(_('Allow %s to update my Facebook status'), $this->app_name));
$this->elementEnd('fb:prompt-permission');
diff --git a/actions/facebooklogin.php b/actions/facebooklogin.php
new file mode 100644
index 000000000..94d494a82
--- /dev/null
+++ b/actions/facebooklogin.php
@@ -0,0 +1,101 @@
+<?php
+/*
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2008, Controlez-Vous, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+if (!defined('LACONICA')) { exit(1); }
+
+require_once(INSTALLDIR.'/lib/facebookaction.php');
+
+class FacebookinviteAction extends FacebookAction
+{
+
+ function handle($args)
+ {
+ parent::handle($args);
+
+ $this->error = $error;
+
+ if ($this->flink) {
+ if (!$this->facebook->api_client->users_hasAppPermission('status_update') &&
+ $this->facebook->api_client->data_getUserPreference(
+ FACEBOOK_PROMPTED_UPDATE_PREF) == 'true') {
+
+ echo '<h1>REDIRECT TO HOME</h1>';
+ }
+ } else {
+ $this->showPage();
+ }
+ }
+
+
+ function showContent()
+ {
+
+ // If the user has opted not to initially allow the app to have
+ // Facebook status update permission, store that preference. Only
+ // promt the user the first time she uses the app
+ if ($this->arg('skip')) {
+ $this->facebook->api_client->data_setUserPreference(
+ FACEBOOK_PROMPTED_UPDATE_PREF, 'true');
+ }
+
+ if ($this->flink) {
+
+ $this->user = $this->flink->getUser();
+
+ // If this is the first time the user has started the app
+ // prompt for Facebook status update permission
+ if (!$this->facebook->api_client->users_hasAppPermission('status_update')) {
+
+ if ($this->facebook->api_client->data_getUserPreference(
+ FACEBOOK_PROMPTED_UPDATE_PREF) != 'true') {
+ $this->getUpdatePermission();
+ return;
+ }
+ }
+
+ } else {
+ $this->showLoginForm();
+ }
+
+ }
+
+ function showSuccessContent()
+ {
+
+
+
+ }
+
+ function showFormContent()
+ {
+
+
+ }
+
+ function title()
+ {
+ return sprintf(_('Login'));
+ }
+
+ function redirectHome()
+ {
+
+ }
+
+}
diff --git a/scripts/update_facebook.php b/scripts/update_facebook.php
index 1574b9e09..d2c1c3ffb 100755
--- a/scripts/update_facebook.php
+++ b/scripts/update_facebook.php
@@ -34,7 +34,7 @@ require_once INSTALLDIR . '/lib/facebookutil.php';
$last_updated_file = INSTALLDIR . '/scripts/facebook_last_updated';
// Lock file name
-$tmp_file = "/tmp/update_facebook.lock";
+$tmp_file = INSTALLDIR . '/scripts/update_facebook.lock';
// Make sure only one copy of the script is running at a time
if (!($tmp_file = @fopen($tmp_file, "w")))