From 64a57a198d5046a458ea2bdc1d34fbc4682f3292 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 19 Jun 2006 11:57:39 +0000 Subject: ACL bootstrapping/upgrade --- bin/mapsecrets2access_user | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 bin/mapsecrets2access_user (limited to 'bin/mapsecrets2access_user') diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user new file mode 100755 index 000000000..934cd7698 --- /dev/null +++ b/bin/mapsecrets2access_user @@ -0,0 +1,76 @@ +#!/usr/bin/perl -w + +use strict; +use File::Copy "cp"; +use FS::UID qw(adminsuidsetup); +use FS::AccessRight; +use FS::Record qw(qsearchs qsearch); +use FS::access_group; +use FS::access_user; +use FS::access_usergroup; +use FS::access_right; +use FS::access_groupagent; +use FS::agent; + +adminsuidsetup shift; + +my $supergroup = qsearchs('access_group', { 'groupname' => 'Superuser' } ); +unless ( $supergroup ) { + + $supergroup = new FS::access_group { 'groupname' => 'Superuser' }; + my $error = $supergroup->insert; + die $error if $error; + + foreach my $rightname ( FS::AccessRight->rights ) { + my $access_right = new FS::access_right { + 'righttype' => 'FS::access_group', + 'rightobjnum' => $supergroup->groupnum, + 'rightname' => $rightname, + }; + my $ar_error = $access_right->insert; + die $ar_error if $ar_error; + } + + foreach my $agent ( qsearch('agent', {} ) ) { + my $access_groupagent = new FS::access_groupagent { + 'groupnum' => $supergroup->groupnum, + 'agentnum' => $agent->agentnum, + }; + my $aga_error = $access_groupagent->insert; + die $aga_error if $aga_error; + } + +} +my $supergroupnum = $supergroup->groupnum; + +my $mapsecrets = '/usr/local/etc/freeside/mapsecrets'; +open(MAPSECRETS, "<$mapsecrets"); +while () { + /([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_"; + my $username = $1; + + next if qsearchs('access_user', { 'username' => $username } ); + + my $access_user = new FS::access_user { + 'username' => $username, + '_password' => 'notyet', + 'first' => 'Legacy', + 'last' => 'User', + }; + my $au_error = $access_user->insert; + die $au_error if $au_error; + + my $access_usergroup = new FS::access_usergroup { + 'usernum' => $access_user->usernum, + 'groupnum' => $supergroupnum, + }; + my $aug_error = $access_usergroup->insert; + die $aug_error if $aug_error; + +} + +# okay to clobber mapsecrets now i guess +cp $mapsecrets, "$mapsecrets.bak$$"; +open(MAPSECRETS, ">$mapsecrets"); +print MAPSECRETS '* secrets'. "\n"; +close MAPSECRETS; -- cgit v1.2.1 From 637378f8fa3c8d76a009cbf92984cdfb571cc5ee Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 19 Jun 2006 12:22:09 +0000 Subject: ACL bootstrapping --- bin/mapsecrets2access_user | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bin/mapsecrets2access_user') diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user index 934cd7698..b34e0321a 100755 --- a/bin/mapsecrets2access_user +++ b/bin/mapsecrets2access_user @@ -3,6 +3,7 @@ use strict; use File::Copy "cp"; use FS::UID qw(adminsuidsetup); +use FS::CurrentUser; use FS::AccessRight; use FS::Record qw(qsearchs qsearch); use FS::access_group; @@ -12,6 +13,7 @@ use FS::access_right; use FS::access_groupagent; use FS::agent; +$FS::CurrentUser::upgrade_hack = 1; adminsuidsetup shift; my $supergroup = qsearchs('access_group', { 'groupname' => 'Superuser' } ); -- cgit v1.2.1 From 3489c3e13d952972c06b82d1eb2bbd0315ed5a7c Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 19 Jun 2006 12:47:55 +0000 Subject: better error checking for this thrown-together bootstrapping script --- bin/mapsecrets2access_user | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'bin/mapsecrets2access_user') diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user index b34e0321a..3fcd5069b 100755 --- a/bin/mapsecrets2access_user +++ b/bin/mapsecrets2access_user @@ -46,7 +46,7 @@ unless ( $supergroup ) { my $supergroupnum = $supergroup->groupnum; my $mapsecrets = '/usr/local/etc/freeside/mapsecrets'; -open(MAPSECRETS, "<$mapsecrets"); +open(MAPSECRETS, "<$mapsecrets") or die $!; while () { /([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_"; my $username = $1; @@ -70,9 +70,10 @@ while () { 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 $!; -- cgit v1.2.1 From e9643bdc9a6d493b4b8e02f7949885e6e126c43e Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 30 Aug 2006 16:24:13 +0000 Subject: need a username arg for now... this should make the error message less confusing --- bin/mapsecrets2access_user | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'bin/mapsecrets2access_user') diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user index 3fcd5069b..4efd90b2b 100755 --- a/bin/mapsecrets2access_user +++ b/bin/mapsecrets2access_user @@ -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 ) { @@ -77,3 +78,8 @@ cp $mapsecrets, "$mapsecrets.bak$$"; open(MAPSECRETS, ">$mapsecrets") or die $!; print MAPSECRETS '* secrets'. "\n"; close MAPSECRETS or die $!; + +sub usage { + die "Usage:\n mapsecrets2access_user user\n"; +} + -- cgit v1.2.1 From 7422aa77086326ba1e6032150ce5704d1003ea6f Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 14 Dec 2006 09:27:26 +0000 Subject: make the config directory configurable --- bin/mapsecrets2access_user | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'bin/mapsecrets2access_user') diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user index 4efd90b2b..945f130ef 100755 --- a/bin/mapsecrets2access_user +++ b/bin/mapsecrets2access_user @@ -46,8 +46,10 @@ unless ( $supergroup ) { } my $supergroupnum = $supergroup->groupnum; -my $mapsecrets = '/usr/local/etc/freeside/mapsecrets'; -open(MAPSECRETS, "<$mapsecrets") or die $!; +my $conf = new FS::Conf; +my $dir = $conf->base_dir; +my $mapsecrets = "$dir/mapsecrets"; +open(MAPSECRETS, "<$mapsecrets") or die "Can't open $mapsecrets: $!"; while () { /([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_"; my $username = $1; -- cgit v1.2.1