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