diff --git a/dev/META6.json b/dev/META6.json index bef7afa0..393e18d5 100644 --- a/dev/META6.json +++ b/dev/META6.json @@ -1,7 +1,7 @@ { "name": "Agrammon", "description": "Simulation model for calculating ammonia and Nx/NOx emissions from agriculture.", - "version": "6.4.1", + "version": "6.4.2", "perl": "6.*", "authors": [ "Fritz Zaucker ", diff --git a/frontend/source/class/agrammon/module/dataset/DatasetTool.js b/frontend/source/class/agrammon/module/dataset/DatasetTool.js index bb5796ed..f8b5be0e 100644 --- a/frontend/source/class/agrammon/module/dataset/DatasetTool.js +++ b/frontend/source/class/agrammon/module/dataset/DatasetTool.js @@ -517,6 +517,7 @@ qx.Class.define('agrammon.module.dataset.DatasetTool', { this.__setDatasets = function() { // used for datasetFilter that.__datasets = this.__datasetCache.getDatasets(); + if (! that.__datasets) return; var len = that.__datasets.length; if (len<1) return; @@ -533,16 +534,17 @@ qx.Class.define('agrammon.module.dataset.DatasetTool', { this.__setTags = function() { var data = this.__datasetCache.getTags(); - var len = data.length; - if (len<1) { - return; - } - var i, rec; - that.__availableTags = []; - for (i=0; i, $!password, $encrypt-key, $key ); INSERT INTO pers (pers_email, pers_first, pers_last, - pers_password, pers_org, pers_role, pers_newpassword, pers_newpassword_key) - VALUES ($1, $2, $3, gen_random_uuid(), $4, $5, encode(encrypt($6, $7, 'aes'), 'base64'), $8) + pers_password, + pers_org, pers_role, + pers_newpassword, pers_newpassword_key + ) + VALUES ($1, $2, $3, + gen_random_uuid(), -- random password until activated + $4, $5, + encode(encrypt($6, $7, 'aes'), 'base64'), $8 + ) RETURNING pers_id SQL @@ -212,6 +217,7 @@ class Agrammon::DB::User does Agrammon::DB { SQL $!username = $ret.value if $ret.rows; + note "Account activated for $!username"; } self.load if $!username; return self; diff --git a/lib/Agrammon/Web/Routes.rakumod b/lib/Agrammon/Web/Routes.rakumod index 35c33257..b0e2f5b7 100644 --- a/lib/Agrammon/Web/Routes.rakumod +++ b/lib/Agrammon/Web/Routes.rakumod @@ -519,7 +519,7 @@ sub application-routes(Agrammon::Web::Service $ws) { } CATCH { .note; - when X::Agrammon::DB::User::InvalidPassword { + when X::Agrammon::DB::User::InvalidLogin { forbidden 'application/json', %( error => .message ); } } diff --git a/lib/Agrammon/Web/Service.rakumod b/lib/Agrammon/Web/Service.rakumod index 1f3598f6..e782e74f 100644 --- a/lib/Agrammon/Web/Service.rakumod +++ b/lib/Agrammon/Web/Service.rakumod @@ -456,7 +456,10 @@ class Agrammon::Web::Service { note "Account created for $email: activation key=$key"; if not %*ENV { my $subject = "Agrammon account activation"; - my $msg = "Click on the link to activate your Agrammon account: https://model.agrammon.ch/single/activate_account?key=$key"; + # start link on new line to avoid . at beginning of second line + # of the encode string (seems to disappear in the received + # email) ... Fritz, 2025-01-14 + my $msg = "Click on the link to activate your Agrammon account:\n\nhttps://model.agrammon.ch/single/activate_account?key=$key"; Agrammon::Email.new( :to($email), :from('support@agrammon.ch'), diff --git a/lib/Agrammon/Web/SessionUser.rakumod b/lib/Agrammon/Web/SessionUser.rakumod index f73a4df8..5ee569fe 100644 --- a/lib/Agrammon/Web/SessionUser.rakumod +++ b/lib/Agrammon/Web/SessionUser.rakumod @@ -14,8 +14,7 @@ class Agrammon::Web::SessionUser is Agrammon::DB::User does Cro::HTTP::Auth { } else { $!logged-in = self.password-is-valid($username, $password); - die X::Agrammon::DB::User::InvalidPassword.new unless $!logged-in; - + die X::Agrammon::DB::User::InvalidLogin.new unless $!logged-in; } self.set-username($username);