Andrew Bogott has uploaded a new change for review.

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


Change subject: Prompt user to agree to terms of use.
......................................................................

Prompt user to agree to terms of use.

For bug 48768

This user interface is dumb in a couple of ways.  If the user doesn't
agree to the ToS they get the message 'There was either an
authentication database error or you are not allowed to update your
external account.'  In fact, they get that message for /any/
account creation failure, their fault or ours.

Ideally the 'Create Account' button would simply be disabled until
the proper info was added to the form.

Both of these problems are outside the scope of this patch, though; they
require serious changes to the core account creation code.

Change-Id: If8c5f439fef7f5d5af000b406c07e405cedd55e6
---
M OpenStackManager.i18n.php
M nova/OpenStackNovaUser.php
2 files changed, 49 insertions(+), 32 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/OpenStackManager 
refs/changes/33/66033/1

diff --git a/OpenStackManager.i18n.php b/OpenStackManager.i18n.php
index c1036e2..eb070da 100644
--- a/OpenStackManager.i18n.php
+++ b/OpenStackManager.i18n.php
@@ -256,6 +256,8 @@
        'openstackmanager-novarole-info' => 'Nova role information',
 
        'openstackmanager-shellaccountname' => 'Instance shell account name',
+       'openstackmanager-agreetermsofuse' => 'I have read and agree to the 
Labs terms of use.',
+       'openstackmanager-termsofuselink' => 
'http://www.mediawiki.org/wiki/Wikimedia_Labs/Terms_of_use',
        'openstackmanager-shellaccountname-pref' => 'Instance shell account 
name:',
        'openstackmanager-shellaccountnamehelp' => 'A shell account name is 
required.
 It must start with a-z, and can only contain a-z, 0-9, and - characters.',
@@ -989,6 +991,8 @@
 
 See also:
 * {{msg-mw|Openstackmanager-nomemberstoadd}}',
+    'openstackmanager-agreetermsofuse' => 'Label for a checkbox that indicates 
user has read terms of service.',
+    'openstackmanager-termsofuselink' => 'URL for the Labs terms of service.',
        'openstackmanager-shellaccountname' => 'Used as label for the input box.
 
 The help text for the input box is:
