summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2006-07-04 12:01:03 +0000
committerivan <ivan>2006-07-04 12:01:03 +0000
commit079be338fb0e200309777249f9e3ea1d115d374e (patch)
tree72cc2baa7e1dc923fe192a7f4c2254f407ec7ee1 /FS
parentb63800b2aaca886ae42c0f61f83ae2e2f0b4c44f (diff)
adding freeside-addgroup
Diffstat (limited to 'FS')
-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 6db8271..3c315fc 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 0000000..7b30f7d
--- /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 3ec2e72..0d8b454 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);