Wikinaut has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/51278


Change subject: (bug 45323) preference tab "OpenID" adds a list of "trust" 
records
......................................................................

(bug 45323) preference tab "OpenID" adds a list of "trust" records

= list of "consumer" domains and services for which the user
allowed to use their MediaWiki OpenID

Change-Id: Id2d1a0710f698d904e339ed194be6494937ceb5d
---
M CHANGES
M OpenID.hooks.php
M OpenID.i18n.php
M OpenID.php
M SpecialOpenIDServer.body.php
5 files changed, 88 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/OpenID 
refs/changes/78/51278/1

diff --git a/CHANGES b/CHANGES
index 16d2e5d..ad69a31 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 CHANGES
 =======
 
+2.03  20130227  fix bug45323 preference tab "OpenID" shows list of "trust" 
records
 2.01  20130209  fix to allow identity selection bug44416
                 fix bug40068, bug40067 $wgOpenIDConsumerForce
                 changed default value $wgOpenIDShowProviderIcons = true;
diff --git a/OpenID.hooks.php b/OpenID.hooks.php
index 0305c57..0ff5702 100644
--- a/OpenID.hooks.php
+++ b/OpenID.hooks.php
@@ -142,7 +142,7 @@
                return true;
        }
 
-       private static function getInfoTable( $user ) {
+       private static function getAssociatedOpenIDsTable( $user ) {
                global $wgLang;
                $openid_urls_registration = 
SpecialOpenID::getUserOpenIDInformation( $user );
                $delTitle = SpecialPage::getTitleFor( 'OpenIDConvert', 'Delete' 
);
@@ -199,9 +199,41 @@
                return $info;
        }
 
+       private static function getTrustTable( $user ) {
+
+               $trusted_sites = SpecialOpenIDServer::GetUserTrustArray( $user 
);
+               wfDebug( "OpenID: +++ trusted sites +++ " . print_r( 
$trusted_sites, true ) . "\n" );
+               $rows = '';
+
+               foreach ( $trusted_sites as $key => $value ) {
+
+                       if ( $key !== "" ) {
+
+                       $rows .= Xml::tags( 'tr', array(),
+                               Xml::tags( 'td',
+                                       array(),
+                                       Xml::element( 'a', array( 'href' => 
$key ), $key )
+                               ) 
+                       ) . "\n";
+
+                       }
+               }
+
+               $trusted_sites_table = Xml::tags( 'table', array( 'class' => 
'wikitable' ),
+                       Xml::tags( 'tr', array(),
+                               Xml::element( 'th',
+                                       array(), 
+                                       wfMessage( 
'openid-trusted-sites-table-header' )->text() ) 
+                       ) . "\n" .
+                       $rows
+               );
+
+               return $trusted_sites_table;
+       }
+
        public static function onGetPreferences( $user, &$preferences ) {
                global $wgOpenIDShowUrlOnUserPage, $wgAllowRealName;
-               global $wgAuth, $wgUser, $wgLang;
+               global $wgAuth, $wgUser, $wgLang, $wgOpenIDOnlyClient, 
$wgOpenIDIdentifiersURL;
 
                if ( $wgOpenIDShowUrlOnUserPage == 'user' ) {
                        $preferences['openid-hide'] =
@@ -234,16 +266,47 @@
                        array(
                                'type' => 'info',
                                'label-message' => 'openid-urls-desc',
-                               'default' => self::getInfoTable( $user ),
+                               'default' => self::getAssociatedOpenIDsTable( 
$user ),
                                'raw' => true,
                                'section' => 'openid',
                        );
 
+               if ( !$wgOpenIDOnlyClient ) {
+
+                       if ( $wgOpenIDIdentifiersURL ) {
+                                       $openid = preg_replace( '/\{ID\}/', 
$user->getID(), $wgOpenIDIdentifiersURL );
+                       } else {
+                               $local_identity = SpecialPage::getTitleFor( 
'OpenIDIdentifier', $user->getID() );
+                               $openid = $local_identity->getFullURL();
+                       }
+
+                       $preferences['openid-your-openid'] =
+                               array(
+                                       'type' => 'info',
+                                       'label-message' => 'openid-your-openid',
+                                       'default' => Xml::element( 'a', array( 
'href' => $openid ), $openid ) ,
+                                       'raw' => true,
+                                       'section' => 'openid',
+                               );
+
+                       $preferences['openid-trusted-sites'] =
+                               array(
+                                       'type' => 'info',
+                                       'label-message' => 
'openid-trusted-sites',
+                                       'default' => self::getTrustTable( $user 
),
+                                       'raw' => true,
+                                       'section' => 'openid',
+                               );
+               }
+
                if ( $wgAuth->allowPasswordChange() ) {
 
-                       $resetlink = $wgUser->getSkin()->link( 
SpecialPage::getTitleFor( 'PasswordReset' ),
-                               wfMsgHtml( 'passwordreset' ), array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 
'Preferences' ) ) );
+                       $resetlink = $wgUser->getSkin()->link(
+                               SpecialPage::getTitleFor( 'PasswordReset' ),
+                               wfMessage( 'passwordreset' )->text(),
+                               array(),
+                               array( 'returnto' => SpecialPage::getTitleFor( 
'Preferences' ) )
+                       );
 
                        if ( empty( $wgUser->mPassword ) && empty( 
$wgUser->mNewpassword ) ) {
                                $preferences['password'] = array(
@@ -268,11 +331,10 @@
                                unset( $preferences['rememberpassword'] );
                                $preferences['rememberpassword'] = array(
                                        'type' => 'toggle',
-                                       'label' => wfMsgExt(
+                                       'label' => wfMessage(
                                                'tog-rememberpassword',
-                                               array( 'parsemag' ),
                                                $wgLang->formatNum( ceil( 
$wgCookieExpiration / ( 3600 * 24 ) ) )
-                                               ),
+                                               )->text(),
                                        'section' => 'personal/info',
                                );
                        }
diff --git a/OpenID.i18n.php b/OpenID.i18n.php
index 1f015c0..bedb9cb 100644
--- a/OpenID.i18n.php
+++ b/OpenID.i18n.php
@@ -114,7 +114,7 @@
 You would not able to log in without an OpenID.',
        'openiddelete-sucess' => 'The OpenID has been successfully removed from 
your account.',
        'openiddelete-error' => 'An error occurred while removing the OpenID 
from your account.',
-        'openid-openids-were-not-merged' => 'OpenID(s) were not merged when 
merging the user accounts.',
+       'openid-openids-were-not-merged' => 'OpenID(s) were not merged when 
merging the user accounts.',
 
        'prefs-openid' => 'OpenID',
        'openid-prefstext' => '[//openid.net/ OpenID] preferences',
@@ -126,7 +126,10 @@
        'openid-urls-registration' => 'Registration time',
        'openid-urls-registration-date-time'  => '$1', # only translate this 
message to other languages if you have to change it
        'openid-urls-delete' => 'Delete',
-       'openid-add-url' => 'Add a new OpenID',
+       'openid-your-openid' => 'Your OpenID:',
+       'openid-trusted-sites' => 'Sites you trust and where you have used your 
OpenID for logging in:',
+       'openid-trusted-sites-table-header' => 'Trusted sites', 
+       'openid-add-url' => 'Add a new OpenID to your account',
 
        'openid-login-or-create-account' => 'Log in or create a new account',
        'openid-provider-label-openid' => 'Enter your OpenID URL',
@@ -1426,7 +1429,10 @@
        'openid-urls-action' => 'Aktion',
        'openid-urls-registration' => 'Registrierungszeitpunkt',
        'openid-urls-delete' => 'Löschen',
-       'openid-add-url' => 'Eine neue OpenID hinzufügen',
+       'openid-add-url' => 'Eine neue OpenID zu deinem Benutzerkonto 
hinzufügen',
+       'openid-your-openid' => 'Deine OpenID:',
+       'openid-trusted-sites' => 'Websites, denen du vertraust, und bei denen 
du mit deiner OpenID bekannt bist:',
+       'openid-trusted-sites-table-header' => 'Websites, denen du vertraust', 
        'openid-login-or-create-account' => 'Anmelden oder ein neues 
Benutzerkonto erstellen',
        'openid-provider-label-openid' => 'Gib deine OpenID-URL an',
        'openid-provider-label-google' => 'Mit deinem Google-Benutzerkonto 
anmelden',
@@ -3455,10 +3461,10 @@
 
 あなたの OpenID は $2 です。
 
-これを含むすべての OpenID は個人設定の [[Special:Preferences#mw-prefsection-openid|OpenID 
タブ]]で管理できます。<br />
-アカウントパスワード (省略可能) 
は[[Special:Preferences#mw-prefsection-personal|利用者情報]]で追加できます。",
+これと他の OpenID(省略可能)は個人設定の [[Special:Preferences#mw-prefsection-openid|OpenID 
タブ]]で管理できます。<br />
+アカウントパスワード(省略可能)は[[Special:Preferences#mw-prefsection-personal|利用者情報]]で追加できます。",
        'openidusernameprefix' => 'OpenID ユーザー',
-       'openidserverlogininstructions' => '利用者 $2 のページ $1 (これがあなたの OpenID URL 
です) に対応するパスワードを入力することを、$3 が要求しています',
+       'openidserverlogininstructions' => '利用者 $2 のページ $1(これがあなたの OpenID URL 
です)に対応するパスワードを入力するように、$3 が要求しています',
        'openidtrustinstructions' => '$1 とデータを共有したいか確認してください。',
        'openidallowtrust' => '$1 がこの利用者アカウントを信用するのを許可する。',
        'openidnopolicy' => 'サイトはプライバシーに関する方針を明記していません。',
diff --git a/OpenID.php b/OpenID.php
index 1d0f3de..7eab249 100644
--- a/OpenID.php
+++ b/OpenID.php
@@ -29,7 +29,7 @@
        exit( 1 );
 }
 
-define( 'MEDIAWIKI_OPENID_VERSION', '2.02 20130214' );
+define( 'MEDIAWIKI_OPENID_VERSION', '2.03 20130227' );
 
 $path = dirname( __FILE__ );
 set_include_path( implode( PATH_SEPARATOR, array( $path ) ) . PATH_SEPARATOR . 
get_include_path() );
diff --git a/SpecialOpenIDServer.body.php b/SpecialOpenIDServer.body.php
index 62a1d06..1d776af 100644
--- a/SpecialOpenIDServer.body.php
+++ b/SpecialOpenIDServer.body.php
@@ -480,7 +480,7 @@
                $this->SetUserTrustArray( $user, $trust_array );
        }
 
-       function GetUserTrustArray( $user ) {
+       static function GetUserTrustArray( $user ) {
                $trust_array = array();
                $trust_str = $user->getOption( 'openid_trust' );
                if ( strlen( $trust_str ) > 0 ) {
@@ -492,7 +492,7 @@
                                        $trust_array[$trust_root] = false;
                                } else {
                                        $fields = array_map( 'trim', $fields );
-                                       $fields = array_filter( $fields, array( 
$this, 'ValidField' ) );
+                                       $fields = array_filter( $fields, array( 
'SpecialOpenIDServer', 'ValidField' ) );
                                        $trust_array[$trust_root] = $fields;
                                }
                        }
@@ -522,7 +522,7 @@
                $user->setOption( 'openid_trust', $trust_str );
        }
 
-       function ValidField( $name ) {
+       static function ValidField( $name ) {
                # FIXME: eventually add timezone
                static $fields = array( 'nickname', 'email', 'fullname', 
'language' );
                return in_array( $name, $fields );

-- 
To view, visit https://gerrit.wikimedia.org/r/51278
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id2d1a0710f698d904e339ed194be6494937ceb5d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenID
Gerrit-Branch: master
Gerrit-Owner: Wikinaut <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to