@@ -2038,7 +2042,6 @@
 
 /** Bengali (বাংলা)
  * @author Aftab1995
- * @author Bellayet
  * @author Wikitanvir
  */
 $messages['bn'] = array(
@@ -2106,7 +2109,7 @@
        'openstackmanager-deletedproject' => 'সফলভাবে প্রকল্পটি অপসারণ করা 
হয়েছে।',
        'openstackmanager-deleteprojectfailed' => 'প্রকল্প অপসারণ করতে ব্যর্থ 
হয়েছে।',
        'openstackmanager-novaproject-project' => 'প্রকল্প', # Fuzzy
-       'openstackmanager-projectfiltersubmit' => 'ফিল্টার ধার্য',
+       'openstackmanager-projectfiltersubmit' => 'ফিল্টার নির্ধারণ',
        'openstackmanager-roles' => 'ভূমিকা',
        'openstackmanager-rolename' => 'ভূমিকার নাম', # Fuzzy
        'openstackmanager-hostname' => 'হোস্ট নাম',
@@ -2542,8 +2545,8 @@
        'openstackmanager-mustbeloggedin' => 'Um diese Aktion ausführen zu 
können, muss man angemeldet sein.',
        'openstackmanager-nonovacred' => 'Zu diesem Benutzerkonto wurden keine 
Anmeldedaten für Nova gefunden.',
        'openstackmanager-nonovacred-admincreate' => 'Zu diesem Benutzerkonto 
wurden keine Anmeldedaten für Nova gefunden. Bitte einen Administrator bitten, 
die benötigten Anmeldedaten zu erzeugen.',
-       'openstackmanager-noaccount' => 'Das Benutzerkonto gehört nicht zum 
Projekt $1.',
-       'openstackmanager-noaccount2' => 'Diese Aktion kann nicht ausgeführt 
werden, da das Benutzerkonto nicht zum Projekt $1 gehört.',
+       'openstackmanager-noaccount' => 'Das Benutzerkonto gehört nicht zum 
gewünschten Projekt.',
+       'openstackmanager-noaccount2' => 'Diese Aktion kann nicht ausgeführt 
werden, da das Benutzerkonto nicht zum gewünschten Projekt gehört.',
        'openstackmanager-nonexistentresource' => 'Die angegebene Ressource ist 
nicht vorhanden.',
        'openstackmanager-createdomain' => 'Domain erstellen',
        'openstackmanager-deletedomain' => 'Domain löschen',
@@ -2756,8 +2759,8 @@
        'openstackmanager-removehostfailed' => 'Der Host $1 konnte nicht 
entfernt werden.',
        'openstackmanager-nonexistenthost' => 'Der gewünschte Host ist nicht 
vorhanden.',
        'openstackmanager-nonexistentrole' => 'Die angeforderte Rolle ist nicht 
vorhanden.',
-       'openstackmanager-needrole' => 'Rolle „$1“ im Projekt $2 erforderlich',
-       'openstackmanager-needrole2' => 'Du musst Mitglied der Rolle „$1“ im 
Projekt $2 sein, um diese Aktion auszuführen.',
+       'openstackmanager-needrole' => 'Rolle „$1“ erforderlich',
+       'openstackmanager-needrole2' => 'Du musst Mitglied der Rolle „$1“ sein, 
um diese Aktion auszuführen.',
        'openstackmanager-createsecuritygroup' => 'Sicherheitsgruppe erstellen',
        'openstackmanager-securitygroupname' => 'Name der Sicherheitsgruppe',
        'openstackmanager-securitygroupdescription' => 'Beschreibung der 
Sicherheitsgruppe',
@@ -6174,8 +6177,8 @@
        'openstackmanager-mustbeloggedin' => 'Devi autenticarti per eseguire 
questa azione.',
        'openstackmanager-nonovacred' => 'Nessuna credenziale Nova trovata per 
il tuo account.',
        'openstackmanager-nonovacred-admincreate' => 'Nessuna credenziale Nova 
trovata per il tuo account utente. Chiedi ad un amministratore Nova di creare 
le credenziali per te.',
-       'openstackmanager-noaccount' => 'Il tuo account non è nel progetto $1.',
-       'openstackmanager-noaccount2' => "Non è possibile completare l'azione 
richiesta poiché il tuo account non è nel progetto $1.",
+       'openstackmanager-noaccount' => 'Il tuo account non è nel progetto 
richiesto.', # Fuzzy
+       'openstackmanager-noaccount2' => "Non è possibile completare l'azione 
richiesta poiché il tuo account non è nel progetto richiesto.", # Fuzzy
        'openstackmanager-nonexistentresource' => 'La risorsa indicata non 
esiste.',
        'openstackmanager-createdomain' => 'Crea dominio',
        'openstackmanager-deletedomain' => 'Cancella dominio',
@@ -6384,8 +6387,8 @@
        'openstackmanager-removehostfailed' => 'Errore durante la rimozione 
$1.',
        'openstackmanager-nonexistenthost' => "L'host richiesto non esiste.",
        'openstackmanager-nonexistentrole' => 'Il ruolo richiesto non esiste.',
-       'openstackmanager-needrole' => 'Ruolo $1 obbligatorio nel progetto $2',
-       'openstackmanager-needrole2' => 'Devi essere un membro del ruolo $1 nel 
progetto $2 per eseguire questa azione.',
+       'openstackmanager-needrole' => 'Ruolo $1 obbligatorio', # Fuzzy
+       'openstackmanager-needrole2' => 'Devi essere un membro del ruolo $1 per 
eseguire questa azione.', # Fuzzy
        'openstackmanager-createsecuritygroup' => 'Crea gruppo di sicurezza',
        'openstackmanager-securitygroupname' => 'Nome gruppo di sicurezza',
        'openstackmanager-securitygroupdescription' => 'Descrizione',
@@ -6705,8 +6708,8 @@
        'openstackmanager-removehostfailed' => '$1 の除去に失敗しました。',
        'openstackmanager-nonexistenthost' => '指定したホストは存在しません。',
        'openstackmanager-nonexistentrole' => '指定した権限は存在しません。',
-       'openstackmanager-needrole' => 'プロジェクト $2 では $1 権限が必要',
-       'openstackmanager-needrole2' => 'プロジェクト $2 でこの操作を実行するには $1 権限が必要です。',
+       'openstackmanager-needrole' => '$1 権限が必要',
+       'openstackmanager-needrole2' => 'この操作を実行するには $1 権限が必要です。',
        'openstackmanager-createsecuritygroup' => 'セキュリティ グループの作成',
        'openstackmanager-securitygroupname' => 'セキュリティ グループ名',
        'openstackmanager-securitygroupdescription' => '説明',
@@ -7922,8 +7925,8 @@
        'openstackmanager-mustbeloggedin' => 'Мора да сте најавени за да ја 
извршите оваа постапка.',
        'openstackmanager-nonovacred' => 'На вашата сметка нема најдено 
полномоштво за Nova.',
        'openstackmanager-nonovacred-admincreate' => 'Не пронајдов полномоштво 
за Nova на вашата сметка. Побарајте од администратор да ви направи 
полномоштво.',
-       'openstackmanager-noaccount' => 'Сметката не се наоѓа во проектот $1.',
-       'openstackmanager-noaccount2' => 'Не можете да ја извршите саканата 
постапка бидејќи вашата корисничка сметка не се наоѓа во проектот $1.',
+       'openstackmanager-noaccount' => 'Вашата сметка не се наоѓа во 
побараниот проект.',
+       'openstackmanager-noaccount2' => 'Не можете да ја извршите саканата 
постапка бидејќи вашата корисничка сметка не се наоѓа во побараниот проект.',
        'openstackmanager-nonexistentresource' => 'Назначениот ресурс не 
постои.',
        'openstackmanager-createdomain' => 'Создај домен',
        'openstackmanager-deletedomain' => 'Избриши домен',
@@ -8136,8 +8139,8 @@
        'openstackmanager-removehostfailed' => 'Не успеав да го отстранам $1.',
        'openstackmanager-nonexistenthost' => 'Побараниот домаќин не постои.',
        'openstackmanager-nonexistentrole' => 'Побараната улога не постои.',
-       'openstackmanager-needrole' => 'Потребна е улогата $1 во проектот $2',
-       'openstackmanager-needrole2' => 'Мора да имате улога на $1 во проектот 
$2 за да можете да ја извршите оваа постапка.',
+       'openstackmanager-needrole' => 'Потребна е улогата $1',
+       'openstackmanager-needrole2' => 'Мора да имате улога на $1 за да можете 
да ја извршите оваа постапка.',
        'openstackmanager-createsecuritygroup' => 'Создај сигурносна група',
        'openstackmanager-securitygroupname' => 'Име на сигурносната група',
        'openstackmanager-securitygroupdescription' => 'Опис',
@@ -8337,8 +8340,8 @@
        'openstackmanager-mustbeloggedin' => 'Anda mesti log masuk untuk 
melakukan tindakan ini.',
        'openstackmanager-nonovacred' => 'Tiada watikah Nova dalam akaun anda.',
        'openstackmanager-nonovacred-admincreate' => 'Tidak terdapat watikah 
Nova bagi akaun pengguna anda. Sila hubungi pentadbir Nova untuk membuat 
watikah untuk anda.',
-       'openstackmanager-noaccount' => 'Akaun anda tiada dalam projek $1.',
-       'openstackmanager-noaccount2' => 'Anda tidak boleh melengkapkan 
tindakan yang dipohon kerana akaun pengguna anda tiada dalam projek $1.',
+       'openstackmanager-noaccount' => 'Akaun anda tiada dalam projek yang 
dipohon.',
+       'openstackmanager-noaccount2' => 'Anda tidak boleh melengkapkan 
tindakan yang dipohon kerana akaun pengguna anda tiada dalam projek yang 
dipohon.',
        'openstackmanager-nonexistentresource' => 'Sumber yang dinyatakan tidak 
wujud.',
        'openstackmanager-createdomain' => 'Wujudkan domain',
        'openstackmanager-deletedomain' => 'Hapuskan domain',
@@ -8385,7 +8388,7 @@
        'openstackmanager-rebootinstancewithname' => 'Lancarkan semula tika $1 
($2)',
        'openstackmanager-rebootinstancequestion' => 'Adakah anda betul-betul 
ingin mengebut semula tika "$1"?',
        'openstackmanager-rebootedinstance' => 'Tika $1 dibut semula.',
-       'openstackmanager-rebootinstancefailed' => 'Tika $1 gagal dibut 
semula.',
+       'openstackmanager-rebootinstancefailed' => 'Tika gagal dibut semula.',
        'openstackmanager-launchtime' => 'Waktu pelancaran',
        'openstackmanager-createinstance' => 'Tambahkan tika',
        'openstackmanager-createinstancepuppetwarning' => 'Amaran: Penambahan 
konfigurasi boneka sewaktu mewujudkan tika boleh menyebabkan tika itu gagal 
dibentuk. Gunakan konfigurasi ini secara berwaspada. Anda akan diberi peluang 
untuk mengkonfigurasikan tika ini selepas ia siap dibentuk.',
@@ -8500,7 +8503,6 @@
        'openstackmanager-projects' => 'Projek',
        'openstackmanager-setprojects' => 'Penapis projek telah disetkan.',
        'openstackmanager-setprojectfilter' => 'Sila pilih projek untuk 
dipaparkan dengan menggunakan penapis projek.',
-       'openstackmanager-projectfiltersubmit' => 'Tetapkan penapis',
        'openstackmanager-toggle' => 'Togol',
        'openstackmanager-roles' => 'Peranan',
        'openstackmanager-rolename' => 'Peranan',
@@ -8550,8 +8552,8 @@
        'openstackmanager-removehostfailed' => '$1 gagal dibuang.',
        'openstackmanager-nonexistenthost' => 'Hos yang dipohon tidak wujud.',
        'openstackmanager-nonexistentrole' => 'Peranan yang dipohon tidak 
wujud.',
-       'openstackmanager-needrole' => 'Peranan $1 diperlukan di projek $2',
-       'openstackmanager-needrole2' => 'Anda mestilah menjadi ahli peranan $1 
di projek $2 untuk melakukan tindakan ini.',
+       'openstackmanager-needrole' => 'Peranan $1 diperlukan',
+       'openstackmanager-needrole2' => 'Anda mestilah menjadi ahli peranan $1 
untuk melakukan tindakan ini.',
        'openstackmanager-createsecuritygroup' => 'Wujudkan kumpulan 
keselamatan',
        'openstackmanager-securitygroupname' => 'Nama kumpulan keselamatan',
        'openstackmanager-securitygroupdescription' => 'Keterangan',
@@ -8669,9 +8671,9 @@
        'notification-osm-instance-deleted' => "$1 telah menghapuskan tika '$3' 
di projek [[$2]]",
        'notification-osm-instance-build-completed' => "$1 telah mewujudkan 
tika '$3' di projek [[$2]]",
        'notification-osm-instance-reboot-completed' => "$1 telah mengebut 
semula tika '$3' di projek [[$2]]",
-       'echo-category-title-osm-instance-deleted' => 'Menghapuskan tika dari 
projek di mana saya menjadi pentadbir.',
-       'echo-category-title-osm-instance-build-completed' => 'Mewujudkan tika 
pada projek di mana saya menjadi pentadbir.',
-       'echo-category-title-osm-instance-reboot-completed' => 'Menghidupkan 
semula tika.',
+       'echo-pref-subscription-osm-instance-deleted' => 'Menghapuskan tika 
dari projek yang mana saya menjadi pentadbir.',
+       'echo-pref-subscription-osm-instance-build-completed' => 'Mewujudkan 
tika pada projek yang mana saya menjadi pentadbir.',
+       'echo-pref-subscription-osm-instance-reboot-completed' => 'Menghidupkan 
semula tika.',
        'prefs-openstack' => 'OpenStack',
        'prefs-openstack-keys' => 'Senarai kunci',
 );
