diff --git a/_example/conf/lmConf-1.json b/_example/conf/lmConf-1.json index 86576584a..b0d8fb5d5 100644 --- a/_example/conf/lmConf-1.json +++ b/_example/conf/lmConf-1.json @@ -86,6 +86,7 @@ "authentication" : "Demo", "cfgAuthor" : "The LemonLDAP::NG team", "cfgNum" : 1, + "cfgVersion" : "2.0.0", "cookieName" : "lemonldap", "demoExportedVars" : { "cn" : "cn", diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm index 38794502e..22898f599 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm @@ -39,6 +39,7 @@ Num : $conf->{cfgNum} Author : $conf->{cfgAuthor} Author IP: $conf->{cfgAuthorIP} Date : } . localtime( $conf->{cfgDate} ) . qq{ +Version : $conf->{cfgVersion} Log : $conf->{cfgLog} }; } diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/RESTServer.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/RESTServer.pm index f3f3ac722..ea59cf145 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/RESTServer.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/RESTServer.pm @@ -646,7 +646,7 @@ sub metadatas { return $self->sendError( $req, undef, 400 ) if ( $req->error ); return $self->sendError( $req, "Configuration without cfgNum", 500 ) unless ( defined $res->{cfgNum} ); - foreach my $key (qw(cfgAuthor cfgDate cfgAuthorIP cfgLog)) { + foreach my $key (qw(cfgAuthor cfgDate cfgAuthorIP cfgLog cfgVersion)) { $res->{$key} = $self->getConfKey( $req, $key ); } diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm index 0b34964e1..115c68957 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm @@ -670,6 +670,9 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.] 'default' => 0, 'type' => 'int' }, + 'cfgVersion' => { + 'type' => 'text' + }, 'checkXSS' => { 'default' => 1, 'type' => 'bool' diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm index 5fab4f352..a957f3d92 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm @@ -236,6 +236,10 @@ sub attributes { type => 'longtext', documentation => 'Configuration update log', }, + cfgVersion => { + type => 'text', + documentation => 'Version of LLNG which build configuration', + }, confirmFormMethod => { type => "select", select => diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm index f52d10824..92eeda669 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm @@ -127,6 +127,7 @@ sub scanTree { || '_whatToTrace' } // "anonymous"; $self->newConf->{cfgAuthorIP} = $self->req->address; $self->newConf->{cfgDate} = time; + $self->newConf->{cfgVersion} = $VERSION; $self->newConf->{key} ||= join( '', map { chr( int( rand(94) ) + 33 ) } ( 1 .. 16 ) ); diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm index 7abc46a23..798d7f874 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm @@ -166,6 +166,7 @@ sub zeroConf { 'securedCookie' => 0, 'cookieName' => 'lemonldap', 'cfgAuthor' => 'The LemonLDAP::NG team', + 'cfgVersion' => $VERSION, 'exportedVars' => { 'UA' => 'HTTP_USER_AGENT' }, diff --git a/lemonldap-ng-manager/site/htdocs/static/forms/home.html b/lemonldap-ng-manager/site/htdocs/static/forms/home.html index ef993be80..e41796a63 100644 --- a/lemonldap-ng-manager/site/htdocs/static/forms/home.html +++ b/lemonldap-ng-manager/site/htdocs/static/forms/home.html @@ -25,6 +25,10 @@