1# display args for pam_group.so
2
3# display_args(&service, &module, &args)
4sub display_module_args
5{
6local $file = "/etc/security/group.conf";
7local @group;
8open(FILE, "<".$file);
9while(<FILE>) {
10	s/#.*$//;
11	s/\r|\n//g;
12	if (/^\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*$/) {
13		push(@group, [ $1, $2, $3, $4, $5 ]);
14		}
15	}
16close(FILE);
17local $gt;
18$gt .= &ui_columns_start([ $text{'group_services'},
19			   $text{'group_ttys'},
20			   $text{'group_users'},
21			   $text{'group_times'},
22			   $text{'group_groups'} ]);
23local $i = 0;
24foreach $g (@group, [ ]) {
25	$gt .= &ui_columns_row([
26		&ui_textbox("services_$i", $g->[0], 20),
27		&ui_textbox("ttys_$i", $g->[1], 20),
28		&ui_textbox("users_$i", $g->[2], 20),
29		&ui_textbox("times_$i", $g->[3], 20),
30		&ui_textbox("groups_$i", $g->[4], 20),
31		]);
32	$i++;
33	}
34$gt .= &ui_columns_end();
35$gt .= "<br>".$text{'group_info'};
36print &ui_table_row(undef, $gt, 4);
37}
38
39# parse_module_args(&service, &module, &args)
40sub parse_module_args
41{
42local $file = "/etc/security/group.conf";
43local (@lines, $i);
44for($i=0; defined($in{"services_$i"}); $i++) {
45	next if (!$in{"services_$i"});
46	push(@lines, join(";", $in{"services_$i"}, $in{"ttys_$i"},
47		     $in{"users_$i"}, $in{"times_$i"}, $in{"groups_$i"}),"\n");
48	}
49&lock_file($file);
50&open_tempfile(FILE, ">$file");
51&print_tempfile(FILE, @lines);
52&close_tempfile(FILE);
53&unlock_file($file);
54}
55
56