2 # (c) Petr Baudis <pasky@suse.cz>
17 substr(crypt(rand, rand), 2);
21 my $gcgi = Girocco
::CGI
->new('Forgotten Project Password');
24 my $name = $cgi->param('name');
26 unless (defined $name) {
27 print "<p>I need the project name as an argument.</p>\n";
31 if (!Girocco
::Project
::valid_name
($name)) {
32 print "<p>Invalid project name. Go away, sorcerer.</p>\n";
36 if (!Girocco
::Project
::does_exist
($name)) {
37 print "<p>Sorry but this project does not exist. Now, how did you <em>get</em> here?!</p>\n";
41 my $proj = Girocco
::Project
->load($name);
42 $proj or die "not found project $name, that's really weird!";
44 my $mail = $proj->{email
};
46 if ($cgi->param('y0')) {
49 my $newpwd = genpwd
();
51 open (M
, '|-', 'mail', '-s', "[$Girocco::Config::name] New password for project $name", $mail) or die "Cannot spawn mail: $!";
55 somebody asked for the password for project $name to be reset. Since you are
56 the project admin, you get to know the new password:
60 In case you did not request the password to be reset, we apologize. Nevertheless,
61 you have to use the reset password now (possibly to change it back).
63 Quick-link to the edit project page:
65 $Girocco::Config::webadmurl/editproj.cgi?name=$name
69 close M
or die "mail $mail for $name died? $!";
71 $proj->update_password($newpwd);
73 print "<p>Project password has been reset. Have a nice day.</p>\n";
78 <p>You are trying to make me reset password for project $name. I will send the new
79 password to the project admin <$mail>.</p>
81 <input type="hidden" name="name" value="$name" />
82 <p><input type="submit" name="y0" value="Reset Password" /></p>