use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(valid_person log_update select_flags);
use Dbase::Help qw(Do DoFn);

sub edit_person_acl($$;$) {
	my($pers,$queue,$kn) = @_; 

	return unless valid_person($pers);

	my $flag = DoFn("select acls from queue_acl where person=$pers and queue=$queue");
	my $qname = DoFn("select name from queue where id=$queue");
	unless(defined $flag) {
		log_update("queue_acl","person",$pers,undef,"queue","*",undef,$qname);
		Do("insert into queue_acl set person=$pers, queue=$queue, acls=0");
		$flag = 0;
	}

	my $nflag = select_flags($flag,"rt_acl","$kn $qname ACLs","!hide");
	return undef unless defined $flag;

	if($nflag == 0) {
		log_update("queue_acl","person",$pers,undef,"queue","-",undef,$qname);
		Do("delete from queue_acl where person = $pers and queue = $queue");
		print "...keine Rechte, gelöscht.\n";
	} elsif($flag != $nflag) {
		log_update("queue_acl","person",$pers,undef,"queue","acl",undef,$qname,$flag);
		Do("update queue_acl set acls=$nflag where person=$pers and queue=$queue");
	}
	$flag;
}
1;