@@ -8993,8 +8995,8 @@
        'openstackmanager-removehostfailed' => 'Het verwijderen van $1 is 
mislukt.',
        'openstackmanager-nonexistenthost' => 'Het opgegeven host bestaat 
niet.',
        'openstackmanager-nonexistentrole' => 'De opgegeven rol bestaat niet.',
-       'openstackmanager-needrole' => 'Rol "$1" is vereist in project $2',
-       'openstackmanager-needrole2' => 'U moet lid zijn van de rol "$1" in 
project $2 om deze handeling uit te kunnen voeren.',
+       'openstackmanager-needrole' => 'Rol "$1" is vereist', # Fuzzy
+       'openstackmanager-needrole2' => 'U moet lid zijn van de rol "$1" om 
deze handeling uit te kunnen voeren.', # Fuzzy
        'openstackmanager-createsecuritygroup' => 'Beveiligingsgroep aanmaken',
        'openstackmanager-securitygroupname' => 'Beveiligingsgroepsnaam',
        'openstackmanager-securitygroupdescription' => 'Beschrijving',
@@ -12766,8 +12768,8 @@
        'openstackmanager-mustbeloggedin' => '您必須登錄才能執行此操作。',
        'openstackmanager-nonovacred' => '未找到您賬號的 Nova 憑證。',
        'openstackmanager-nonovacred-admincreate' => '未找到您賬號的 Nova 憑證。請向 Nova 
