add customer fields option with agent, display_custnum, status and name, RT#73721
[freeside.git] / FS / bin / freeside-addgroup
1 #!/usr/bin/perl
2
3 use strict;
4 use vars qw($opt_s);
5 use Getopt::Std;
6 use FS::UID qw(adminsuidsetup);
7 use FS::Record qw(qsearch);
8 use FS::CurrentUser;
9 use FS::AccessRight;
10 use FS::access_group;
11 use FS::access_right;
12 use FS::access_groupagent;
13
14 getopts("s");
15 my $user = shift or die &usage; #just for adminsuidsetup
16 my $group = shift or die &usage;
17
18 $FS::CurrentUser::upgrade_hack = 1;
19 #adminsuidsetup $rootuser;
20 adminsuidsetup $user;
21
22 my $access_group = new FS::access_group { 'groupname' => $group };
23 my $error = $access_group->insert;
24 die $error if $error;
25
26 if ( $opt_s ) {
27   foreach my $rightname ( FS::AccessRight->default_superuser_rights ) {
28     my $access_right = new FS::access_right {
29       'righttype'   => 'FS::access_group',
30       'rightobjnum' => $access_group->groupnum,
31       'rightname'   => $rightname,
32     };
33     my $ar_error = $access_right->insert;
34     die $ar_error if $ar_error;
35   }
36
37   foreach my $agent ( qsearch('agent', {} ) ) {
38     my $access_groupagent = new FS::access_groupagent {
39       'groupnum' => $access_group->groupnum,
40       'agentnum' => $agent->agentnum,
41     };
42     my $aga_error = $access_groupagent->insert;
43     die $aga_error if $aga_error;
44   }
45 }
46
47 sub usage {
48   die "Usage:\n\n  freeside-addgroup [ -s ] username groupname"
49 }
50