5 use FS::UID qw(adminsuidsetup);
7 use FS::Record qw(qsearchs qsearch);
10 use FS::access_usergroup;
12 use FS::access_groupagent;
17 my $supergroup = qsearchs('access_group', { 'groupname' => 'Superuser' } );
18 unless ( $supergroup ) {
20 $supergroup = new FS::access_group { 'groupname' => 'Superuser' };
21 my $error = $supergroup->insert;
24 foreach my $rightname ( FS::AccessRight->rights ) {
25 my $access_right = new FS::access_right {
26 'righttype' => 'FS::access_group',
27 'rightobjnum' => $supergroup->groupnum,
28 'rightname' => $rightname,
30 my $ar_error = $access_right->insert;
31 die $ar_error if $ar_error;
34 foreach my $agent ( qsearch('agent', {} ) ) {
35 my $access_groupagent = new FS::access_groupagent {
36 'groupnum' => $supergroup->groupnum,
37 'agentnum' => $agent->agentnum,
39 my $aga_error = $access_groupagent->insert;
40 die $aga_error if $aga_error;
44 my $supergroupnum = $supergroup->groupnum;
46 my $mapsecrets = '/usr/local/etc/freeside/mapsecrets';
47 open(MAPSECRETS, "<$mapsecrets");
48 while (<MAPSECRETS>) {
49 /([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_";
52 next if qsearchs('access_user', { 'username' => $username } );
54 my $access_user = new FS::access_user {
55 'username' => $username,
56 '_password' => 'notyet',
60 my $au_error = $access_user->insert;
61 die $au_error if $au_error;
63 my $access_usergroup = new FS::access_usergroup {
64 'usernum' => $access_user->usernum,
65 'groupnum' => $supergroupnum,
67 my $aug_error = $access_usergroup->insert;
68 die $aug_error if $aug_error;
72 # okay to clobber mapsecrets now i guess
73 cp $mapsecrets, "$mapsecrets.bak$$";
74 open(MAPSECRETS, ">$mapsecrets");
75 print MAPSECRETS '* secrets'. "\n";