#!/usr/bin/perl -X
# (C) http://spcms.ru

use CGI qw(:standard escapeHTML -no_xhtml);
use CGI::Carp qw(fatalsToBrowser);
use locale;
use strict;

chdir '/var/www/cgi-bin/sp/';

require "common.pl";
require "misc.pl";

$ENV{'SERVER_NAME'} = 'dummy';

our ( %gconf, $gdsn, $gdb );
our ( $gdate, $ggid );

OnStart();

if ( !$ARGV[0] or !$ARGV[1] ) {
    exit print "usage:\nsp_add_admin.pl login password [--silent]";
}

my $log = $ARGV[0];
my $pas = $ARGV[1];
$ARGV[2] ||= '';
my $silent = $ARGV[2] eq '--silent';

my $name = ( $log eq 'root' ) ? '' : '';
my $gid  = ( $log eq 'root' ) ? '0'            : '1';

if ( sqlff(qq[select 1 from sp_users where LOG = '$log']) ) {
    exit print "ERROR: User with login '$log' already exists\n";
}

my $uid = sqlff("select next_value from get_next_value('HUMAN')");
sql(
    qq[
INSERT INTO HUMAN (HUMAN_ID,CLASS,FIRST_NAME,MIDDLE_NAME,LAST_NAME,BIRTH_DAY,BIRTH_PLACE,SEX,SOCIAL_STATUS,NOTE) VALUES
($uid,10,' ',' ','$name','3-NOV-1991 00:00:00',' ',1,1,NULL);
]
);

sql(
qq[INSERT INTO SP_USERS (UID,GID,LOG,PAS) VALUES ($uid, $gid, '$log', '$pas')]
);
sql(qq[INSERT INTO SP_USERS_ACL (UID, GID) VALUES ($uid, 6)]);

unless ($silent) {
    print "ok\n";
    print join( ':', ( $uid, $log, $pas ) );
    print "\n";
}