管理員申請為您創建憑證。',
-       'openstackmanager-noaccount' => '您的賬號沒有在$1項目中。',
-       'openstackmanager-noaccount2' => '您不能完成請求的操作,因為您的賬號不在$1項目中。',
+       'openstackmanager-noaccount' => '您的賬號沒有在請求的項目中。',
+       'openstackmanager-noaccount2' => '您不能完成請求的操作,因為您的賬號不在請求的項目中。',
        'openstackmanager-nonexistentresource' => '指定的資源不存在。',
        'openstackmanager-createdomain' => '創造域',
        'openstackmanager-deletedomain' => '刪除域',
@@ -12902,7 +12904,6 @@
        'openstackmanager-novaprojectfilter-projectfilter' => '項目篩選器',
        'openstackmanager-projects' => '項目',
        'openstackmanager-setprojects' => '設置項目篩選器成功。',
-       'openstackmanager-projectfiltersubmit' => '設置篩選器',
        'openstackmanager-toggle' => '切換',
        'openstackmanager-roles' => '職務',
        'openstackmanager-rolename' => '作用名稱', # Fuzzy
diff --git a/nova/OpenStackNovaUser.php b/nova/OpenStackNovaUser.php
index e93fc55..beb133b 100644
--- a/nova/OpenStackNovaUser.php
+++ b/nova/OpenStackNovaUser.php
@@ -484,6 +484,11 @@
                if ( '' !== $auth->realname ) {
                        $values['displayname'] = $auth->realname;
                }
