diff options
Diffstat (limited to 'FS/bin/freeside-adduser')
-rw-r--r-- | FS/bin/freeside-adduser | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/FS/bin/freeside-adduser b/FS/bin/freeside-adduser new file mode 100644 index 000000000..c3ee05b9b --- /dev/null +++ b/FS/bin/freeside-adduser @@ -0,0 +1,63 @@ +#!/usr/bin/perl -w +# +# $Id: freeside-adduser,v 1.8 2002-09-27 05:36:29 ivan Exp $ + +use strict; +use vars qw($opt_h $opt_b $opt_c $opt_s); +use Fcntl qw(:flock); +use Getopt::Std; + +my $FREESIDE_CONF = "/usr/local/etc/freeside"; + +getopts("bch:s:"); +die &usage if $opt_c && ! $opt_h; +my $user = shift or die &usage; + +if ( $opt_h ) { + my @args = ( 'htpasswd' ); + push @args, '-b' if $opt_b; + push @args, '-c' if $opt_c; + push @args, $opt_h, $user; + push @args, shift if $opt_b; + system(@args) == 0 or die "htpasswd failed: $?"; +} + +my $secretfile = $opt_s || 'secrets'; + +open(MAPSECRETS,">>$FREESIDE_CONF/mapsecrets") + and flock(MAPSECRETS,LOCK_EX) + 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 ] [ -b ] ] [ -s secretfile ] username" +} + +=head1 NAME + +freeside-adduser - Command line interface to add (freeside) users. + +=head1 SYNOPSIS + + freeside-adduser [ -h htpasswd_file [ -c ] ] [ -s secretfile ] username + +=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 + + -c: Passed to htpasswd(1) + + -s: Specify an alternate secret file + + -b: same as htpasswd(1), probably insecure, not recommended + +=head1 SEE ALSO + +L<htpasswd>(1), base Freeside documentation + +=cut + |