3 # Display a form for editing or creating a group
5 require './postgresql-lib.pl';
7 $access{'users'} || &error($text{'group_ecannot'});
9 &ui_print_header(undef, $text{'group_create'}, "");
12 &ui_print_header(undef, $text{'group_edit'}, "");
13 $s = &execute_sql_safe($config{'basedb'}, "select * from pg_group ".
14 "where grosysid = '$in{'gid'}'");
15 @group = @{$s->{'data'}->[0]};
19 print &ui_form_start("save_group.cgi");
20 print &ui_hidden("new", $in{'new'});
21 print &ui_table_start($text{'group_header'}, undef, 2);
24 print &ui_table_row($text{'group_name'},
25 &ui_textbox("name", $group[0], 40));
27 # Group ID, dynamically selected for new ones
29 $s = &execute_sql($config{'basedb'},
30 "select max(grosysid) from pg_group");
31 $gid = $s->{'data'}->[0]->[0] + 1;
32 print &ui_table_row($text{'group_id'},
33 &ui_textbox("gid", $gid, 10));
36 print &ui_table_row($text{'group_id'}, $group[1]);
37 print &ui_hidden("gid", $in{'gid'});
38 print &ui_hidden("oldname", $group[0]);
42 $s = &execute_sql($config{'basedb'}, "select * from pg_shadow");
43 %uidtouser = map { $_->[1], $_->[0] } @{$s->{'data'}};
45 @mems = map { [ $_, $uidtouser{$_} || $_ ] } &split_array($group[2]);
47 @users = map { [ $_->[1], $_->[0] ] } @{$s->{'data'}};
48 print &ui_table_row($text{'group_mems'},
49 &ui_multi_select("mems", \@mems, \@users, 10, 1, 0,
50 $text{'group_memsopts'}, $text{'group_memsvals'}));
52 # End of the form buttons
53 print &ui_table_end();
55 print &ui_form_end([ [ undef, $text{'create'} ] ]);
58 print &ui_form_end([ [ undef, $text{'save'} ],
59 [ 'delete', $text{'delete'} ] ]);
62 &ui_print_footer("list_groups.cgi", $text{'group_return'});