summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/MANIFEST1
-rwxr-xr-xFS/bin/freeside-addgroup50
-rw-r--r--FS/bin/freeside-adduser2
3 files changed, 51 insertions, 2 deletions
diff --git a/FS/MANIFEST b/FS/MANIFEST
index 6db82710c..3c315fc97 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -5,6 +5,7 @@ Makefile.PL
README
bin/freeside-addoutsource
bin/freeside-addoutsourceuser
+bin/freeside-addgroup
bin/freeside-adduser
bin/freeside-apply-credits
bin/freeside-bill
diff --git a/FS/bin/freeside-addgroup b/FS/bin/freeside-addgroup
new file mode 100755
index 000000000..7b30f7d95
--- /dev/null
+++ b/FS/bin/freeside-addgroup
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+use strict;
+use vars qw($opt_s);
+use Getopt::Std;
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw(qsearch);
+use FS::CurrentUser;
+use FS::AccessRight;
+use FS::access_group;
+use FS::access_right;
+use FS::access_groupagent;
+
+getopts("s");
+my $user = shift or die &usage; #just for adminsuidsetup
+my $group = shift or die &usage;
+
+$FS::CurrentUser::upgrade_hack = 1;
+#adminsuidsetup $rootuser;
+adminsuidsetup $user;
+
+my $access_group = new FS::access_group { 'groupname' => $group };
+my $error = $access_group->insert;
+die $error if $error;
+
+if ( $opt_s ) {
+ foreach my $rightname ( FS::AccessRight->rights ) {
+ my $access_right = new FS::access_right {
+ 'righttype' => 'FS::access_group',
+ 'rightobjnum' => $access_group->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' => $access_group->groupnum,
+ 'agentnum' => $agent->agentnum,
+ };
+ my $aga_error = $access_groupagent->insert;
+ die $aga_error if $aga_error;
+ }
+}
+
+sub usage {
+ die "Usage:\n\n freeside-addgroup [ -s ] username groupname"
+}
+
diff --git a/FS/bin/freeside-adduser b/FS/bin/freeside-adduser
index 3ec2e72cd..0d8b454bf 100644
--- a/FS/bin/freeside-adduser
+++ b/FS/bin/freeside-adduser
@@ -1,6 +1,4 @@
#!/usr/bin/perl -w
-#
-# $Id: freeside-adduser,v 1.11 2006-06-30 14:30:26 ivan Exp $
use strict;
use vars qw($opt_h $opt_b $opt_c $opt_g);