⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 save_printer.cgi

📁 Unix下基于Web的管理工具
💻 CGI
字号:
#!/usr/local/bin/perl# save_printer.cgi# Create or modify a printerrequire './lpadmin-lib.pl';&ReadParse();&error_setup($text{'save_err'});# Check ACLif ($in{'new'}) {	$access{'add'} || &error($text{'save_eadd'});	}else {	&can_edit_printer($in{'name'}) ||		&error($text{'save_eedit'});	}# validate and store printer details$in{'name'} =~ /^[A-z0-9\-\_\.]+$/ ||	&error(&text('save_ename', $in{'name'}));if ($in{'new'} && &get_printer($in{'name'})) {	&error(&text('save_edup', $in{'name'}));	}$prn{'name'} = $in{'name'};$prn{'accepting'} = $in{'accepting'};if (!$prn{'accepting'}) { $prn{'accepting_why'} = $in{'accepting_why'}; }$prn{'enabled'} = $in{'enabled'};if (!$prn{'enabled'}) { $prn{'enabled_why'} = $in{'enabled_why'}; }$prn{'desc'} = $in{'desc'};if (&printer_support('allow')) {	@ul = split(/\s+/, $in{'users'});	if ($in{'access'} == 0) { $prn{'allow_all'}++; }	elsif ($in{'access'} == 1) { $prn{'deny_all'}++; }	else {		$w = $in{'access'} == 2 ? "allow" : "deny";		if (!@ul) { &error($text{"save_e$w"}); }		foreach $u (@ul) {			if ($u !~ /^\S+\!\S+$/ && !(@dummy=getpwnam($u))) {				&error(&text('save_euser', $u));				}			}		$prn{$w} = \@ul;		}	}if (&printer_support('ctype')) {	$prn{'banner'} = $in{'banner'};	if ($in{'ctype_simple'}) { push(@ctype, "simple"); }	if ($in{'ctype_postscript'}) { push(@ctype, "postscript"); }	if ($in{'ctype_other'}) {		push(@ctype, split(/\s+/, $in{'ctype_olist'}));		}	&error($text{'save_etype'}) if (!@ctype);	$prn{'ctype'} = \@ctype;	}$prn{'default'} = $in{'default'};if (&printer_support('msize') && !$in{'msize_def'}) {	$in{'msize'} =~ /^\d+$/ ||		&error($text{'save_emax'});	$prn{'msize'} = $in{'msize'};	}if (&printer_support('alias')) {	@alias = split(/\s+/, $in{'alias'});	$prn{'alias'} = \@alias;	}if ($in{'new'} || &printer_support('editdest')) {	if ($in{'webmin'}) {		$drv = &parse_webmin_driver();		$dfunc = \&create_webmin_driver;		}	else {		$drv = &parse_driver();		$dfunc = \&create_driver;		}	# validate and store destination section	if ($in{'dest'} == 0) {		# printing to some device		$prn{'dev'} = $in{'dev'};		$prn{'iface'} = &$dfunc(\%prn, $drv);		}	elsif ($in{'dest'} == 1) {		# printing to some file		(-r $in{'file'}) || &error(&text('save_efile', $in{'file'}));		$prn{'dev'} = $in{'file'};		$prn{'iface'} = &$dfunc(\%prn, $drv);		}	elsif ($in{'dest'} == 2) {		# printing to a unix host		gethostbyname($in{'rhost'}) ||			&error(&text('save_erhost', $in{'rhost'}));		$in{'rqueue'} =~ /^[A-z0-9\-\_\.]+$/ ||			&error(&text('save_erqueue', $in{'rqueue'}));		$prn{'rhost'} = $in{'rhost'};		$prn{'rqueue'} = $in{'rqueue'};		$prn{'rtype'} = $in{'rtype'};		if ($drv->{'mode'} && !&printer_support('riface')) {			&error($text{'save_eremote'});			}		$prn{'iface'} = &$dfunc(\%prn, $drv);		}	elsif ($in{'dest'} == 3) {		# printing to windows		$sdrv = { 'server' => $in{'server'},			 'share' => $in{'share'},			 'user' => $in{'user'},			 'pass' => $in{'pass'},			 'workgroup' => $in{'wgroup'},			 'program' => &$dfunc(\%prn, $drv) };		$prn{'iface'} = $in{'webmin'} ? 			&create_webmin_windows_driver(\%prn, $sdrv) :			&create_windows_driver(\%prn, $sdrv);		$prn{'dev'} = "/dev/null";		}	elsif ($in{'dest'} == 4) {		# printing to hpnp server		$hdrv = { 'server' => $in{'hpnp'},			  'port' => $in{'port'},			  'program' => &$dfunc(\%prn, $drv) };		$prn{'iface'} = &create_hpnp_driver(\%prn, $hdrv);		$prn{'dev'} = "/dev/null";		}	}# Create the printerif ($in{'new'}) { &create_printer(\%prn); }else { &modify_printer(\%prn); }# Update ACLif ($in{'new'} && $access{'printers'} ne '*') {	$access{'printers'} .= " ".$in{'name'};	&save_module_acl(\%access);	}&redirect("");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -