diff --git a/account/addpubkey.in b/account/addpubkey.in index 53fc4db1db2288ae71d546bb0937d3b42c5df240..53a58e3dfb99ee91bf07a3dced2d40ed0b17b40c 100644 --- a/account/addpubkey.in +++ b/account/addpubkey.in @@ -27,6 +27,7 @@ my $optlist = "kna"; my $iskey = 0; my $verify = 0; my $auditmode = 0; +my $anonmode = 0; # # Configure variables @@ -136,6 +137,8 @@ if (getpwuid($UID) eq "nobody") { fatal("*** $0:\n". " Attempt to insert first key for existing user!\n"); } + # Make sure we do not mess with user table. + $anonmode = 1; } elsif (! $verify) { if (! UNIX2DBUID($UID, \$db_uid)) { @@ -245,6 +248,13 @@ sub ParseKey($) { DBQueryFatal("replace into user_pubkeys ". "values ('$user', '$comment', '$key', now())"); + # + # Mark user record as modified so nodes are updated. + # + if (!$anonmode) { + DBQueryFatal("update users set usr_modified=now() where uid='$user'"); + } + return 1; } diff --git a/utils/addpubkey.in b/utils/addpubkey.in index 53fc4db1db2288ae71d546bb0937d3b42c5df240..53a58e3dfb99ee91bf07a3dced2d40ed0b17b40c 100644 --- a/utils/addpubkey.in +++ b/utils/addpubkey.in @@ -27,6 +27,7 @@ my $optlist = "kna"; my $iskey = 0; my $verify = 0; my $auditmode = 0; +my $anonmode = 0; # # Configure variables @@ -136,6 +137,8 @@ if (getpwuid($UID) eq "nobody") { fatal("*** $0:\n". " Attempt to insert first key for existing user!\n"); } + # Make sure we do not mess with user table. + $anonmode = 1; } elsif (! $verify) { if (! UNIX2DBUID($UID, \$db_uid)) { @@ -245,6 +248,13 @@ sub ParseKey($) { DBQueryFatal("replace into user_pubkeys ". "values ('$user', '$comment', '$key', now())"); + # + # Mark user record as modified so nodes are updated. + # + if (!$anonmode) { + DBQueryFatal("update users set usr_modified=now() where uid='$user'"); + } + return 1; }