3 # Save, create or delete a proxy user
5 require './squid-lib.pl';
6 $access{'proxyauth'} || &error($text{'eauth_ecannot'});
9 $file = &find_config("proxy_auth", $conf)->{'values'}->[0];
11 @users = &list_auth_users($file);
13 $user = $users[$in{'index'}];
15 &replace_file_line($file, $user->{'line'});
18 $whatfailed = $text{'suser_ftsu'};
19 $in{'user'} =~ /^[^:\s]+$/ || &error($text{'suser_emsg1'});
20 $salt = substr(time(), -2);
21 local ($same) = grep { $_->{'user'} eq $in{'user'} } @users;
23 !$same || &error($text{'suser_etaken'});
24 &open_tempfile(FILE, ">>$file");
25 &print_tempfile(FILE, $in{'user'},":",&unix_crypt($in{'pass'}, $salt),"\n");
26 &close_tempfile(FILE);
29 !$same || $same->{'user'} eq $user->{'user'} ||
30 &error($text{'suser_etaken'});
31 $pass = $in{'pass_def'} ? $user->{'pass'}
32 : &unix_crypt($in{'pass'}, $salt);
33 &replace_file_line($file, $user->{'line'},
34 "$in{'user'}:$pass\n");
38 &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
39 'user', $in{'user'} ? $in{'user'} : $user->{'user'});
40 &redirect("edit_auth.cgi");