[pve-devel] [PATCH manager 1/3] show optional consent-banner before login
Gabriel Goller
g.goller at proxmox.com
Wed Dec 4 09:48:50 CET 2024
On 03.12.2024 18:24, Thomas Lamprecht wrote:
>Am 03.12.24 um 16:29 schrieb Gabriel Goller:
>> Add ConsentBanner variable to html template and populate it from the
>> `datacenter.cfg` config file. Add Datacenter option to set the text and
>> trigger the popup on login.
>>
>> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
>> ---
>> PVE/Service/pveproxy.pm | 4 +++-
>> www/index.html.tpl | 3 ++-
>> www/manager6/dc/OptionView.js | 5 +++++
>> www/manager6/window/LoginWindow.js | 13 ++++++++++++-
>> 4 files changed, 22 insertions(+), 3 deletions(-)
>>
>> diff --git a/PVE/Service/pveproxy.pm b/PVE/Service/pveproxy.pm
>> index ac1085457f2e..151ba34f8a52 100755
>> --- a/PVE/Service/pveproxy.pm
>> +++ b/PVE/Service/pveproxy.pm
>> @@ -217,9 +217,10 @@ sub get_index {
>> $token = PVE::AccessControl::assemble_csrf_prevention_token($username);
>> }
>> }
>> + my $dc_conf = PVE::Cluster::cfs_read_file('datacenter.cfg');
>
>I forgot the details from top of my head, but does this fail if we're not quorate?
>If, then I'd wrap it in an eval to avoid breaking start up if not quorate.
Hmm I don't think so – no quorum should still allow read access.
Nevertheless it would still be better to wrap it in an eval!
>> + my $consent_text = $dc_conf->{'consent-text'};
>>
>> if (!$lang) {
>> - my $dc_conf = PVE::Cluster::cfs_read_file('datacenter.cfg');
>> $lang = $dc_conf->{language} // 'en';
>> }
>>
>> @@ -251,6 +252,7 @@ sub get_index {
>> version => "$version",
>> wtversion => $wtversion,
>> theme => $theme,
>> + consenttext => $consent_text
>> };
>>
>> # by default, load the normal index
>> diff --git a/www/manager6/window/LoginWindow.js b/www/manager6/window/LoginWindow.js
>> index aaeca3550289..bcf9b7be364d 100644
>> --- a/www/manager6/window/LoginWindow.js
>> +++ b/www/manager6/window/LoginWindow.js
>> @@ -18,9 +18,20 @@ Ext.define('PVE.window.LoginWindow', {
>> },
>>
>> controller: {
>> -
>> xclass: 'Ext.app.ViewController',
>>
>> + init: async function() {
>> + if (Proxmox.ConsentText) {
>> + Ext.create("Proxmox.window.ConsentModal", {
>> + autoShow: true,
>> + consent: Proxmox.Markdown.parse(
>> + Ext.htmlEncode(
>> + Proxmox.Utils.base64ToUtf8(
>> + Proxmox.ConsentText))),
>
>IIRC I restructured the indentation here for the PBS side, maybe check that out, IMO
>it looks a bit hard to read as is.
Yep, definitely – fixed it.
>
>> + });
>> + }
>> + },
>> +
>> onLogon: async function() {
>> var me = this;
>>
>
More information about the pve-devel
mailing list