adding export to read mailbox status information, RT#15987
[freeside.git] / bin / mapsecrets2access_user
index b34e032..d632360 100755 (executable)
@@ -14,7 +14,8 @@ use FS::access_groupagent;
 use FS::agent;
 
 $FS::CurrentUser::upgrade_hack = 1;
-adminsuidsetup shift;
+my $user = shift or die &usage;
+adminsuidsetup $user;
 
 my $supergroup = qsearchs('access_group', { 'groupname' => 'Superuser' } );
 unless ( $supergroup ) {
@@ -23,7 +24,7 @@ unless ( $supergroup ) {
   my $error = $supergroup->insert;
   die $error if $error;
 
-  foreach my $rightname ( FS::AccessRight->rights ) {
+  foreach my $rightname ( FS::AccessRight->default_superuser_rights ) {
     my $access_right = new FS::access_right {
       'righttype'   => 'FS::access_group',
       'rightobjnum' => $supergroup->groupnum,
@@ -45,8 +46,10 @@ unless ( $supergroup ) {
 }
 my $supergroupnum = $supergroup->groupnum;
 
-my $mapsecrets = '/usr/local/etc/freeside/mapsecrets';
-open(MAPSECRETS, "<$mapsecrets");
+my $conf = new FS::Conf;
+my $dir = $conf->base_dir;
+my $mapsecrets = "$dir/mapsecrets";
+open(MAPSECRETS, "<$mapsecrets") or die "Can't open $mapsecrets: $!";
 while (<MAPSECRETS>) {
   /([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_";
   my $username = $1;
@@ -70,9 +73,15 @@ while (<MAPSECRETS>) {
   die $aug_error if $aug_error;
 
 }
+close MAPSECRETS;
 
 # okay to clobber mapsecrets now i guess
 cp $mapsecrets, "$mapsecrets.bak$$";
-open(MAPSECRETS, ">$mapsecrets");
+open(MAPSECRETS, ">$mapsecrets") or die $!;
 print MAPSECRETS '* secrets'. "\n";
-close MAPSECRETS;
+close MAPSECRETS or die $!;
+
+sub usage {
+  die "Usage:\n  mapsecrets2access_user user\n"; 
+}
+