plugin_openid:

* New PHP-OpenId lib
* Patched it with a pull request found at GitHub solving depreated
problems
* Removed temp storage path from config (as no user knows what to do
here) and replaced it with a templates_c path.
* A lot more documentation inside the plugin configuration.
* A lot of fixes.
This commit is contained in:
Grischa Brockhaus 2012-03-24 02:26:09 +01:00
parent 6a939ae1a9
commit 2c34381896
10 changed files with 120 additions and 35 deletions

View file

@ -1,6 +1,7 @@
Version 0.3 (brockhaus)
Version 0.5 (brockhaus)
---------------------------------
* New PHP-OpenId lib
* Patched it with a pull request found at GitHub solving depreated
problems
* Patched it with a pull request found at GitHub solving depreated problems
* Removed temp storage path from config (as no user knows what to do here) and replaced it with a templates_c path.
* A lot more documentation inside the plugin configuration.
* A lot of fixes.

View file

@ -12,9 +12,6 @@
@define('PLUGIN_EVENT_OPENID_SELECT', 'OpenID svázané s tímto účtem');
@define('PLUGIN_OPENID_STORE_PATH', 'Cesta k OpenID úložišti');
@define('PLUGIN_OPENID_STORE_PATH_DESC', 'Cesta na serveru pro ukládání dočasných dat seance OpenID');
@define('PLUGIN_OPENID_SERVER', 'OpenID server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID server pro použití delegáta (vyžaduje naplněné OpenID delegáty)');

View file

@ -12,9 +12,6 @@
@define('PLUGIN_EVENT_OPENID_SELECT', 'OpenID svázané s tímto účtem');
@define('PLUGIN_OPENID_STORE_PATH', 'Cesta k OpenID úložišti');
@define('PLUGIN_OPENID_STORE_PATH_DESC', 'Cesta na serveru pro ukládání dočasných dat seance OpenID');
@define('PLUGIN_OPENID_SERVER', 'OpenID server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID server pro použití delegáta (vyžaduje naplněné OpenID delegáty)');

View file

@ -0,0 +1,38 @@
<?php
@define('PLUGIN_OPENID_NAME', 'OpenID Authentifizierung');
@define('PLUGIN_OPENID_DESC', 'Ermöglicht es Autoren des Blogs, sich mit ihrer OpenID einzuloggen.');
@define('PLUGIN_OPENID_EXISTS', 'Du bist bereits mit OpenID registriert.');
@define('PLUGIN_OPENID_WRONG_ACTIVATION', 'Ungültige Aktivierungs URL!');
@define('PLUGIN_EVENT_OPENID_SELECT', 'Mit diesem Benutzer verknüfte OpenID URL');
@define('PLUGIN_OPENID_DESCRIPTION',
'<h3>OpenID benutzen, um in Dein Blog einzuloggen</h3>' .
'<p>Das Plugin benötigt keinerlei Konfiguration, um ein OpenID Login zu implementieren (OpenID konfiguriert sich selbstständig)</p>' .
'<p>Aber Benutzer, die OpenID als Login verwenden wollen, müssen einmal angeben, welche OpenID URL sie identifizieren soll. ' .
'Wenn Du also OpenID als Login Option benutzen möchtest, gehe zu Deiner <a href="serendipity_admin.php?serendipity[adminModule]=personal">Profilseite in Serendipity</a> und konfiguriere Deine OpenID URL (im unteren Bereich der Seite).</p>'
);
@define('PLUGIN_OPENID_DELEGATION_DESCRIPTION',
'<h3>Einstellungen für eine OpenID Delegation (Optional)</h3>' .
'<p>Wenn Du Diene Blog URL als Open ID URL benutzen möchtest, kannst Du hier eine Delegation von Deinem Blog zu Deinem eigentlichen OpenID Provider einrichten.<br/>' .
'Das Plugin wird damit dann Informationen in dem HTML Deines Blogs hinterlassen, die die Services darüber informieren, wo Deine OpenID gehostet wird.</p>' .
'<p>Das Aufsetzen der Delegation ist völlig optional und wird nicht für ein Login in Dein Blog mittels OpenID benötigt.</p>'
);
@define('PLUGIN_OPENID_SERVER', 'OpenID Server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID Server, der Deine OpenID hostet (benötigt einen Eintrag in "OpenID Delegation")');
@define('PLUGIN_OPENID_DELEGATE', 'Deine OpenID Delegation');
@define('PLUGIN_OPENID_DELEGATE_DESC', 'OpenID Delegation (benötigt einen Eintrag in "OpenID Server")');
@define('PLUGIN_OPENID_XRDS_LOC', 'OpenID XRDS Location');
@define('PLUGIN_OPENID_XRDS_LOC_DESC', 'URL des XRDS Dokumentes (wird meist nicht benötigt)');
@define('PLUGIN_OPENID_LOGIN_INPUT', 'Melde Dich mit Deiner OpenID an.');
@define('PLUGIN_OPENID_UPDATE_SUCCESS', 'Deine OpenID wurde erneuert.');
@define('PLUGIN_OPENID_UPDATE_FAIL', 'Es trat ein Fehler beim Update Deiner OpenID auf.');
@define('PLUGIN_OPENID_INVALID_RESPONSE', 'Ungültige OpenID eingegeben');

