Merge branch 'openid-settings-sync' of tenma/gnu-social into nightly

This commit is contained in:
Diogo Cordeiro 2019-06-09 16:05:12 +00:00 committed by Gogs
commit 711badb6b4
12 changed files with 1485 additions and 937 deletions

View File

@ -22,7 +22,7 @@ if (!defined('GNUSOCIAL')) { exit(1); }
define('GNUSOCIAL_ENGINE', 'GNU social'); define('GNUSOCIAL_ENGINE', 'GNU social');
define('GNUSOCIAL_ENGINE_URL', 'https://www.gnu.org/software/social/'); define('GNUSOCIAL_ENGINE_URL', 'https://www.gnu.org/software/social/');
define('GNUSOCIAL_BASE_VERSION', '1.19.2'); define('GNUSOCIAL_BASE_VERSION', '1.19.3');
define('GNUSOCIAL_LIFECYCLE', 'rc0'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' define('GNUSOCIAL_LIFECYCLE', 'rc0'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release'
define('GNUSOCIAL_VERSION', GNUSOCIAL_BASE_VERSION . '-' . GNUSOCIAL_LIFECYCLE); define('GNUSOCIAL_VERSION', GNUSOCIAL_BASE_VERSION . '-' . GNUSOCIAL_LIFECYCLE);

View File

@ -50,7 +50,7 @@ if (!defined('STATUSNET')) {
*/ */
class OpenIDPlugin extends Plugin class OpenIDPlugin extends Plugin
{ {
const PLUGIN_VERSION = '2.0.0'; const PLUGIN_VERSION = '2.1.0';
// Plugin parameter: set true to disallow non-OpenID logins // Plugin parameter: set true to disallow non-OpenID logins
// If set, overrides the setting in database or $config['site']['openidonly'] // If set, overrides the setting in database or $config['site']['openidonly']
@ -83,6 +83,8 @@ class OpenIDPlugin extends Plugin
array('action' => 'finishopenidlogin')); array('action' => 'finishopenidlogin'));
$m->connect('index.php?action=finishaddopenid', $m->connect('index.php?action=finishaddopenid',
array('action' => 'finishaddopenid')); array('action' => 'finishaddopenid'));
$m->connect('index.php?action=finishsyncopenid',
array('action' => 'finishsyncopenid'));
$m->connect('main/openidserver', array('action' => 'openidserver')); $m->connect('main/openidserver', array('action' => 'openidserver'));
$m->connect('panel/openid', array('action' => 'openidadminpanel')); $m->connect('panel/openid', array('action' => 'openidadminpanel'));

View File

@ -46,7 +46,7 @@ require_once INSTALLDIR.'/plugins/OpenID/openid.php';
*/ */
class FinishaddopenidAction extends Action class FinishaddopenidAction extends Action
{ {
var $msg = null; public $msg = null;
/** /**
* Handle the redirect back from OpenID confirmation * Handle the redirect back from OpenID confirmation
@ -58,7 +58,7 @@ class FinishaddopenidAction extends Action
* *
* @return void * @return void
*/ */
function handle() public function handle()
{ {
parent::handle(); parent::handle();
if (!common_logged_in()) { if (!common_logged_in()) {
@ -76,7 +76,7 @@ class FinishaddopenidAction extends Action
* *
* @return void * @return void
*/ */
function tryLogin() public function tryLogin()
{ {
$consumer = oid_consumer(); $consumer = oid_consumer();
@ -86,13 +86,14 @@ class FinishaddopenidAction extends Action
// TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. // TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
$this->message(_m('OpenID authentication cancelled.')); $this->message(_m('OpenID authentication cancelled.'));
return; return;
} else if ($response->status == Auth_OpenID_FAILURE) { } elseif ($response->status == Auth_OpenID_FAILURE) {
// TRANS: OpenID authentication failed; display the error message. // TRANS: OpenID authentication failed; display the error message.
// TRANS: %s is the error message. // TRANS: %s is the error message.
$this->message(sprintf(_m('OpenID authentication failed: %s.'), $this->message(sprintf(
$response->message)); _m('OpenID authentication failed: %s.'),
} else if ($response->status == Auth_OpenID_SUCCESS) { $response->message
));
} elseif ($response->status == Auth_OpenID_SUCCESS) {
$display = $response->getDisplayIdentifier(); $display = $response->getDisplayIdentifier();
$canonical = ($response->endpoint && $response->endpoint->canonicalID) ? $canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
$response->endpoint->canonicalID : $display; $response->endpoint->canonicalID : $display;
@ -136,17 +137,20 @@ class FinishaddopenidAction extends Action
$this->message(_m('Error connecting user.')); $this->message(_m('Error connecting user.'));
return; return;
} }
if (Event::handle('StartOpenIDUpdateUser', array($cur, $canonical, &$sreg))) {
if ($sreg) { if (isset($_SESSION['openid_sync']) && $_SESSION['openid_sync']) {
if (Event::handle('StartOpenIDUpdateUser', [$cur, $canonical, &$sreg])) {
if (!oid_update_user($cur, $sreg)) { if (!oid_update_user($cur, $sreg)) {
// TRANS: Message in case the user or the user profile cannot be saved in StatusNet. // TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
$this->message(_m('Error updating profile.')); $this->message(_m('Error updating profile.'));
return; return;
} }
} }
Event::handle('EndOpenIDUpdateUser', [$cur, $canonical, $sreg]);
} }
Event::handle('EndOpenIDUpdateUser', array($cur, $canonical, $sreg));
unset($_SESSION['openid_sync']);
// success! // success!
$cur->query('COMMIT'); $cur->query('COMMIT');
@ -166,7 +170,7 @@ class FinishaddopenidAction extends Action
* *
* @return void * @return void
*/ */
function message($msg) public function message($msg)
{ {
$this->message = $msg; $this->message = $msg;
$this->showPage(); $this->showPage();
@ -177,7 +181,7 @@ class FinishaddopenidAction extends Action
* *
* @return string title * @return string title
*/ */
function title() public function title()
{ {
// TRANS: Title after getting the status of the OpenID authorisation request. // TRANS: Title after getting the status of the OpenID authorisation request.
return _m('OpenID Login'); return _m('OpenID Login');
@ -188,7 +192,7 @@ class FinishaddopenidAction extends Action
* *
* @return void * @return void
*/ */
function showPageNotice() public function showPageNotice()
{ {
if ($this->message) { if ($this->message) {
$this->element('p', 'error', $this->message); $this->element('p', 'error', $this->message);

View File

@ -25,17 +25,17 @@ require_once INSTALLDIR.'/plugins/OpenID/openid.php';
class FinishopenidloginAction extends Action class FinishopenidloginAction extends Action
{ {
var $error = null; public $error = null;
var $username = null; public $username = null;
var $message = null; public $message = null;
function handle() public function handle()
{ {
parent::handle(); parent::handle();
if (common_is_real_login()) { if (common_is_real_login()) {
// TRANS: Client error message trying to log on with OpenID while already logged on. // TRANS: Client error message trying to log on with OpenID while already logged on.
$this->clientError(_m('Already logged in.')); $this->clientError(_m('Already logged in.'));
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') { } elseif ($_SERVER['REQUEST_METHOD'] == 'POST') {
$token = $this->trimmed('token'); $token = $this->trimmed('token');
if (!$token || $token != common_session_token()) { if (!$token || $token != common_session_token()) {
// TRANS: Message given when there is a problem with the user's session token. // TRANS: Message given when there is a problem with the user's session token.
@ -45,27 +45,31 @@ class FinishopenidloginAction extends Action
if ($this->arg('create')) { if ($this->arg('create')) {
if (!$this->boolean('license')) { if (!$this->boolean('license')) {
// TRANS: Message given if user does not agree with the site's license. // TRANS: Message given if user does not agree with the site's license.
$this->showForm(_m('You cannot register if you do not agree to the license.'), $this->showForm(
$this->trimmed('newname')); _m('You cannot register if you do not agree to the license.'),
$this->trimmed('newname')
);
return; return;
} }
$this->createNewUser(); $this->createNewUser();
} else if ($this->arg('connect')) { } elseif ($this->arg('connect')) {
$this->connectUser(); $this->connectUser();
} else { } else {
// TRANS: Messag given on an unknown error. // TRANS: Messag given on an unknown error.
$this->showForm(_m('An unknown error has occured.'), $this->showForm(
$this->trimmed('newname')); _m('An unknown error has occured.'),
$this->trimmed('newname')
);
} }
} else { } else {
$this->tryLogin(); $this->tryLogin();
} }
} }
function showPageNotice() public function showPageNotice()
{ {
if ($this->error) { if ($this->error) {
$this->element('div', array('class' => 'error'), $this->error); $this->element('div', ['class' => 'error'], $this->error);
} else { } else {
$this->element('div', 'instructions', $this->element('div', 'instructions',
// TRANS: Instructions given after a first successful logon using OpenID. // TRANS: Instructions given after a first successful logon using OpenID.
@ -74,13 +78,13 @@ class FinishopenidloginAction extends Action
} }
} }
function title() public function title()
{ {
// TRANS: Title // TRANS: Title
return _m('TITLE','OpenID Account Setup'); return _m('TITLE', 'OpenID Account Setup');
} }
function showForm($error=null, $username=null) public function showForm($error=null, $username=null)
{ {
$this->error = $error; $this->error = $error;
$this->username = $username; $this->username = $username;
@ -93,10 +97,10 @@ class FinishopenidloginAction extends Action
* Should probably be replaced with an extensible mini version of * Should probably be replaced with an extensible mini version of
* the core registration form. * the core registration form.
*/ */
function showContent() public function showContent()
{ {
if (!empty($this->message_text)) { if (!empty($this->message_text)) {
$this->element('div', array('class' => 'error'), $this->message_text); $this->element('div', ['class' => 'error'], $this->message_text);
return; return;
} }
@ -107,12 +111,12 @@ class FinishopenidloginAction extends Action
// info. The profile will be pre-populated with whatever name, // info. The profile will be pre-populated with whatever name,
// email, and location we can get from the OpenID provider, so // email, and location we can get from the OpenID provider, so
// all we ask for is the license confirmation. // all we ask for is the license confirmation.
$this->elementStart('form', array('method' => 'post', $this->elementStart('form', ['method' => 'post',
'id' => 'account_create', 'id' => 'account_create',
'class' => 'form_settings', 'class' => 'form_settings',
'action' => common_local_url('finishopenidlogin'))); 'action' => common_local_url('finishopenidlogin')]);
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->elementStart('fieldset', array('id' => 'form_openid_createaccount')); $this->elementStart('fieldset', ['id' => 'form_openid_createaccount']);
$this->element('legend', null, $this->element('legend', null,
// TRANS: Fieldset legend. // TRANS: Fieldset legend.
_m('Create new account')); _m('Create new account'));
@ -122,39 +126,41 @@ class FinishopenidloginAction extends Action
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
// Hook point for captcha etc // Hook point for captcha etc
Event::handle('StartRegistrationFormData', array($this)); Event::handle('StartRegistrationFormData', [$this]);
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label. // TRANS: Field label.
$this->input('newname', _m('New nickname'), $this->input('newname',
_m('New nickname'),
($this->username) ? $this->username : '', ($this->username) ? $this->username : '',
// TRANS: Field title. // TRANS: Field title.
_m('1-64 lowercase letters or numbers, no punctuation or spaces.')); _m('1-64 lowercase letters or numbers, no punctuation or spaces.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label. // TRANS: Field label.
$this->input('email', _m('Email'), $this->getEmail(), $this->input('email', _m('Email'),
$this->getEmail(),
// TRANS: Field title. // TRANS: Field title.
_m('Used only for updates, announcements, '. _m('Used only for updates, announcements, '.
'and password recovery.')); 'and password recovery.'));
$this->elementEnd('li'); $this->elementEnd('li');
// Hook point for captcha etc // Hook point for captcha etc
Event::handle('EndRegistrationFormData', array($this)); Event::handle('EndRegistrationFormData', [$this]);
$this->elementStart('li'); $this->elementStart('li');
$this->element('input', array('type' => 'checkbox', $this->element('input', ['type' => 'checkbox',
'id' => 'license', 'id' => 'license',
'class' => 'checkbox', 'class' => 'checkbox',
'name' => 'license', 'name' => 'license',
'value' => 'true')); 'value' => 'true']);
$this->elementStart('label', array('for' => 'license', $this->elementStart('label', ['for' => 'license',
'class' => 'checkbox')); 'class' => 'checkbox']);
// TRANS: OpenID plugin link text. // TRANS: OpenID plugin link text.
// TRANS: %s is a link to a license with the license name as link text. // TRANS: %s is a link to a license with the license name as link text.
$message = _m('My text and files are available under %s ' . $message = _m('My text and files are available under %s ' .
'except this private data: password, ' . 'except this private data: password, ' .
'email address, IM address, and phone number.'); 'email address, IM address, and phone number.');
$link = '<a href="' . $link = '<a href="' .
htmlspecialchars(common_config('license', 'url')) . htmlspecialchars(common_config('license', 'url')) .
'">' . '">' .
@ -171,12 +177,12 @@ class FinishopenidloginAction extends Action
// The second option is to attach this OpenID to an existing account // The second option is to attach this OpenID to an existing account
// on the local system, which they need to provide a password for. // on the local system, which they need to provide a password for.
$this->elementStart('form', array('method' => 'post', $this->elementStart('form', ['method' => 'post',
'id' => 'account_connect', 'id' => 'account_connect',
'class' => 'form_settings', 'class' => 'form_settings',
'action' => common_local_url('finishopenidlogin'))); 'action' => common_local_url('finishopenidlogin')]);
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->elementStart('fieldset', array('id' => 'form_openid_createaccount')); $this->elementStart('fieldset', ['id' => 'form_openid_createaccount']);
$this->element('legend', null, $this->element('legend', null,
// TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. // TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
_m('Connect existing account')); _m('Connect existing account'));
@ -192,6 +198,11 @@ class FinishopenidloginAction extends Action
// TRANS: Field label in form in which to connect an OpenID to an existing user on the site. // TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
$this->password('password', _m('Password')); $this->password('password', _m('Password'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementStart('li');
// TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
$this->checkbox('openid-sync', _m('Sync Account'), false,
_m('Syncronize GNU social profile with this OpenID identity.'));
$this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Button text in form in which to connect an OpenID to an existing user on the site. // TRANS: Button text in form in which to connect an OpenID to an existing user on the site.
$this->submit('connect', _m('BUTTON', 'Connect')); $this->submit('connect', _m('BUTTON', 'Connect'));
@ -205,7 +216,7 @@ class FinishopenidloginAction extends Action
* *
* @return string * @return string
*/ */
function getEmail() public function getEmail()
{ {
$email = $this->trimmed('email'); $email = $this->trimmed('email');
if (!empty($email)) { if (!empty($email)) {
@ -232,7 +243,7 @@ class FinishopenidloginAction extends Action
return ''; return '';
} }
function tryLogin() public function tryLogin()
{ {
$consumer = oid_consumer(); $consumer = oid_consumer();
@ -242,10 +253,10 @@ class FinishopenidloginAction extends Action
// TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. // TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
$this->message(_m('OpenID authentication cancelled.')); $this->message(_m('OpenID authentication cancelled.'));
return; return;
} else if ($response->status == Auth_OpenID_FAILURE) { } elseif ($response->status == Auth_OpenID_FAILURE) {
// TRANS: OpenID authentication failed; display the error message. %s is the error message. // TRANS: OpenID authentication failed; display the error message. %s is the error message.
$this->message(sprintf(_m('OpenID authentication failed: %s.'), $response->message)); $this->message(sprintf(_m('OpenID authentication failed: %s.'), $response->message));
} else if ($response->status == Auth_OpenID_SUCCESS) { } elseif ($response->status == Auth_OpenID_SUCCESS) {
// This means the authentication succeeded; extract the // This means the authentication succeeded; extract the
// identity URL and Simple Registration data (if it was // identity URL and Simple Registration data (if it was
// returned). // returned).
@ -290,13 +301,13 @@ class FinishopenidloginAction extends Action
} }
} }
function message($msg) public function message($msg)
{ {
$this->message_text = $msg; $this->message_text = $msg;
$this->showPage(); $this->showPage();
} }
function saveValues($display, $canonical, $sreg) public function saveValues($display, $canonical, $sreg)
{ {
common_ensure_session(); common_ensure_session();
$_SESSION['openid_display'] = $display; $_SESSION['openid_display'] = $display;
@ -304,18 +315,18 @@ class FinishopenidloginAction extends Action
$_SESSION['openid_sreg'] = $sreg; $_SESSION['openid_sreg'] = $sreg;
} }
function getSavedValues() public function getSavedValues()
{ {
return array($_SESSION['openid_display'], return [$_SESSION['openid_display'],
$_SESSION['openid_canonical'], $_SESSION['openid_canonical'],
$_SESSION['openid_sreg']); $_SESSION['openid_sreg']];
} }
function createNewUser() public function createNewUser()
{ {
// FIXME: save invite code before redirect, and check here // FIXME: save invite code before redirect, and check here
if (!Event::handle('StartRegistrationTry', array($this))) { if (!Event::handle('StartRegistrationTry', [$this])) {
return; return;
} }
@ -364,7 +375,7 @@ class FinishopenidloginAction extends Action
$this->serverError(_m('Creating new account for OpenID that already has a user.')); $this->serverError(_m('Creating new account for OpenID that already has a user.'));
} }
Event::handle('StartOpenIDCreateNewUser', array($canonical, &$sreg)); Event::handle('StartOpenIDCreateNewUser', [$canonical, &$sreg]);
$location = ''; $location = '';
if (!empty($sreg['country'])) { if (!empty($sreg['country'])) {
@ -388,10 +399,10 @@ class FinishopenidloginAction extends Action
// XXX: add language // XXX: add language
// XXX: add timezone // XXX: add timezone
$args = array('nickname' => $nickname, $args = ['nickname' => $nickname,
'email' => $email, 'email' => $email,
'fullname' => $fullname, 'fullname' => $fullname,
'location' => $location); 'location' => $location];
if (!empty($invite)) { if (!empty($invite)) {
$args['code'] = $invite->code; $args['code'] = $invite->code;
@ -401,7 +412,7 @@ class FinishopenidloginAction extends Action
$result = oid_link_user($user->id, $canonical, $display); $result = oid_link_user($user->id, $canonical, $display);
Event::handle('EndOpenIDCreateNewUser', array($user, $canonical, $sreg)); Event::handle('EndOpenIDCreateNewUser', [$user, $canonical, $sreg]);
oid_set_last($display); oid_set_last($display);
common_set_user($user); common_set_user($user);
@ -411,16 +422,17 @@ class FinishopenidloginAction extends Action
} }
unset($_SESSION['openid_rememberme']); unset($_SESSION['openid_rememberme']);
Event::handle('EndRegistrationTry', array($this)); Event::handle('EndRegistrationTry', [$this]);
common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)), 303); common_redirect(common_local_url('showstream', ['nickname' => $user->nickname]), 303);
} }
function connectUser() public function connectUser()
{ {
$nickname = $this->trimmed('nickname'); $nickname = $this->trimmed('nickname');
$password = $this->trimmed('password'); $password = $this->trimmed('password');
$sync = $this->boolean('openid-sync');
if (!common_check_user($nickname, $password)) { if (!common_check_user($nickname, $password)) {
// TRANS: OpenID plugin message. // TRANS: OpenID plugin message.
$this->showForm(_m('Invalid username or password.')); $this->showForm(_m('Invalid username or password.'));
@ -445,10 +457,12 @@ class FinishopenidloginAction extends Action
$this->serverError(_m('Error connecting user to OpenID.')); $this->serverError(_m('Error connecting user to OpenID.'));
} }
if (Event::handle('StartOpenIDUpdateUser', array($user, $canonical, &$sreg))) { if ($sync) {
oid_update_user($user, $sreg); if (Event::handle('StartOpenIDUpdateUser', [$user, $canonical, &$sreg])) {
oid_update_user($user, $sreg);
}
Event::handle('EndOpenIDUpdateUser', [$user, $canonical, $sreg]);
} }
Event::handle('EndOpenIDUpdateUser', array($user, $canonical, $sreg));
oid_set_last($display); oid_set_last($display);
common_set_user($user); common_set_user($user);
@ -460,22 +474,20 @@ class FinishopenidloginAction extends Action
$this->goHome($user->nickname); $this->goHome($user->nickname);
} }
function goHome($nickname) public function goHome($nickname)
{ {
$url = common_get_returnto(); $url = common_get_returnto();
if ($url) { if ($url) {
// We don't have to return to it again // We don't have to return to it again
common_set_returnto(null); common_set_returnto(null);
$url = common_inject_session($url); $url = common_inject_session($url);
} else { } else {
$url = common_local_url('all', $url = common_local_url('all', ['nickname' => $nickname]);
array('nickname' =>
$nickname));
} }
common_redirect($url, 303); common_redirect($url, 303);
} }
function bestNewNickname($display, $sreg) public function bestNewNickname($display, $sreg)
{ {
// Try the passed-in nickname // Try the passed-in nickname
@ -508,7 +520,7 @@ class FinishopenidloginAction extends Action
return null; return null;
} }
function openidToNickname($openid) public function openidToNickname($openid)
{ {
if (Auth_Yadis_identifierScheme($openid) == 'XRI') { if (Auth_Yadis_identifierScheme($openid) == 'XRI') {
return $this->xriToNickname($openid); return $this->xriToNickname($openid);
@ -521,12 +533,12 @@ class FinishopenidloginAction extends Action
// 1. Plain hostname, like http://evanp.myopenid.com/ // 1. Plain hostname, like http://evanp.myopenid.com/
// 2. One element in path, like http://profile.typekey.com/EvanProdromou/ // 2. One element in path, like http://profile.typekey.com/EvanProdromou/
// or http://getopenid.com/evanprodromou // or http://getopenid.com/evanprodromou
function urlToNickname($openid) public function urlToNickname($openid)
{ {
return common_url_to_nickname($openid); return common_url_to_nickname($openid);
} }
function xriToNickname($xri) public function xriToNickname($xri)
{ {
$base = $this->xriBase($xri); $base = $this->xriBase($xri);
@ -540,7 +552,7 @@ class FinishopenidloginAction extends Action
} }
} }
function xriBase($xri) public function xriBase($xri)
{ {
if (substr($xri, 0, 6) == 'xri://') { if (substr($xri, 0, 6) == 'xri://') {
return substr($xri, 6); return substr($xri, 6);

View File

@ -0,0 +1,166 @@
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social 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.
//
// GNU social 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 GNU social. If not, see <http://www.gnu.org/licenses/>.
/**
* OpenID Sync completion
*
* @package GNUsocial
* @author Bruno Casteleiro <brunoccast@fc.up.pt>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
defined('GNUSOCIAL') || die();
require_once(INSTALLDIR . '/plugins/OpenID/openid.php');
/**
* Action that handles OpenID Sync completion.
*
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
class FinishsyncopenidAction extends Action
{
public $msg = null;
/**
* Handle the redirect back from OpenID confirmation
*
* Check to see if the user's logged in, and then try
* to use the OpenID login system.
*
* @param array $args $_REQUEST arguments
*
* @return void
*/
public function handle()
{
parent::handle();
if (!common_logged_in()) {
// TRANS: Error message displayed when trying to perform an action that requires a logged in user.
$this->clientError(_m('Not logged in.'));
} else {
$this->tryLogin();
}
}
/**
* Try to log in using OpenID
*
* Check the OpenID for validity; potentially store it.
*
* @return void
*/
public function tryLogin()
{
$consumer = oid_consumer();
$response = $consumer->complete(common_local_url('finishsyncopenid'));
if ($response->status == Auth_OpenID_CANCEL) {
// TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
$this->message(_m('OpenID authentication cancelled.'));
return;
} elseif ($response->status == Auth_OpenID_FAILURE) {
// TRANS: OpenID authentication failed; display the error message.
// TRANS: %s is the error message.
$this->message(sprintf(
_m('OpenID authentication failed: %s.'),
$response->message
));
} elseif ($response->status == Auth_OpenID_SUCCESS) {
$display = $response->getDisplayIdentifier();
$canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
$response->endpoint->canonicalID : $display;
$sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
if ($sreg_resp) {
$sreg = $sreg_resp->contents();
}
// Launchpad teams extension
if (!oid_check_teams($response)) {
// TRANS: OpenID authentication error.
$this->message(_m('OpenID authentication aborted: You are not allowed to login to this site.'));
return;
}
$cur = common_current_user();
// start a transaction
$cur->query('BEGIN');
if (Event::handle('StartOpenIDUpdateUser', [$cur, $canonical, &$sreg])) {
if (!oid_update_user($cur, $sreg)) {
// TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
$this->message(_m('Error updating profile.'));
return;
}
}
Event::handle('EndOpenIDUpdateUser', [$cur, $canonical, $sreg]);
// success!
$cur->query('COMMIT');
oid_set_last($display);
common_redirect(common_local_url('openidsettings'), 303);
}
}
/**
* Show a failure message
*
* Something went wrong. Save the message, and show the page.
*
* @param string $msg Error message to show
*
* @return void
*/
public function message($msg)
{
$this->message = $msg;
$this->showPage();
}
/**
* Title of the page
*
* @return string title
*/
public function title()
{
// TRANS: Title after getting the status of the OpenID authorisation request.
// TODO update after understanding the function ^
return _m('OpenID Synchronization');
}
/**
* Show error message
*
* @return void
*/
public function showPageNotice()
{
if ($this->message) {
$this->element('p', 'error', $this->message);
}
}
}

View File

@ -27,7 +27,9 @@
* @link http://status.net/ * @link http://status.net/
*/ */
if (!defined('GNUSOCIAL')) { exit(1); } if (!defined('GNUSOCIAL')) {
exit(1);
}
require_once INSTALLDIR.'/plugins/OpenID/openid.php'; require_once INSTALLDIR.'/plugins/OpenID/openid.php';
@ -49,10 +51,10 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return string Page title * @return string Page title
*/ */
function title() public function title()
{ {
// TRANS: Title of OpenID settings page for a user. // TRANS: Title of OpenID settings page for a user.
return _m('TITLE','OpenID settings'); return _m('TITLE', 'OpenID settings');
} }
/** /**
@ -60,16 +62,16 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return string Instructions for use * @return string Instructions for use
*/ */
function getInstructions() public function getInstructions()
{ {
// TRANS: Form instructions for OpenID settings. // TRANS: Form instructions for OpenID settings.
// TRANS: This message contains Markdown links in the form [description](link). // TRANS: This message contains Markdown links in the form [description](link).
return _m('[OpenID](%%doc.openid%%) lets you log into many sites ' . return _m('[OpenID](%%doc.openid%%) lets you log into many sites ' .
'with the same user account. '. 'with the same user account. '.
'Manage your associated OpenIDs from here.'); 'Manage your associated OpenIDs from here.');
} }
function showScripts() public function showScripts()
{ {
parent::showScripts(); parent::showScripts();
$this->autofocus('openid_url'); $this->autofocus('openid_url');
@ -82,30 +84,37 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return void * @return void
*/ */
function showContent() public function showContent()
{ {
if (!common_config('openid', 'trusted_provider')) { if (!common_config('openid', 'trusted_provider')) {
$this->elementStart('form', array('method' => 'post', $this->elementStart('form', ['method' => 'post',
'id' => 'form_settings_openid_add', 'id' => 'form_settings_openid_add',
'class' => 'form_settings', 'class' => 'form_settings',
'action' => 'action' =>
common_local_url('openidsettings'))); common_local_url('openidsettings')]);
$this->elementStart('fieldset', array('id' => 'settings_openid_add')); $this->elementStart('fieldset', ['id' => 'settings_openid_add']);
// TRANS: Fieldset legend. // TRANS: Fieldset legend.
$this->element('legend', null, _m('LEGEND','Add OpenID')); $this->element('legend', null, _m('LEGEND', 'Add OpenID'));
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->elementStart('li'); $this->elementStart('li');
// TRANS: Field label. // TRANS: Field label.
$this->input('openid_url', _m('OpenID URL'), null, $this->input('openid_url', _m('OpenID URL'), null,
// TRANS: Form guide. // TRANS: Form guide.
_m('An OpenID URL which identifies you.'), null, true, _m('An OpenID URL which identifies you.'),
array('placeholder'=>'https://example.com/you')); null, true,
['placeholder'=>'https://example.com/you']);
$this->elementEnd('li');
$this->elementStart('li');
// TRANS: Field label.
$this->checkbox('openid-sync', _m('Synchronize Account'), false,
// TRANS: Form guide.
_m('Synchronize GNU social profile with this OpenID identity.'));
$this->elementEnd('li'); $this->elementEnd('li');
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Button text for adding an OpenID URL. // TRANS: Button text for adding an OpenID URL.
$this->submit('settings_openid_add_action-submit', _m('BUTTON','Add'), 'submit', 'add'); $this->submit('settings_openid_add_action-submit', _m('BUTTON', 'Add'), 'submit', 'add');
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
} }
@ -117,46 +126,55 @@ class OpenidsettingsAction extends SettingsAction
if ($cnt > 0) { if ($cnt > 0) {
// TRANS: Header on OpenID settings page. // TRANS: Header on OpenID settings page.
$this->element('h2', null, _m('HEADER','Remove OpenID')); $this->element('h2', null, _m('HEADER', 'OpenID Actions'));
if ($cnt == 1 && !$this->scoped->hasPassword()) { if ($cnt == 1 && !$this->scoped->hasPassword()) {
$this->element('p', 'form_guide', $this->element('p', 'form_guide',
// TRANS: Form guide. // TRANS: Form guide.
_m('Removing your only OpenID '. _m('You can\'t remove your main OpenID account ' .
'would make it impossible to log in! ' . 'without either adding a password to your ' .
'If you need to remove it, '. 'GNU social account or another OpenID account. ' .
'add another OpenID first.')); 'You can synchronize your profile with your ' .
'OpenID by clicking the button labeled "Synchronize".'));
if ($oid->fetch()) { if ($oid->fetch()) {
$this->elementStart('p'); $this->elementStart('form', ['method' => 'POST',
$this->element('a', array('href' => $oid->canonical), 'id' => 'form_settings_openid_actions' . $idx,
$oid->display); 'class' => 'form_settings',
$this->elementEnd('p'); 'action' => common_local_url('openidsettings')]);
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
$this->element('a', ['href' => $oid->canonical], $oid->display);
$this->hidden("openid_url", $oid->canonical);
// TRANS: Button text to sync OpenID with the GS profile.
$this->submit("sync", _m('BUTTON', 'Synchronize'), 'submit sync');
$this->elementEnd('fieldset');
$this->elementEnd('form');
} }
} else { } else {
$this->element('p', 'form_guide', $this->element('p', 'form_guide',
// TRANS: Form guide. // TRANS: Form guide.
_m('You can remove an OpenID from your account '. _m('You can remove an OpenID from your account ' .
'by clicking the button marked "Remove".')); 'by clicking the button labeled "Remove". ' .
'You can synchronize your profile with an OpenID ' .
'by clicking the button labeled "Synchronize".'));
$idx = 0; $idx = 0;
while ($oid->fetch()) { while ($oid->fetch()) {
$this->elementStart('form', $this->elementStart('form', ['method' => 'POST',
array('method' => 'POST', 'id' => 'form_settings_openid_actions' . $idx,
'id' => 'form_settings_openid_delete' . $idx, 'class' => 'form_settings',
'class' => 'form_settings', 'action' => common_local_url('openidsettings')]);
'action' =>
common_local_url('openidsettings')));
$this->elementStart('fieldset'); $this->elementStart('fieldset');
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->element('a', array('href' => $oid->canonical), $this->element('a', ['href' => $oid->canonical], $oid->display);
$oid->display);
$this->hidden("openid_url{$idx}", $oid->canonical, 'openid_url'); $this->hidden("openid_url{$idx}", $oid->canonical, 'openid_url');
$this->elementStart('span', ['class' => 'element_actions']);
// TRANS: Button text to sync an OpenID with the GS profile.
$this->submit("sync{$idx}", _m('BUTTON', 'Synchronize'), 'submit', 'sync');
// TRANS: Button text to remove an OpenID. // TRANS: Button text to remove an OpenID.
$this->submit("remove{$idx}", _m('BUTTON','Remove'), 'submit remove', 'remove'); $this->submit("remove{$idx}", _m('BUTTON', 'Remove'), 'submit', 'remove');
$this->elementEnd('span');
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
$idx++; $idx++;
@ -164,49 +182,51 @@ class OpenidsettingsAction extends SettingsAction
} }
} }
$this->elementStart('form', array('method' => 'post', $this->elementStart('form', ['method' => 'post',
'id' => 'form_settings_openid_trustroots', 'id' => 'form_settings_openid_trustroots',
'class' => 'form_settings', 'class' => 'form_settings',
'action' => 'action' =>
common_local_url('openidsettings'))); common_local_url('openidsettings')]);
$this->elementStart('fieldset', array('id' => 'settings_openid_trustroots')); $this->elementStart('fieldset', ['id' => 'settings_openid_trustroots']);
// TRANS: Fieldset legend. // TRANS: Fieldset legend.
$this->element('legend', null, _m('OpenID Trusted Sites')); $this->element('legend', null, _m('OpenID Trusted Sites'));
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->element('p', 'form_guide', $this->element('p', 'form_guide',
// TRANS: Form guide. // TRANS: Form guide.
_m('The following sites are allowed to access your ' . _m('The following sites are allowed to access your ' .
'identity and log you in. You can remove a site from ' . 'identity and log you in. You can remove a site from ' .
'this list to deny it access to your OpenID.')); 'this list to deny it access to your OpenID.'));
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$user_openid_trustroot = new User_openid_trustroot(); $user_openid_trustroot = new User_openid_trustroot();
$user_openid_trustroot->user_id = $this->scoped->getID(); $user_openid_trustroot->user_id = $this->scoped->getID();
if($user_openid_trustroot->find()) { if ($user_openid_trustroot->find()) {
while($user_openid_trustroot->fetch()) { while ($user_openid_trustroot->fetch()) {
$this->elementStart('li'); $this->elementStart('li');
$this->element('input', array('name' => 'openid_trustroot[]', $this->element('input', ['name' => 'openid_trustroot[]',
'type' => 'checkbox', 'type' => 'checkbox',
'class' => 'checkbox', 'class' => 'checkbox',
'value' => $user_openid_trustroot->trustroot, 'value' => $user_openid_trustroot->trustroot,
'id' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot))); 'id' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)]);
$this->element('label', array('class'=>'checkbox', 'for' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)), $this->element('label',
['class'=>'checkbox',
'for' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)],
$user_openid_trustroot->trustroot); $user_openid_trustroot->trustroot);
$this->elementEnd('li'); $this->elementEnd('li');
} }
} }
$this->elementEnd('ul'); $this->elementEnd('ul');
// TRANS: Button text to remove an OpenID trustroot. // TRANS: Button text to remove an OpenID trustroot.
$this->submit('settings_openid_trustroots_action-submit', _m('BUTTON','Remove'), 'submit', 'remove_trustroots'); $this->submit('settings_openid_trustroots_action-submit', _m('BUTTON', 'Remove'), 'submit', 'remove_trustroots');
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID()); $prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID());
$this->elementStart('fieldset'); $this->elementStart('fieldset');
$this->element('legend', null, _m('LEGEND','Preferences')); $this->element('legend', null, _m('LEGEND', 'Preferences'));
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->checkbox('hide_profile_link', "Hide OpenID links from my profile", !empty($prefs) && $prefs->hide_profile_link); $this->checkbox('hide_profile_link', "Hide OpenID links from my profile", !empty($prefs) && $prefs->hide_profile_link);
// TRANS: Button text to save OpenID prefs // TRANS: Button text to save OpenID prefs
$this->submit('settings_openid_prefs_save', _m('BUTTON','Save'), 'submit', 'save_prefs'); $this->submit('settings_openid_prefs_save', _m('BUTTON', 'Save'), 'submit', 'save_prefs');
$this->elementEnd('ul'); $this->elementEnd('ul');
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
@ -227,17 +247,23 @@ class OpenidsettingsAction extends SettingsAction
// TRANS: Form validation error if no OpenID providers can be added. // TRANS: Form validation error if no OpenID providers can be added.
throw new ServerException(_m('Cannot add new providers.')); throw new ServerException(_m('Cannot add new providers.'));
} else { } else {
common_ensure_session();
$_SESSION['openid_sync'] = $this->boolean('openid-sync');
$result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid'); $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid');
if (is_string($result)) { // error message if (is_string($result)) { // error message
unset($_SESSION['openid-sync']);
throw new ServerException($result); throw new ServerException($result);
} }
return _('Added new provider.'); return _('Added new provider.');
} }
} else if ($this->arg('remove')) { } elseif ($this->arg('remove')) {
return $this->removeOpenid(); return $this->removeOpenid();
} else if($this->arg('remove_trustroots')) { } elseif ($this->arg('sync')) {
return $this->syncOpenid();
} elseif ($this->arg('remove_trustroots')) {
return $this->removeTrustroots(); return $this->removeTrustroots();
} else if($this->arg('save_prefs')) { } elseif ($this->arg('save_prefs')) {
return $this->savePrefs(); return $this->savePrefs();
} }
@ -253,13 +279,14 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return void * @return void
*/ */
function removeTrustroots() public function removeTrustroots()
{ {
$trustroots = $this->arg('openid_trustroot', array()); $trustroots = $this->arg('openid_trustroot', []);
foreach($trustroots as $trustroot) { foreach ($trustroots as $trustroot) {
$user_openid_trustroot = User_openid_trustroot::pkeyGet( $user_openid_trustroot = User_openid_trustroot::pkeyGet(
array('user_id'=>$this->scoped->getID(), 'trustroot'=>$trustroot)); ['user_id'=>$this->scoped->getID(), 'trustroot'=>$trustroot]
if($user_openid_trustroot) { );
if ($user_openid_trustroot) {
$user_openid_trustroot->delete(); $user_openid_trustroot->delete();
} else { } else {
// TRANS: Form validation error when trying to remove a non-existing trustroot. // TRANS: Form validation error when trying to remove a non-existing trustroot.
@ -279,7 +306,7 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return void * @return void
*/ */
function removeOpenid() public function removeOpenid()
{ {
$oid = User_openid::getKV('canonical', $this->trimmed('openid_url')); $oid = User_openid::getKV('canonical', $this->trimmed('openid_url'));
@ -296,6 +323,26 @@ class OpenidsettingsAction extends SettingsAction
return _m('OpenID removed.'); return _m('OpenID removed.');
} }
/**
* Handles a request to sync an OpenID to the user's profile
*
* @return void
*/
public function syncOpenid()
{
$oid = User_openid::getKV('canonical', $this->trimmed('openid_url'));
if (!$oid instanceof User_openid) {
throw new ClientException(_m('No such OpenID.'));
}
$result = oid_authenticate($this->trimmed('openid_url'), 'finishsyncopenid');
if (is_string($result)) { // error message
throw new ServerException($result);
}
return _m('Synchronized OpenID.');
}
/** /**
* Handles a request to save preferences * Handles a request to save preferences
* *
@ -304,7 +351,7 @@ class OpenidsettingsAction extends SettingsAction
* *
* @return void * @return void
*/ */
function savePrefs() public function savePrefs()
{ {
$orig = null; $orig = null;
$prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID()); $prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID());

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-08 18:20+0100\n" "POT-Creation-Date: 2019-06-09 16:58+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,257 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Client error message trying to log on with OpenID while already logged on.
#: actions/openidlogin.php:33 actions/finishopenidlogin.php:37
msgid "Already logged in."
msgstr ""
#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings.
#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
#: actions/openidlogin.php:74
#, php-format
msgid ""
"For security reasons, please re-login with your [OpenID](%%doc.openid%%) "
"before changing your settings."
msgstr ""
#. TRANS: OpenID plugin message.
#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
#: actions/openidlogin.php:80
#, php-format
msgid "Login with an [OpenID](%%doc.openid%%) account."
msgstr ""
#. TRANS: OpenID plugin message. Title.
#: actions/openidlogin.php:114
msgctxt "TITLE"
msgid "OpenID Login"
msgstr ""
#. TRANS: OpenID plugin logon form legend.
#: actions/openidlogin.php:132 OpenIDPlugin.php:632
msgctxt "LEGEND"
msgid "OpenID login"
msgstr ""
#. TRANS: Field label.
#: actions/openidlogin.php:140
msgctxt "LABEL"
msgid "OpenID provider"
msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:149 OpenIDPlugin.php:649
msgid "Enter your username."
msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:151 OpenIDPlugin.php:651
msgid "You will be sent to the provider's site for authentication."
msgstr ""
#. TRANS: OpenID plugin logon form field label.
#. TRANS: Field label.
#. TRANS: OpenID plugin logon form field label.
#: actions/openidlogin.php:155 actions/openidsettings.php:101
#: OpenIDPlugin.php:655
msgid "OpenID URL"
msgstr ""
#. TRANS: OpenID plugin logon form field title.
#. TRANS: OpenID plugin logon form field instructions.
#: actions/openidlogin.php:158 OpenIDPlugin.php:658
msgid "Your OpenID URL."
msgstr ""
#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie.
#: actions/openidlogin.php:163
msgid "Remember me"
msgstr ""
#. TRANS: OpenID plugin logon form field title.
#: actions/openidlogin.php:165
msgid "Automatically login in the future; not for shared computers!"
msgstr ""
#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form.
#: actions/openidlogin.php:170
msgctxt "BUTTON"
msgid "Login"
msgstr ""
#. TRANS: Title of OpenID settings page for a user.
#: actions/openidsettings.php:55
msgctxt "TITLE"
msgid "OpenID settings"
msgstr ""
#. TRANS: Form instructions for OpenID settings.
#. TRANS: This message contains Markdown links in the form [description](link).
#: actions/openidsettings.php:67
#, php-format
msgid ""
"[OpenID](%%doc.openid%%) lets you log into many sites with the same user "
"account. Manage your associated OpenIDs from here."
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidsettings.php:96
msgctxt "LEGEND"
msgid "Add OpenID"
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:103
msgid "An OpenID URL which identifies you."
msgstr ""
#. TRANS: Button text for adding an OpenID URL.
#: actions/openidsettings.php:108
msgctxt "BUTTON"
msgid "Add"
msgstr ""
#. TRANS: Header on OpenID settings page.
#: actions/openidsettings.php:120
msgctxt "HEADER"
msgid "Remove OpenID"
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:126
msgid ""
"Removing your only OpenID would make it impossible to log in! If you need to "
"remove it, add another OpenID first."
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:142
msgid ""
"You can remove an OpenID from your account by clicking the button marked "
"\"Remove\"."
msgstr ""
#. TRANS: Button text to remove an OpenID.
#. TRANS: Button text to remove an OpenID trustroot.
#: actions/openidsettings.php:159 actions/openidsettings.php:199
msgctxt "BUTTON"
msgid "Remove"
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidsettings.php:174
msgid "OpenID Trusted Sites"
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:178
msgid ""
"The following sites are allowed to access your identity and log you in. You "
"can remove a site from this list to deny it access to your OpenID."
msgstr ""
#: actions/openidsettings.php:205
msgctxt "LEGEND"
msgid "Preferences"
msgstr ""
#. TRANS: Button text to save OpenID prefs
#. TRANS: Button text to save OpenID settings.
#: actions/openidsettings.php:209 actions/openidadminpanel.php:284
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Form validation error if no OpenID providers can be added.
#: actions/openidsettings.php:228
msgid "Cannot add new providers."
msgstr ""
#. TRANS: Unexpected form validation error.
#: actions/openidsettings.php:245
msgid "No known action for POST."
msgstr ""
#. TRANS: Form validation error when trying to remove a non-existing trustroot.
#: actions/openidsettings.php:266
msgid "No such OpenID trustroot."
msgstr ""
#. TRANS: Success message after removing trustroots.
#: actions/openidsettings.php:271
msgid "Trustroots removed."
msgstr ""
#. TRANS: Form validation error for a non-existing OpenID.
#: actions/openidsettings.php:288
msgid "No such OpenID."
msgstr ""
#. TRANS: Form validation error if OpenID is connected to another user.
#: actions/openidsettings.php:292
msgid "That OpenID does not belong to you."
msgstr ""
#. TRANS: Success message after removing an OpenID.
#: actions/openidsettings.php:296
msgid "OpenID removed."
msgstr ""
#: actions/openidsettings.php:328
msgid "OpenID preferences saved."
msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/finishaddopenid.php:66
msgid "Not logged in."
msgstr ""
#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
#: actions/finishaddopenid.php:87 actions/finishopenidlogin.php:243
msgid "OpenID authentication cancelled."
msgstr ""
#. TRANS: OpenID authentication failed; display the error message.
#. TRANS: %s is the error message.
#. TRANS: OpenID authentication failed; display the error message. %s is the error message.
#: actions/finishaddopenid.php:92 actions/finishopenidlogin.php:247
#, php-format
msgid "OpenID authentication failed: %s."
msgstr ""
#. TRANS: OpenID authentication error.
#. TRANS: Message displayed when OpenID authentication is aborted.
#: actions/finishaddopenid.php:109 actions/finishopenidlogin.php:268
msgid ""
"OpenID authentication aborted: You are not allowed to login to this site."
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already connected to them.
#: actions/finishaddopenid.php:120
msgid "You already have this OpenID!"
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already used by another user.
#: actions/finishaddopenid.php:123
msgid "Someone else already has this OpenID."
msgstr ""
#. TRANS: Message in case the OpenID object cannot be connected to the user.
#: actions/finishaddopenid.php:136
msgid "Error connecting user."
msgstr ""
#. TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
#: actions/finishaddopenid.php:143
msgid "Error updating profile."
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#: actions/finishaddopenid.php:183
msgid "OpenID Login"
msgstr ""
#. TRANS: Title for identity verification page. #. TRANS: Title for identity verification page.
#: actions/openidtrust.php:51 #: actions/openidtrust.php:51
msgid "OpenID Identity Verification" msgid "OpenID Identity Verification"
@ -289,7 +38,7 @@ msgstr ""
#. TRANS: Button text to continue OpenID identity verification. #. TRANS: Button text to continue OpenID identity verification.
#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. #. TRANS: button label for OAuth authorization page when needing OpenID authentication first.
#: actions/openidtrust.php:136 OpenIDPlugin.php:615 #: actions/openidtrust.php:136 OpenIDPlugin.php:617
msgctxt "BUTTON" msgctxt "BUTTON"
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
@ -300,6 +49,44 @@ msgctxt "BUTTON"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/finishsyncopenid.php:55 actions/finishaddopenid.php:66
msgid "Not logged in."
msgstr ""
#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
#: actions/finishsyncopenid.php:76 actions/finishopenidlogin.php:254
#: actions/finishaddopenid.php:87
msgid "OpenID authentication cancelled."
msgstr ""
#. TRANS: OpenID authentication failed; display the error message. %s is the error message.
#: actions/finishsyncopenid.php:82 actions/finishopenidlogin.php:258
#: actions/finishaddopenid.php:93
#, php-format
msgid "OpenID authentication failed: %s."
msgstr ""
#. TRANS: OpenID authentication error.
#. TRANS: Message displayed when OpenID authentication is aborted.
#. TRANS: OpenID authentication error.
#: actions/finishsyncopenid.php:99 actions/finishopenidlogin.php:279
#: actions/finishaddopenid.php:110
msgid ""
"OpenID authentication aborted: You are not allowed to login to this site."
msgstr ""
#. TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
#: actions/finishsyncopenid.php:112 actions/finishaddopenid.php:145
msgid "Error updating profile."
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#. TODO update after understanding the function ^
#: actions/finishsyncopenid.php:152
msgid "OpenID Synchronization"
msgstr ""
#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). #. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403).
#. TRANS: %s is a request identity. #. TRANS: %s is a request identity.
#: actions/openidserver.php:113 #: actions/openidserver.php:113
@ -312,6 +99,153 @@ msgstr ""
msgid "Just an OpenID provider. Nothing to see here, move along..." msgid "Just an OpenID provider. Nothing to see here, move along..."
msgstr "" msgstr ""
#. TRANS: Client error message trying to log on with OpenID while already logged on.
#: actions/finishopenidlogin.php:37 actions/openidlogin.php:33
msgid "Already logged in."
msgstr ""
#. TRANS: Message given when there is a problem with the user's session token.
#: actions/finishopenidlogin.php:42
msgid "There was a problem with your session token. Try again, please."
msgstr ""
#: actions/finishopenidlogin.php:49
msgid "You cannot register if you do not agree to the license."
msgstr ""
#: actions/finishopenidlogin.php:60
msgid "An unknown error has occured."
msgstr ""
#. TRANS: Instructions given after a first successful logon using OpenID.
#. TRANS: %s is the site name.
#: actions/finishopenidlogin.php:77
#, php-format
msgid ""
"This is the first time you have logged into %s so we must connect your "
"OpenID to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Title
#: actions/finishopenidlogin.php:84
msgctxt "TITLE"
msgid "OpenID Account Setup"
msgstr ""
#. TRANS: Fieldset legend.
#: actions/finishopenidlogin.php:122
msgid "Create new account"
msgstr ""
#. TRANS: Form guide.
#: actions/finishopenidlogin.php:125
msgid "Create a new user with this nickname."
msgstr ""
#: actions/finishopenidlogin.php:134
msgid "New nickname"
msgstr ""
#. TRANS: Field title.
#: actions/finishopenidlogin.php:137
msgid "1-64 lowercase letters or numbers, no punctuation or spaces."
msgstr ""
#. TRANS: Field label.
#: actions/finishopenidlogin.php:141
msgid "Email"
msgstr ""
#. TRANS: Field title.
#: actions/finishopenidlogin.php:144
msgid "Used only for updates, announcements, and password recovery."
msgstr ""
#. TRANS: OpenID plugin link text.
#. TRANS: %s is a link to a license with the license name as link text.
#: actions/finishopenidlogin.php:161
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Button label in form in which to create a new user on the site for an OpenID.
#: actions/finishopenidlogin.php:174
msgctxt "BUTTON"
msgid "Create"
msgstr ""
#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:188
msgid "Connect existing account"
msgstr ""
#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:191
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your OpenID."
msgstr ""
#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:195
msgid "Existing nickname"
msgstr ""
#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:199
msgid "Password"
msgstr ""
#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:203
msgid "Sync Account"
msgstr ""
#: actions/finishopenidlogin.php:204
msgid "Syncronize GNU social profile with this OpenID identity."
msgstr ""
#. TRANS: Button text in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:208
msgctxt "BUTTON"
msgid "Connect"
msgstr ""
#. TRANS: OpenID plugin message. No new user registration is allowed on the site.
#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided.
#: actions/finishopenidlogin.php:335 actions/finishopenidlogin.php:344
msgid "Registration not allowed."
msgstr ""
#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid.
#: actions/finishopenidlogin.php:351
msgid "Not a valid invitation code."
msgstr ""
#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved.
#. TRANS: OpenID plugin server error. A stored OpenID cannot be found.
#: actions/finishopenidlogin.php:366 actions/finishopenidlogin.php:450
msgid "Stored OpenID not found."
msgstr ""
#. TRANS: OpenID plugin server error.
#: actions/finishopenidlogin.php:375
msgid "Creating new account for OpenID that already has a user."
msgstr ""
#. TRANS: OpenID plugin message.
#: actions/finishopenidlogin.php:438
msgid "Invalid username or password."
msgstr ""
#. TRANS: OpenID plugin server error. The user or user profile could not be saved.
#: actions/finishopenidlogin.php:457
msgid "Error connecting user to OpenID."
msgstr ""
#. TRANS: Title for OpenID bridge administration page. #. TRANS: Title for OpenID bridge administration page.
#: actions/openidadminpanel.php:53 #: actions/openidadminpanel.php:53
msgctxt "TITLE" msgctxt "TITLE"
@ -399,184 +333,286 @@ msgid ""
"authentication for all users!" "authentication for all users!"
msgstr "" msgstr ""
#. TRANS: Button text to save OpenID settings.
#. TRANS: Button text to save OpenID prefs
#: actions/openidadminpanel.php:284 actions/openidsettings.php:229
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button title to save OpenID settings. #. TRANS: Button title to save OpenID settings.
#: actions/openidadminpanel.php:286 #: actions/openidadminpanel.php:286
msgid "Save OpenID settings." msgid "Save OpenID settings."
msgstr "" msgstr ""
#. TRANS: Message given when there is a problem with the user's session token. #. TRANS: Title of OpenID settings page for a user.
#: actions/finishopenidlogin.php:42 #: actions/openidsettings.php:57
msgid "There was a problem with your session token. Try again, please." msgctxt "TITLE"
msgid "OpenID settings"
msgstr "" msgstr ""
#. TRANS: Message given if user does not agree with the site's license. #. TRANS: Form instructions for OpenID settings.
#: actions/finishopenidlogin.php:48 #. TRANS: This message contains Markdown links in the form [description](link).
msgid "You cannot register if you do not agree to the license." #: actions/openidsettings.php:69
msgstr ""
#. TRANS: Messag given on an unknown error.
#: actions/finishopenidlogin.php:57
msgid "An unknown error has occured."
msgstr ""
#. TRANS: Instructions given after a first successful logon using OpenID.
#. TRANS: %s is the site name.
#: actions/finishopenidlogin.php:73
#, php-format #, php-format
msgid "" msgid ""
"This is the first time you have logged into %s so we must connect your " "[OpenID](%%doc.openid%%) lets you log into many sites with the same user "
"OpenID to a local account. You can either create a new account, or connect " "account. Manage your associated OpenIDs from here."
"with your existing account, if you have one."
msgstr ""
#. TRANS: Title
#: actions/finishopenidlogin.php:80
msgctxt "TITLE"
msgid "OpenID Account Setup"
msgstr "" msgstr ""
#. TRANS: Fieldset legend. #. TRANS: Fieldset legend.
#: actions/finishopenidlogin.php:118 #: actions/openidsettings.php:98
msgid "Create new account" msgctxt "LEGEND"
msgid "Add OpenID"
msgstr ""
#. TRANS: Field label.
#. TRANS: OpenID plugin logon form field label.
#: actions/openidsettings.php:103 actions/openidlogin.php:155
#: OpenIDPlugin.php:657
msgid "OpenID URL"
msgstr "" msgstr ""
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/finishopenidlogin.php:121 #: actions/openidsettings.php:105
msgid "Create a new user with this nickname." msgid "An OpenID URL which identifies you."
msgstr "" msgstr ""
#. TRANS: Field label. #. TRANS: Field label.
#: actions/finishopenidlogin.php:129 #: actions/openidsettings.php:111
msgid "New nickname" msgid "Synchronize Account"
msgstr "" msgstr ""
#. TRANS: Field title. #. TRANS: Form guide.
#: actions/finishopenidlogin.php:132 #: actions/openidsettings.php:113
msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgid "Synchronize GNU social profile with this OpenID identity."
msgstr "" msgstr ""
#. TRANS: Field label. #. TRANS: Button text for adding an OpenID URL.
#: actions/finishopenidlogin.php:136 #: actions/openidsettings.php:117
msgid "Email" msgctxt "BUTTON"
msgid "Add"
msgstr "" msgstr ""
#. TRANS: Field title. #. TRANS: Header on OpenID settings page.
#: actions/finishopenidlogin.php:138 #: actions/openidsettings.php:129
msgid "Used only for updates, announcements, and password recovery." msgctxt "HEADER"
msgid "OpenID Actions"
msgstr "" msgstr ""
#. TRANS: OpenID plugin link text. #. TRANS: Form guide.
#. TRANS: %s is a link to a license with the license name as link text. #: actions/openidsettings.php:134
#: actions/finishopenidlogin.php:155 msgid ""
"You can't remove your main OpenID account without either adding a password "
"to your GNU social account or another OpenID account. You can synchronize "
"your profile with your OpenID by clicking the button labeled \"Synchronize\"."
msgstr ""
#. TRANS: Button text to sync OpenID with the GS profile.
#. TRANS: Button text to sync an OpenID with the GS profile.
#: actions/openidsettings.php:150 actions/openidsettings.php:174
msgctxt "BUTTON"
msgid "Synchronize"
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:157
msgid ""
"You can remove an OpenID from your account by clicking the button labeled "
"\"Remove\". You can synchronize your profile with an OpenID by clicking the "
"button labeled \"Synchronize\"."
msgstr ""
#. TRANS: Button text to remove an OpenID.
#. TRANS: Button text to remove an OpenID trustroot.
#: actions/openidsettings.php:176 actions/openidsettings.php:219
msgctxt "BUTTON"
msgid "Remove"
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidsettings.php:192
msgid "OpenID Trusted Sites"
msgstr ""
#. TRANS: Form guide.
#: actions/openidsettings.php:196
msgid ""
"The following sites are allowed to access your identity and log you in. You "
"can remove a site from this list to deny it access to your OpenID."
msgstr ""
#: actions/openidsettings.php:225
msgctxt "LEGEND"
msgid "Preferences"
msgstr ""
#. TRANS: Form validation error if no OpenID providers can be added.
#: actions/openidsettings.php:248
msgid "Cannot add new providers."
msgstr ""
#. TRANS: Unexpected form validation error.
#: actions/openidsettings.php:271
msgid "No known action for POST."
msgstr ""
#. TRANS: Form validation error when trying to remove a non-existing trustroot.
#: actions/openidsettings.php:293
msgid "No such OpenID trustroot."
msgstr ""
#. TRANS: Success message after removing trustroots.
#: actions/openidsettings.php:298
msgid "Trustroots removed."
msgstr ""
#. TRANS: Form validation error for a non-existing OpenID.
#: actions/openidsettings.php:315 actions/openidsettings.php:336
msgid "No such OpenID."
msgstr ""
#. TRANS: Form validation error if OpenID is connected to another user.
#: actions/openidsettings.php:319
msgid "That OpenID does not belong to you."
msgstr ""
#. TRANS: Success message after removing an OpenID.
#: actions/openidsettings.php:323
msgid "OpenID removed."
msgstr ""
#: actions/openidsettings.php:343
msgid "Synchronized OpenID."
msgstr ""
#: actions/openidsettings.php:375
msgid "OpenID preferences saved."
msgstr ""
#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings.
#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
#: actions/openidlogin.php:74
#, php-format #, php-format
msgid "" msgid ""
"My text and files are available under %s except this private data: password, " "For security reasons, please re-login with your [OpenID](%%doc.openid%%) "
"email address, IM address, and phone number." "before changing your settings."
msgstr ""
#. TRANS: Button label in form in which to create a new user on the site for an OpenID.
#: actions/finishopenidlogin.php:168
msgctxt "BUTTON"
msgid "Create"
msgstr ""
#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:182
msgid "Connect existing account"
msgstr ""
#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:185
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your OpenID."
msgstr ""
#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:189
msgid "Existing nickname"
msgstr ""
#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:193
msgid "Password"
msgstr ""
#. TRANS: Button text in form in which to connect an OpenID to an existing user on the site.
#: actions/finishopenidlogin.php:197
msgctxt "BUTTON"
msgid "Connect"
msgstr ""
#. TRANS: OpenID plugin message. No new user registration is allowed on the site.
#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided.
#: actions/finishopenidlogin.php:324 actions/finishopenidlogin.php:333
msgid "Registration not allowed."
msgstr ""
#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid.
#: actions/finishopenidlogin.php:340
msgid "Not a valid invitation code."
msgstr ""
#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved.
#. TRANS: OpenID plugin server error. A stored OpenID cannot be found.
#: actions/finishopenidlogin.php:355 actions/finishopenidlogin.php:438
msgid "Stored OpenID not found."
msgstr ""
#. TRANS: OpenID plugin server error.
#: actions/finishopenidlogin.php:364
msgid "Creating new account for OpenID that already has a user."
msgstr "" msgstr ""
#. TRANS: OpenID plugin message. #. TRANS: OpenID plugin message.
#: actions/finishopenidlogin.php:426 #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
msgid "Invalid username or password." #: actions/openidlogin.php:80
#, php-format
msgid "Login with an [OpenID](%%doc.openid%%) account."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. The user or user profile could not be saved. #. TRANS: OpenID plugin message. Title.
#: actions/finishopenidlogin.php:445 #: actions/openidlogin.php:114
msgid "Error connecting user to OpenID." msgctxt "TITLE"
msgid "OpenID Login"
msgstr ""
#. TRANS: OpenID plugin logon form legend.
#: actions/openidlogin.php:132 OpenIDPlugin.php:634
msgctxt "LEGEND"
msgid "OpenID login"
msgstr ""
#. TRANS: Field label.
#: actions/openidlogin.php:140
msgctxt "LABEL"
msgid "OpenID provider"
msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:149 OpenIDPlugin.php:651
msgid "Enter your username."
msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:151 OpenIDPlugin.php:653
msgid "You will be sent to the provider's site for authentication."
msgstr ""
#. TRANS: OpenID plugin logon form field title.
#. TRANS: OpenID plugin logon form field instructions.
#: actions/openidlogin.php:158 OpenIDPlugin.php:660
msgid "Your OpenID URL."
msgstr ""
#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie.
#: actions/openidlogin.php:163
msgid "Remember me"
msgstr ""
#. TRANS: OpenID plugin logon form field title.
#: actions/openidlogin.php:165
msgid "Automatically login in the future; not for shared computers!"
msgstr ""
#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form.
#: actions/openidlogin.php:170
msgctxt "BUTTON"
msgid "Login"
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already connected to them.
#: actions/finishaddopenid.php:121
msgid "You already have this OpenID!"
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already used by another user.
#: actions/finishaddopenid.php:124
msgid "Someone else already has this OpenID."
msgstr ""
#. TRANS: Message in case the OpenID object cannot be connected to the user.
#: actions/finishaddopenid.php:137
msgid "Error connecting user."
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#: actions/finishaddopenid.php:187
msgid "OpenID Login"
msgstr "" msgstr ""
#. TRANS: Client exception thrown when an action is not available. #. TRANS: Client exception thrown when an action is not available.
#: OpenIDPlugin.php:141 #: OpenIDPlugin.php:143
msgid "Unavailable action." msgid "Unavailable action."
msgstr "" msgstr ""
#. TRANS: Tooltip for main menu option "Login" #. TRANS: Tooltip for main menu option "Login"
#: OpenIDPlugin.php:190 #: OpenIDPlugin.php:192
msgctxt "TOOLTIP" msgctxt "TOOLTIP"
msgid "Login to the site." msgid "Login to the site."
msgstr "" msgstr ""
#. TRANS: Main menu option when not logged in to log in #. TRANS: Main menu option when not logged in to log in
#: OpenIDPlugin.php:193 #: OpenIDPlugin.php:195
msgctxt "MENU" msgctxt "MENU"
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#. TRANS: Tooltip for main menu option "Help" #. TRANS: Tooltip for main menu option "Help"
#: OpenIDPlugin.php:198 #: OpenIDPlugin.php:200
msgctxt "TOOLTIP" msgctxt "TOOLTIP"
msgid "Help me!" msgid "Help me!"
msgstr "" msgstr ""
#. TRANS: Main menu option for help on the StatusNet site #. TRANS: Main menu option for help on the StatusNet site
#: OpenIDPlugin.php:201 #: OpenIDPlugin.php:203
msgctxt "MENU" msgctxt "MENU"
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. TRANS: Tooltip for main menu option "Search" #. TRANS: Tooltip for main menu option "Search"
#: OpenIDPlugin.php:207 #: OpenIDPlugin.php:209
msgctxt "TOOLTIP" msgctxt "TOOLTIP"
msgid "Search for people or text." msgid "Search for people or text."
msgstr "" msgstr ""
#. TRANS: Main menu option when logged in or when the StatusNet instance is not private #. TRANS: Main menu option when logged in or when the StatusNet instance is not private
#: OpenIDPlugin.php:210 #: OpenIDPlugin.php:212
msgctxt "MENU" msgctxt "MENU"
msgid "Search" msgid "Search"
msgstr "" msgstr ""
@ -584,25 +620,25 @@ msgstr ""
#. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on site logon page.
#. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID plugin menu item on user settings page.
#. TRANS: OpenID configuration menu item. #. TRANS: OpenID configuration menu item.
#: OpenIDPlugin.php:267 OpenIDPlugin.php:303 OpenIDPlugin.php:477 #: OpenIDPlugin.php:269 OpenIDPlugin.php:305 OpenIDPlugin.php:479
#: OpenIDPlugin.php:557 #: OpenIDPlugin.php:559
msgctxt "MENU" msgctxt "MENU"
msgid "OpenID" msgid "OpenID"
msgstr "" msgstr ""
#. TRANS: OpenID plugin tooltip for logon menu item. #. TRANS: OpenID plugin tooltip for logon menu item.
#: OpenIDPlugin.php:269 #: OpenIDPlugin.php:271
msgid "Login or register with OpenID." msgid "Login or register with OpenID."
msgstr "" msgstr ""
#. TRANS: OpenID plugin tooltip for user settings menu item. #. TRANS: OpenID plugin tooltip for user settings menu item.
#: OpenIDPlugin.php:305 #: OpenIDPlugin.php:307
msgid "Add or remove OpenIDs." msgid "Add or remove OpenIDs."
msgstr "" msgstr ""
#. TRANS: Page notice for logged in users to try and get them to add an OpenID account to their StatusNet account. #. TRANS: Page notice for logged in users to try and get them to add an OpenID account to their StatusNet account.
#. TRANS: This message contains Markdown links in the form (description)[link]. #. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:419 #: OpenIDPlugin.php:421
#, php-format #, php-format
msgid "" msgid ""
"(Have an [OpenID](http://openid.net/)? [Add an OpenID to your account]" "(Have an [OpenID](http://openid.net/)? [Add an OpenID to your account]"
@ -611,7 +647,7 @@ msgstr ""
#. TRANS: Page notice for anonymous users to try and get them to register with an OpenID account. #. TRANS: Page notice for anonymous users to try and get them to register with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link]. #. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:424 #: OpenIDPlugin.php:426
#, php-format #, php-format
msgid "" msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID registration]" "(Have an [OpenID](http://openid.net/)? Try our [OpenID registration]"
@ -620,7 +656,7 @@ msgstr ""
#. TRANS: Page notice on the login page to try and get them to log on with an OpenID account. #. TRANS: Page notice on the login page to try and get them to log on with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link]. #. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:432 #: OpenIDPlugin.php:434
#, php-format #, php-format
msgid "" msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID login](%%action." "(Have an [OpenID](http://openid.net/)? Try our [OpenID login](%%action."
@ -628,17 +664,17 @@ msgid ""
msgstr "" msgstr ""
#. TRANS: Tooltip for OpenID configuration menu item. #. TRANS: Tooltip for OpenID configuration menu item.
#: OpenIDPlugin.php:559 #: OpenIDPlugin.php:561
msgid "OpenID configuration." msgid "OpenID configuration."
msgstr "" msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: OpenIDPlugin.php:605 #: OpenIDPlugin.php:607
msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site."
msgstr "" msgstr ""
#. TRANS: Field label. #. TRANS: Field label.
#: OpenIDPlugin.php:640 #: OpenIDPlugin.php:642
msgid "OpenID provider" msgid "OpenID provider"
msgstr "" msgstr ""

View File

@ -4,13 +4,14 @@
# #
# Translators: # Translators:
# Luke Hollins <luke@farcry.ca>, 2015 # Luke Hollins <luke@farcry.ca>, 2015
# Bruno Casteleiro <brunoccast@fc.up.pt>, 2019
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU social\n" "Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n" "POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-03-09 11:46+0000\n" "PO-Revision-Date: 2015-03-09 11:46+0000\n"
"Last-Translator: Luke Hollins <luke@farcry.ca>\n" "Last-Translator: Bruno Casteleiro <brunoccast@fc.up.pt>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/gnu-social/gnu-social/language/en_GB/)\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/gnu-social/gnu-social/language/en_GB/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -198,28 +199,30 @@ msgid "Add"
msgstr "Add" msgstr "Add"
#. TRANS: Header on OpenID settings page. #. TRANS: Header on OpenID settings page.
#: actions/openidsettings.php:133 #: actions/openidsettings.php:129
msgctxt "HEADER" msgctxt "HEADER"
msgid "Remove OpenID" msgid "OpenID Actions"
msgstr "Remove OpenID" msgstr "OpenID Actions"
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/openidsettings.php:139 #: actions/openidsettings.php:134
msgid "" msgid ""
"Removing your only OpenID would make it impossible to log in! If you need to" "You can't remove your main OpenID account without either adding a password "
" remove it, add another OpenID first." "to your GNU social account or another OpenID account. You can synchronize "
msgstr "Removing your only OpenID would make it impossible to log in! If you need to remove it, add another OpenID first." "your profile with your OpenID by clicking the button labeled \"Synchronize\"."
msgstr "You can't remove your main OpenID account without either adding a password to your GNU social account or another OpenID account. You can synchronize your profile with your OpenID by clicking the button labeled \"Synchronize\"."
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/openidsettings.php:155 #: actions/openidsettings.php:157
msgid "" msgid ""
"You can remove an OpenID from your account by clicking the button marked " "You can remove an OpenID from your account by clicking the button labeled "
"\"Remove\"." "\"Remove\". You can synchronize your profile with an OpenID by clicking "
msgstr "You can remove an OpenID from your account by clicking the button marked \"Remove\"." "the button labeled \"Synchronize\"."
msgstr "You can remove an OpenID from your account by clicking the button labeled \"Remove\". You can synchronize your profile with an OpenID by clicking the button labeled \"Synchronize\"."
#. TRANS: Button text to remove an OpenID. #. TRANS: Button text to remove an OpenID.
#. TRANS: Button text to remove an OpenID trustroot. #. TRANS: Button text to remove an OpenID trustroot.
#: actions/openidsettings.php:179 actions/openidsettings.php:223 #: actions/openidsettings.php:177 actions/openidsettings.php:223
msgctxt "BUTTON" msgctxt "BUTTON"
msgid "Remove" msgid "Remove"
msgstr "Remove" msgstr "Remove"
@ -744,3 +747,28 @@ msgstr "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site."
#: OpenIDPlugin.php:687 #: OpenIDPlugin.php:687
msgid "OpenID provider" msgid "OpenID provider"
msgstr "OpenID provider" msgstr "OpenID provider"
#. TRANS: Field label.
#: actions/openidsettings.php:111
msgid "Synchronize Account"
msgstr "Synchronize Account"
#. TRANS: Form guide
#: actions/openidsettings.php:113
msgid "Synchronize GNU social profile with this OpenID identity."
msgstr "Synchronize GNU social profile with this OpenID identity."
#. TRANS: Button text to sync OpenID with the GS profile.
#: actions/openidsettings.php:150 actions/openidsettings.php:174
msgctxt "BUTTON"
msgid "Synchronize"
msgstr "Synchronize"
#: actions/openidsettings.php:343
msgid "Synchronized OpenID."
msgstr "Synchronized OpenID."
#. TRANS: Title
#: actions/finishsyncopenid:152
msgid "OpenID Synchronization"
msgstr "OpenID Synchronization"

View File

@ -3,13 +3,14 @@
# This file is under https://www.gnu.org/licenses/agpl v3 or later # This file is under https://www.gnu.org/licenses/agpl v3 or later
# #
# Translators: # Translators:
# Bruno Casteleiro <brunoccast@fc.up.pt>, 2019
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU social\n" "Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n" "POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:23+0000\n" "PO-Revision-Date: 2015-02-05 16:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Bruno Casteleiro <brunoccast@fc.up.pt>\n"
"Language-Team: Portuguese (http://www.transifex.com/gnu-social/gnu-social/language/pt/)\n" "Language-Team: Portuguese (http://www.transifex.com/gnu-social/gnu-social/language/pt/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -197,10 +198,10 @@ msgid "Add"
msgstr "Adicionar" msgstr "Adicionar"
#. TRANS: Header on OpenID settings page. #. TRANS: Header on OpenID settings page.
#: actions/openidsettings.php:133 #: actions/openidsettings.php:129
msgctxt "HEADER" msgctxt "HEADER"
msgid "Remove OpenID" msgid "OpenID Actions"
msgstr "" msgstr "Opções OpenID"
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/openidsettings.php:139 #: actions/openidsettings.php:139
@ -743,3 +744,44 @@ msgstr ""
#: OpenIDPlugin.php:687 #: OpenIDPlugin.php:687
msgid "OpenID provider" msgid "OpenID provider"
msgstr "" msgstr ""
#. TRANS: Field label.
#: actions/openidsettings.php:111
msgid "Synchronize Account"
msgstr "Sincronizar Conta"
#. TRANS: Form guide.
#: actions/openidsettings.php:113
msgid "Synchronize GNU social profile with this OpenID identity."
msgstr "Sincronizar perfil do GNU social com esta identidade OpenID."
#. TRANS: Form guide.
#: actions/openidsettings.php:134
msgid ""
"You can't remove your main OpenID account without either adding a password "
"to your GNU social account or another OpenID account. You can synchronize "
"your profile with your OpenID by clicking the button labeled \"Synchronize\"."
msgstr "Não podes remover a tua única conta OpenID sem primeiro adicionares uma palavra-passe à tua conta do GNU social ou adicionar outra identidade OpenID. Podes sincronizar o teu perfil com o teu OpenID clicando no botão \"Sincronizar\"."
#. TRANS: Button text to sync OpenID with the GS profile.
#: actions/openidsettings.php:150 actions/openidsettings.php:174
msgctxt "BUTTON"
msgid "Sincronizar"
msgstr "Sincronizar"
#. TRANS: Form guide.
#: actions/openidsettings.php:157
msgid ""
"You can remove an OpenID from your account by clicking the button labeled "
"\"Remove\". You can synchronize your profile with an OpenID by clicking "
"the button labeled \"Synchronize\"."
msgstr "Podes remover uma das tuas contas OpenID clicando no botão \"Remover\". Podes sincronizar o teu perfil com uma conta OpenID clicando no botão \"Sincronizar\"."
#: actions/openidsettings.php:343
msgid "Synchronized OpenID."
msgstr "OpenID sincronizado."
#. TRANS: Title
#: actions/finishsyncopenid:152
msgid "OpenID Synchronization"
msgstr "Sincronização OpenID"

View File

@ -3,13 +3,14 @@
# This file is under https://www.gnu.org/licenses/agpl v3 or later # This file is under https://www.gnu.org/licenses/agpl v3 or later
# #
# Translators: # Translators:
# Phablulo Joel
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU social\n" "Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n" "POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-04-29 02:53+0000\n" "PO-Revision-Date: 2015-04-29 02:53+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n" "Last-Translator: Phablulo Joel\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/gnu-social/gnu-social/language/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/gnu-social/gnu-social/language/pt_BR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -197,10 +198,10 @@ msgid "Add"
msgstr "Adicionar" msgstr "Adicionar"
#. TRANS: Header on OpenID settings page. #. TRANS: Header on OpenID settings page.
#: actions/openidsettings.php:133 #: actions/openidsettings.php:129
msgctxt "HEADER" msgctxt "HEADER"
msgid "Remove OpenID" msgid "OpenID Actions"
msgstr "" msgstr "Opções OpenID"
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/openidsettings.php:139 #: actions/openidsettings.php:139
@ -743,3 +744,44 @@ msgstr ""
#: OpenIDPlugin.php:687 #: OpenIDPlugin.php:687
msgid "OpenID provider" msgid "OpenID provider"
msgstr "" msgstr ""
#. TRANS: Field label.
#: actions/openidsettings.php:111
msgid "Synchronize Account"
msgstr "Sincronizar Conta"
#. TRANS: Form guide.
#: actions/openidsettings.php:113
msgid "Synchronize GNU social profile with this OpenID identity."
msgstr "Sincronizar perfil do GNU social com esta conta OpenID"
#. TRANS: Form guide.
#: actions/openidsettings.php:134
msgid ""
"You can't remove your main OpenID account without either adding a password "
"to your GNU social account or another OpenID account. You can synchronize "
"your profile with your OpenID by clicking the button labeled \"Synchronize\"."
msgstr "Você não pode remover sua única conta OpenID sem primeiro adicionar uma senha à sua conta do GNU Social ou adicionar outra conta OpenID. Para sincronizar seu perfil, clique no botão \"Sincronizar\"."
#. TRANS: Button text to sync OpenID with the GS profile.
#: actions/openidsettings.php:150 actions/openidsettings.php:174
msgctxt "BUTTON"
msgid "Sincronizar"
msgstr "Sincronizar"
#. TRANS: Form guide.
#: actions/openidsettings.php:157
msgid ""
"You can remove an OpenID from your account by clicking the button labeled "
"\"Remove\". You can synchronize your profile with an OpenID by clicking "
"the button labeled \"Synchronize\"."
msgstr "Você pode remover uma de suas contas OpenID clicando no botão \"Remover\" ou sincronizar seu perfil com uma conta OpenID clicando no botão \"Sincronizar\"."
#: actions/openidsettings.php:343
msgid "Synchronized OpenID."
msgstr "OpenID sincronizado."
#. TRANS: Title
#: actions/finishsyncopenid:152
msgid "OpenID Synchronization"
msgstr "Sincronização OpenID"

View File

@ -3,13 +3,14 @@
# This file is under https://www.gnu.org/licenses/agpl v3 or later # This file is under https://www.gnu.org/licenses/agpl v3 or later
# #
# Translators: # Translators:
# Alexei Sorokin <sor.alexei@meowr.ru>, 2019
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU social\n" "Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n" "POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:23+0000\n" "PO-Revision-Date: 2015-02-05 16:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Alexei Sorokin <sor.alexei@meowr.ru>\n"
"Language-Team: Russian (http://www.transifex.com/gnu-social/gnu-social/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/gnu-social/gnu-social/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -197,10 +198,10 @@ msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#. TRANS: Header on OpenID settings page. #. TRANS: Header on OpenID settings page.
#: actions/openidsettings.php:133 #: actions/openidsettings.php:129
msgctxt "HEADER" msgctxt "HEADER"
msgid "Remove OpenID" msgid "OpenID Actions"
msgstr "" msgstr "Действия с OpenID"
#. TRANS: Form guide. #. TRANS: Form guide.
#: actions/openidsettings.php:139 #: actions/openidsettings.php:139
@ -743,3 +744,44 @@ msgstr ""
#: OpenIDPlugin.php:687 #: OpenIDPlugin.php:687
msgid "OpenID provider" msgid "OpenID provider"
msgstr "" msgstr ""
#. TRANS: Field label.
#: actions/openidsettings.php:111
msgid "Synchronize Account"
msgstr "Синхронизировать аккаунт"
#. TRANS: Form guide.
#: actions/openidsettings.php:113
msgid "Synchronize GNU social profile with this OpenID identity."
msgstr "Синхронизировать профиль GNU social с этим идентификатором OpenID"
#. TRANS: Form guide.
#: actions/openidsettings.php:134
msgid ""
"You can't remove your main OpenID account without either adding a password "
"to your GNU social account or another OpenID account. You can synchronize "
"your profile with your OpenID by clicking the button labeled \"Synchronize\"."
msgstr "Вы не можете удалить ваш основной аккаунт OpenID без добавления к вашему аккаунту GNU social либо пароля, либо иного аккаунта OpenID. Вы можете синхронизировать ваш профиль с OpenID нажатием на кнопку \"Синхронизировать\"."
#. TRANS: Button text to sync OpenID with the GS profile.
#: actions/openidsettings.php:150 actions/openidsettings.php:174
msgctxt "BUTTON"
msgid "Sincronizar"
msgstr "синхронизировать"
#. TRANS: Form guide.
#: actions/openidsettings.php:157
msgid ""
"You can remove an OpenID from your account by clicking the button labeled "
"\"Remove\". You can synchronize your profile with an OpenID by clicking "
"the button labeled \"Synchronize\"."
msgstr "Вы можете удалить OpenID с вашего аккаунта нажатием на кнопку \"Удалить\". Вы можете синхронизировать ваш профиль с OpenID нажатием на кнопку \"Синхронизировать\"."
#: actions/openidsettings.php:343
msgid "Synchronized OpenID."
msgstr "Синхронизированный OpenID."
#. TRANS: Title
#: actions/finishsyncopenid:152
msgid "OpenID Synchronization"
msgstr "Синхронизация OpenID"

File diff suppressed because it is too large Load Diff