HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/webmin/qmailadmin/save_assign.cgi
#!/usr/bin/perl
# save_assign.cgi
# Save or delete a mail user assignment

require './qmail-lib.pl';
&ReadParse();
&error_setup($text{'ssave_err'});

@assigns = &list_assigns();
$a = $assigns[$in{'idx'}] if (defined($in{'idx'}));

if ($in{'delete'}) {
	# delete some assign
	$loga = $a;
	&delete_assign($a);
	}
else {
	# saving or creating .. check inputs
	if ($in{'mode'} eq '=') {
		$in{'address0'} =~ /^[^:\s]+$/ || &error($text{'ssave_eaddress'});
		}
	else {
		$in{'address1'} =~ /^[^:\s]*$/ || &error($text{'ssave_eaddress'});
		}
	scalar(getpwnam($in{'user'})) || &error($text{'ssave_euser'});
	$in{'uid'} =~ /^\d+$/ || &error($text{'ssave_euid'});
	$in{'gid'} =~ /^\d+$/ || &error($text{'ssave_egid'});
	-d $in{'home'} || &error($text{'ssave_ehome'});
	$newa{'mode'} = $in{'mode'};
	$newa{'address'} = $in{'mode'} eq '=' ? $in{'address0'} : $in{'address1'};
	$newa{'user'} = $in{'user'};
	$newa{'uid'} = $in{'uid'};
	$newa{'gid'} = $in{'gid'};
	$newa{'home'} = $in{'home'};
	if ($a) {
		# Just keep these as before
		$newa{'dash'} = $a->{'dash'};
		$newa{'preext'} = $a->{'preext'};
		}

	if ($in{'new'}) { &create_assign(\%newa); }
	else { &modify_assign($a, \%newa); }
	$loga = \%newa;
	}
&system_logged("$qmail_bin_dir/qmail-newu");
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "assign", $loga->{'mode'}.$loga->{'address'}, $loga);
&redirect("list_assigns.cgi");