#!/usr/local/bin/perl # save_access.cgi # Save readers and writers lists require './pserver-lib.pl'; $access{'access'} || &error($text{'access_ecannot'}); &ReadParse(); &error_setup($text{'access_err'}); &lock_file($readers_file); @passwd = &list_passwords(); %gotuser = map { $_->{'user'}, 1 } @passwd; if ($in{'readers_def'}) { unlink($readers_file); } else { @readers = split(/\s+/, $in{'readers'}); foreach $r (@readers) { defined(getpwnam($r)) || $gotuser{$r} || &error(&text('access_euser', $r)); } &open_tempfile(READERS, ">$readers_file"); foreach $r (@readers) { &print_tempfile(READERS, $r,"\n"); } &close_tempfile(READERS); } &unlock_file($readers_file); &lock_file($writers_file); if ($in{'writers_def'}) { unlink($writers_file); } else { @writers = split(/\s+/, $in{'writers'}); foreach $r (@writers) { defined(getpwnam($r)) || $gotuser{$r} || &error(&text('access_euser', $r)); } &open_tempfile(WRITERS, ">$writers_file"); foreach $r (@writers) { &print_tempfile(WRITERS, $r,"\n"); } &close_tempfile(WRITERS); } &unlock_file($writers_file); &webmin_log("access"); &redirect("");