+               if ( ! $wgRequest->getText( 'agreetermsofuse' ) ) {
+                       $auth->printDebug( "User did not agree to terms of 
use.", NONSENSITIVE );
+                       $result = false;
+                       return false;
+               }
                $shellaccountname = $wgRequest->getText( 'shellaccountname' );
                if ( ! preg_match( "/^[a-z][a-z0-9\-_]*$/", $shellaccountname ) 
) {
                        $result = false;
@@ -562,8 +567,19 @@
         * @return bool
         */
        static function LDAPModifyUITemplate( &$template ) {
-               $input = array( 'msg' => 'openstackmanager-shellaccountname', 
'type' => 'text', 'name' => 'shellaccountname', 'value' => '', 'helptext' => 
'openstackmanager-shellaccountnamehelp' );
-               $template->set( 'extraInput', array( $input ) );
+
+               $input = array(
+                               array( 'msg' => 
'openstackmanager-shellaccountname',
+                                       'type' => 'text',
+                                       'name' => 'shellaccountname',
+                                       'value' => '', 'helptext' =>
+                                       'openstackmanager-shellaccountnamehelp' 
),
+                               array( 'msg' => 
'openstackmanager-agreetermsofuse',
+                                       'type' => 'checkbox',
+                                       'name' => 'agreetermsofuse',
+                                       'value' => false,
+                                       'helptext' => 
'openstackmanager-termsofuselink' ) );
+               $template->set( 'extraInput', $input );
 
                return true;
        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If8c5f439fef7f5d5af000b406c07e405cedd55e6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <[email protected]>

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

Reply via email to