X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-adduser;h=6b4becb5fde045a2ff4229e2bfa0ee75c9bf7141;hp=4517a83fadb52c6d7da2c16fb199903f58bc3a9a;hb=1f1190b8fb6d06852dbd16c6a288f9acd9cc83dd;hpb=399377be683d60fd80690504103b809885b27903 diff --git a/FS/bin/freeside-adduser b/FS/bin/freeside-adduser old mode 100644 new mode 100755 index 4517a83fa..6b4becb5f --- a/FS/bin/freeside-adduser +++ b/FS/bin/freeside-adduser @@ -1,30 +1,49 @@ #!/usr/bin/perl -w -# -# $Id: freeside-adduser,v 1.1 2001-10-30 10:20:32 ivan Exp $ use strict; -use vars qw($opt_h $opt_c); +use vars qw($opt_s $opt_g $opt_n); +use Fcntl qw(:flock); use Getopt::Std; -my $FREESIDE_CONF = "/usr/local/etc/freeside"; +my $FREESIDE_CONF = "%%%FREESIDE_CONF%%%"; -getopts("ch:"); -die &usage if $opt_c && ! $opt_h; -my $secretfile = shift or die &usage; +getopts("g:"); my $user = shift or die &usage; +my $password = shift; + +use FS::UID qw(adminsuidsetup); +use FS::CurrentUser; +use FS::access_user; +use FS::access_usergroup; + +$FS::CurrentUser::upgrade_hack = 1; +#adminsuidsetup $rootuser; +adminsuidsetup $user; + +my $access_user = new FS::access_user { + 'username' => $user, + 'first' => 'Firstname', # $opt_f || + 'last' => 'Lastname', # $opt_l || +}; +$access_user->change_password_fields($password) if length($password); +my $au_error = $access_user->insert; +die $au_error if $au_error; + +if ( $opt_g ) { + + my $access_usergroup = new FS::access_usergroup { + 'usernum' => $access_user->usernum, + 'groupnum' => $opt_g, + }; + my $aug_error = $access_usergroup->insert; + die $aug_error if $aug_error; -my @args = ( 'htpasswd' ); -push @args, '-c' if $opt_c; -push @args, $opt_h, $user; -system(@args) == 0 or die "htpasswd failed: $?"; +} -open(MAPSECRETS,">>$FREESIDE_CONF/mapsecrets") - or die "can't open $FREESIDE_CONF/mapsecrets: $!"; -print MAPSECRETS "$user $secretfile\n"; -close MAPSECRETS or die "can't close $FREESIDE_CONF/mapsecrets: $!"; +### sub usage { - die "Usage:\n\n freeside-adduser [ -h htpasswd_file [ -c ] ] secretfile username" + die "Usage:\n\n freeside-adduser [ -g groupnum ] username [ password ]" } =head1 NAME @@ -33,20 +52,21 @@ freeside-adduser - Command line interface to add (freeside) users. =head1 SYNOPSIS - freeside-adduser [ -h htpasswd_file [ -c ] ] username + freeside-adduser [ -g groupnum ] username [ password ] -=head DESCRIPTION +=head1 DESCRIPTION Adds a user to the Freeside billing system. This is for adding users (internal sales/tech folks) to the web interface, not for adding customer accounts. - -h: Also call htpasswd for this user with the given filename +This functionality is now available in the web interface as well, under +B. - -c: Passed to htpasswd + -g: initial groupnum =head1 SEE ALSO -L, base Freeside documentation +Base Freeside documentation =cut