adding freeside-addgroup
authorivan <ivan>
Tue, 4 Jul 2006 12:01:03 +0000 (12:01 +0000)
committerivan <ivan>
Tue, 4 Jul 2006 12:01:03 +0000 (12:01 +0000)
FS/MANIFEST
FS/bin/freeside-addgroup [new file with mode: 0755]
FS/bin/freeside-adduser

index 6db8271..3c315fc 100644 (file)
@@ -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 (executable)
index 0000000..7b30f7d
--- /dev/null
@@ -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"
+}
+
index 3ec2e72..0d8b454 100644 (file)
@@ -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);