X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap-cgi.git;a=blobdiff_plain;f=update.cgi;h=d109bf77fb09013009c7a9ed44c725de1c077819;hp=ddb8052be31984a74df35d58128d01b357e2fc4f;hb=b33011c65aeb65e4b06b127077d6a225f764d042;hpb=b0f8e57cce2bf0ab7a693ffac1ab1cc62f59b13c diff --git a/update.cgi b/update.cgi index ddb8052..d109bf7 100755 --- a/update.cgi +++ b/update.cgi @@ -25,8 +25,16 @@ my $proto = ($ENV{HTTPS} ? "https" : "http"); my $id = $query->param('id'); my $authtoken = $query->param('authtoken'); -my $password = &Util::CheckAuthToken($authtoken); -my $editdn = $query->param('editdn'); + +my $password = undef; + +if ($authtoken || $id) { + $password = Util::TouchAuthToken($authtoken, $id); +} else { + $password = ''; + $id = ''; + $authtoken = ''; +} if ($proto eq "http" || !($id && $password)) { print "Location: https://$ENV{SERVER_NAME}/$config{webloginhtml}\n\n"; @@ -45,6 +53,7 @@ sub DieHandler { } #$SIG{__DIE__} = \&DieHandler; +my $editdn = "uid=$id,$config{basedn}"; $ldap = Net::LDAP->new($config{ldaphost}); &Util::UpgradeConnection($ldap) unless $config{usessl} eq 'False'; @@ -399,8 +408,7 @@ if (!($query->param('doupdate'))) { &Util::LDAPUpdate($ldap, $editdn, 'sudoPassword', \@keepsudo); # when we are done, reload the page with the updated details. - my $url = "https://$ENV{SERVER_NAME}/$config{webupdateurl}?id=$id&authtoken=$authtoken&editdn="; - $url .= uri_escape($editdn, "\x00-\x40\x7f-\xff"); + my $url = "https://$ENV{SERVER_NAME}/$config{webupdateurl}?id=$id;authtoken=$authtoken"; print "Location: $url\n\n"; }