View file

@ -4,9 +4,8 @@
$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
if (file_exists($probelang)) {
include $probelang;
} else {
include dirname(__FILE__) . '/lang_en.inc.php';
}
include_once dirname(__FILE__) . '/lang_en.inc.php';
function escape($message) {
return htmlspecialchars($message, ENT_QUOTES);

View file

@ -12,9 +12,6 @@
@define('PLUGIN_EVENT_OPENID_SELECT', 'OpenID svázané s tímto účtem');
@define('PLUGIN_OPENID_STORE_PATH', 'Cesta k OpenID úložišti');
@define('PLUGIN_OPENID_STORE_PATH_DESC', 'Cesta na serveru pro ukládání dočasných dat seance OpenID');
@define('PLUGIN_OPENID_SERVER', 'OpenID server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID server pro použití delegáta (vyžaduje naplněné OpenID delegáty)');

View file

@ -12,9 +12,6 @@
@define('PLUGIN_EVENT_OPENID_SELECT', 'OpenID svázané s tímto účtem');
@define('PLUGIN_OPENID_STORE_PATH', 'Cesta k OpenID úložišti');
@define('PLUGIN_OPENID_STORE_PATH_DESC', 'Cesta na serveru pro ukládání dočasných dat seance OpenID');
@define('PLUGIN_OPENID_SERVER', 'OpenID server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID server pro použití delegáta (vyžaduje naplněné OpenID delegáty)');

View file

@ -0,0 +1,38 @@
<?php
@define('PLUGIN_OPENID_NAME', 'OpenID Authentifizierung');
@define('PLUGIN_OPENID_DESC', 'Ermöglicht es Autoren des Blogs, sich mit ihrer OpenID einzuloggen.');
@define('PLUGIN_OPENID_EXISTS', 'Du bist bereits mit OpenID registriert.');
@define('PLUGIN_OPENID_WRONG_ACTIVATION', 'Ungültige Aktivierungs URL!');
@define('PLUGIN_EVENT_OPENID_SELECT', 'Mit diesem Benutzer verknüfte OpenID URL');
@define('PLUGIN_OPENID_DESCRIPTION',
'<h3>OpenID benutzen, um in Dein Blog einzuloggen</h3>' .
'<p>Das Plugin benötigt keinerlei Konfiguration, um ein OpenID Login zu implementieren (OpenID konfiguriert sich selbstständig)</p>' .
'<p>Aber Benutzer, die OpenID als Login verwenden wollen, müssen einmal angeben, welche OpenID URL sie identifizieren soll. ' .
'Wenn Du also OpenID als Login Option benutzen möchtest, gehe zu Deiner <a href="serendipity_admin.php?serendipity[adminModule]=personal">Profilseite in Serendipity</a> und konfiguriere Deine OpenID URL (im unteren Bereich der Seite).</p>'
);
@define('PLUGIN_OPENID_DELEGATION_DESCRIPTION',
'<h3>Einstellungen für eine OpenID Delegation (Optional)</h3>' .
'<p>Wenn Du Diene Blog URL als Open ID URL benutzen möchtest, kannst Du hier eine Delegation von Deinem Blog zu Deinem eigentlichen OpenID Provider einrichten.<br/>' .
'Das Plugin wird damit dann Informationen in dem HTML Deines Blogs hinterlassen, die die Services darüber informieren, wo Deine OpenID gehostet wird.</p>' .
'<p>Das Aufsetzen der Delegation ist völlig optional und wird nicht für ein Login in Dein Blog mittels OpenID benötigt.</p>'
);
@define('PLUGIN_OPENID_SERVER', 'OpenID Server');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID Server, der Deine OpenID hostet (benötigt einen Eintrag in "OpenID Delegation")');
@define('PLUGIN_OPENID_DELEGATE', 'Deine OpenID Delegation');
@define('PLUGIN_OPENID_DELEGATE_DESC', 'OpenID Delegation (benötigt einen Eintrag in "OpenID Server")');
@define('PLUGIN_OPENID_XRDS_LOC', 'OpenID XRDS Location');
@define('PLUGIN_OPENID_XRDS_LOC_DESC', 'URL des XRDS Dokumentes (wird meist nicht benötigt)');
@define('PLUGIN_OPENID_LOGIN_INPUT', 'Melde Dich mit Deiner OpenID an.');
@define('PLUGIN_OPENID_UPDATE_SUCCESS', 'Deine OpenID wurde erneuert.');
@define('PLUGIN_OPENID_UPDATE_FAIL', 'Es trat ein Fehler beim Update Deiner OpenID auf.');
@define('PLUGIN_OPENID_INVALID_RESPONSE', 'Ungültige OpenID eingegeben');

View file

@ -8,19 +8,31 @@
@define('PLUGIN_EVENT_OPENID_SELECT', 'Current OpenID associated with this account');
@define('PLUGIN_OPENID_STORE_PATH', 'OpenID storage path');
@define('PLUGIN_OPENID_STORE_PATH_DESC', 'Path on server to store temporary OpenID session data');
@define('PLUGIN_OPENID_DESCRIPTION',
'<h3>Using OpenID to log into your blog</h3>' .
'<p>This plugin does not need any configuration to enable login into your blog using OpenID (OpenID is self configuring)</p>' .
'<p>But users, who want to use OpenID for login have to configure the OpenID URL they want to be identified with. ' .
'So if you want to use OpenID as a login option, go to your <a href="serendipity_admin.php?serendipity[adminModule]=personal">Serendipity profile page</a> and configure your OpenID URL (at the bottom of the page).</p>'
);
@define('PLUGIN_OPENID_SERVER', 'OpenID server');
@define('PLUGIN_OPENID_DELEGATION_DESCRIPTION',
'<h3>OpenID Delegation Settings (Optional)</h3>' .
'<p>If you want to use your blog as your OpenID URL while logging in to services supporting it, you can configure here a delegation from your blog to the OpenID service hosting your ID.<br/>' .
'The plugin will add some information to your blogs HTML informing the services about where to look up your ID when you enter your blogs URL as your OpenID.</p>' .
'<p>Settung up delegation is completely optional and not needed for logging into your blog with OpenID.</p>'
);
@define('PLUGIN_OPENID_SERVER', 'OpenID server used for delegation');
@define('PLUGIN_OPENID_SERVER_DESC', 'OpenID server to use for delegate (requires OpenID delegate to be populated)');
@define('PLUGIN_OPENID_DELEGATE', 'OpenID delegate');
@define('PLUGIN_OPENID_DELEGATE', 'Delegate to OpenID URL');
@define('PLUGIN_OPENID_DELEGATE_DESC', 'OpenID delegate (requires OpenID server to be populated)');
@define('PLUGIN_OPENID_XRDS_LOC', 'OpenID XRDS Location');
@define('PLUGIN_OPENID_XRDS_LOC_DESC', 'URL for XRDS Document Location (requires OpenID server to be populated)');
@define('PLUGIN_OPENID_XRDS_LOC_DESC', 'URL for XRDS Document Location (not needed normaly)');
@define('PLUGIN_OPENID_LOGIN_INPUT', 'Logon using your OpenID.');
@define('PLUGIN_OPENID_UPDATE_SUCCESS', 'Your OpenID has been updated');
@define('PLUGIN_OPENID_UPDATE_FAIL', 'An Error occurred updating your OpenID');
@define('PLUGIN_OPENID_INVALID_RESPONSE', 'Invalid OpenID Entered');
?>

View file

@ -13,7 +13,7 @@ class serendipity_event_openid extends serendipity_event
$propbag->add('description', PLUGIN_OPENID_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Grischa Brockhaus, Rob Richards');
$propbag->add('version', '0.3');
$propbag->add('version', '0.5');
$propbag->add('requirements', array(
'serendipity' => '1.2',
'smarty' => '2.6.7',
@ -28,7 +28,8 @@ class serendipity_event_openid extends serendipity_event
));
$propbag->add('configuration', array(
'storage_path',
'plugin_desc',
'delegation_desc',
'server',
'delegate',
'xrds_location'
@ -38,11 +39,13 @@ class serendipity_event_openid extends serendipity_event
function introspect_config_item($name, &$propbag)
{
switch($name) {
case 'storage_path':
$propbag->add('type', 'string');
$propbag->add('name', PLUGIN_OPENID_STORE_PATH);
$propbag->add('description', PLUGIN_OPENID_STORE_PATH_DESC);
$propbag->add('default', '/tmp/_php_consumer_test');
case 'plugin_desc':
$propbag->add('type', 'content');
$propbag->add('default', PLUGIN_OPENID_DESCRIPTION);
break;
case 'delegation_desc':
$propbag->add('type', 'content');
$propbag->add('default', PLUGIN_OPENID_DELEGATION_DESCRIPTION);
break;
case 'server':
$propbag->add('type', 'string');
@ -103,7 +106,7 @@ class serendipity_event_openid extends serendipity_event
case 'backend_login_page':
$hidden = array('action'=>'admin');
$eventData['header'] .= '<div align="center"><p>Logon using your OpenID<br />'.
$eventData['header'] .= '<div align="center"><p>' . PLUGIN_OPENID_LOGIN_INPUT . '<br />'.
serendipity_common_openid::loginform('serendipity_admin.php', $hidden, NULL).
'</p><br /></div>';
break;
@ -116,7 +119,7 @@ class serendipity_event_openid extends serendipity_event
$eventData = serendipity_common_openid::reauth_openid();
if (! empty($serendipity['POST']['openid_url']) && ! empty($serendipity['POST']['openidflag'])) {
/* Check that openid isn't already associated with another login */
$tmpRet = serendipity_common_openid::redir_openidserver($serendipity['POST']['openid_url'], $this->get_config('storage_path'), 3);
$tmpRet = serendipity_common_openid::redir_openidserver($serendipity['POST']['openid_url'], $this->get_consumertest_path(), 3);
/* If updating an OpenID it is not a real login attempt */
if (($tmpRet === false) && (($serendipity['GET']['openidflag']==3) || ($serendipity['POST']['openidflag']==3))) {
@ -127,17 +130,17 @@ class serendipity_event_openid extends serendipity_event
$eventData = serendipity_common_openid::reauth_openid();
}
} else if (! empty($serendipity['GET']['openidflag']) && ($serendipity['GET']['openidflag']==1)) {
$eventData = serendipity_common_openid::authenticate_openid($_GET, $this->get_config('storage_path'));
$eventData = serendipity_common_openid::authenticate_openid($_GET, $this->get_consumertest_path());
print_r($eventData);
} else if (! empty($serendipity['POST']['openid_url']) && ! empty($serendipity['POST']['action'])) {
$eventData = serendipity_common_openid::redir_openidserver($serendipity['POST']['openid_url'], $this->get_config('storage_path'), 1);
$eventData = serendipity_common_openid::redir_openidserver($serendipity['POST']['openid_url'], $this->get_consumertest_path(), 1);
}
return;
case 'backend_sidebar_entries_event_display_profiles':
if (($_SESSION['serendipityAuthedUser'] == true)) {
if (! empty($serendipity['GET']['openidflag']) && ($serendipity['GET']['openidflag']==3)) {
if ($checkRet = serendipity_common_openid::authenticate_openid($_GET, $this->get_config('storage_path'), true)) {
if ($checkRet = serendipity_common_openid::authenticate_openid($_GET, $this->get_consumertest_path(), true)) {
if (serendipity_common_openid::updateOpenID($checkRet['openID'], $serendipity['authorid'])) {
echo '<strong>' . htmlspecialchars(PLUGIN_OPENID_UPDATE_SUCCESS) . '</strong><br /><br />';
} else {
@ -167,6 +170,12 @@ class serendipity_event_openid extends serendipity_event
return false;
}
}
function get_consumertest_path() {
global $serendipity;
return $serendipity['serendipityPath'] . PATH_SMARTY_COMPILE . '/_php_consumer_test';
}
}
/* vim: set sts=4 ts=4 expandtab : */