1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/usr/bin/perl
- #####################################################
- # gdipadmin.pl
- #
- # This script adds an admin user to the GnuDIP
- # database.
- #
- # See COPYING for licensing information.
- #
- #####################################################
- # PERL modules
- use strict;
- use Getopt::Std;
- # global variables
- use vars qw($conf $gnudipdir);
- # locate ourselves
- use FindBin;
- BEGIN {
- $gnudipdir = '';
- if ($FindBin::Bin =~ /(.*)\/.+?/) {
- $gnudipdir = $1;
- }
- }
- use lib "$gnudipdir/lib";
- # GnuDIP common subroutines
- use gdiplib;
- use dbusers;
- use gdiplinemode;
- # process command line
- sub usage {
- print STDERR <<"EOQ";
- usage: gdipadmin.pl [ -h | [ -u ] userid password ]
- usage: Add GnuDIP administrative user \"user\" with password \"password\".
- usage: -h: Print this usage message.
- usage: -u: Update user if it already exists.
- EOQ
- }
- use vars qw/ $opt_h $opt_u /;
- if (!getopts('hu')) {
- usage();
- exit 1;
- }
- if ($opt_h) {
- usage();
- exit;
- }
- if (@ARGV ne 2) {
- usage();
- exit 1;
- }
- my $username = $ARGV[0];
- my $password = $ARGV[1];
- # get preferences from config file
- $conf = getconf();
- # user exists?
- my $userinfo = getuser($username, '');
- # user exists
- if ($userinfo) {
- # did not say to update
- if (!$opt_u) {
- print STDOUT "User $username already exists - use \"-u\" to update\n";
- # supposed to update
- } else {
- $$userinfo{'password'} = md5_hex($password);
- $$userinfo{'level'} = 'ADMIN';
- updateuser($userinfo);
- print STDOUT
- "Updated username $username with password $password and set as ADMIN\n";
- }
- # user does not exist yet
- } else {
- createuser(
- $username,
- '', # domain
- md5_hex($password),
- 'ADMIN',
- '' # E-mail
- );
- print STDOUT "Added username $username with password $password and set as ADMIN\n";
- }
- exit;
|