require 'postgresql-lib.pl'; # acl_security_form(&options) # Output HTML for editing security options for the postgresql module sub acl_security_form { my ($o) = @_; my @listdb = &list_databases(); if (@listdb) { print &ui_table_row($text{'acl_dbs'}, &ui_radio("dbs_def", $o->{'dbs'} eq '*' ? 1 : 0, [ [ 1, $text{'acl_dall'} ], [ 0, $text{'acl_dsel'} ] ])."
\n". &ui_select("dbs", [ split(/\s+/, $o->{'dbs'}) ], \@listdb, 5, 1). &ui_hidden("dblist", "1"), 3); } else { print &ui_table_row($text{'acl_dbs'}, $text{'acl_dbscannot'}.&ui_hidden("dblist", "0 ".$o->{'dbs'}), 3); } print &ui_table_row($text{'acl_create'}, &ui_radio_table("create", defined($o->{'create'}) ? $o->{'create'} : 0, [ [ 1, $text{'yes'} ], [ 2, $text{'acl_max'}, &ui_textbox("max", $o->{'max'}, 5) ], [ 0, $text{'no'} ] ], 1), 3); print &ui_table_row($text{'acl_delete'}, &ui_yesno_radio("delete", $o->{'delete'})); print &ui_table_row($text{'acl_stop'}, &ui_yesno_radio("stop", $o->{'stop'})); print &ui_table_row($text{'acl_users'}, &ui_yesno_radio("users", $o->{'users'})); print &ui_table_row($text{'acl_login'}, &ui_radio_table("user_def", $o->{'user'} ? 0 : 1, [ [ 1, $text{'acl_user_def'} ], [ 0, "", $text{'acl_user'}." ".&ui_textbox("user", $o->{'user'}, 10)." ". $text{'acl_pass'}." ".&ui_password("pass", $o->{'pass'}, 10)."
\n". &ui_checkbox("sameunix", 1, $text{'acl_sameunix'}, $o->{'sameunix'}) ] ], 1), 3); print &ui_table_row($text{'acl_backup'}, &ui_yesno_radio("backup", $o->{'backup'})); print &ui_table_row($text{'acl_restore'}, &ui_yesno_radio("restore", $o->{'restore'})); print &ui_table_row($text{'acl_cmds'}, &ui_yesno_radio("cmds", $o->{'cmds'})); print &ui_table_row($text{'acl_views'}, &ui_yesno_radio("views", $o->{'views'})); print &ui_table_row($text{'acl_indexes'}, &ui_yesno_radio("indexes", $o->{'indexes'})); print &ui_table_row($text{'acl_seqs'}, &ui_yesno_radio("seqs", $o->{'seqs'})); } # acl_security_save(&options) # Parse the form for security options for the postgresql module sub acl_security_save { if ($in{'dblist'} eq '1') { if ($in{'dbs_def'}) { $_[0]->{'dbs'} = '*'; } else { $_[0]->{'dbs'} = join(" ", split(/\0/, $in{'dbs'})); } } else { $_[0]->{'dbs'} = $in{'dblist'}; $_[0]->{'dbs'} =~ s/^0 //; } $_[0]->{'create'} = $in{'create'}; $_[0]->{'max'} = $in{'max'}; $_[0]->{'delete'} = $in{'delete'}; $_[0]->{'stop'} = $in{'stop'}; $_[0]->{'users'} = $in{'users'}; $_[0]->{'backup'} = $in{'backup'}; $_[0]->{'restore'} = $in{'restore'}; $_[0]->{'cmds'} = $in{'cmds'}; $_[0]->{'views'} = $in{'views'}; $_[0]->{'indexes'} = $in{'indexes'}; $_[0]->{'seqs'} = $in{'seqs'}; if ($in{'user_def'}) { delete($_[0]->{'user'}); delete($_[0]->{'pass'}); } else { $_[0]->{'user'} = $in{'user'}; $_[0]->{'pass'} = $in{'pass'}; } $_[0]->{'sameunix'} = $in{'sameunix'}; }