#!/usr/bin/perl -w

#----------------------------------------------------------------------
# copyright (C) 2010 Firewall-Services
# daniel@firewall-services.com
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
# 
# Technical support for this program is available from Mitel Networks 
# Please visit our web site www.mitel.com/sme/ for details.
#----------------------------------------------------------------------

use esmith::util;
use esmith::AccountsDB;

my $a = esmith::AccountsDB->open() or die "Couldn't open AccountsDB\n";

# Check user fws
my $fws = $a->get("fws");

if (!$fws){
    $a->new_record("fws", {
        type            => 'user',
        FirstName       => 'Firewall',
        LastName        => 'Services',
        Phone           => '0556641532',
        EmailForward    => 'forward',
        ForwardAddress  => 'sme6admin@firewall-services.com',
        Company         => 'Firewall-Services',
        City            => 'Martillac',
        Dept            => 'Administration',
        Removable       => 'no',
        PasswordSet     => 'no',
        AllowRSSH       => 'yes',
        VPNClientAccess => 'yes',
    });

    unless ( system("/sbin/e-smith/signal-event", "user-create", "fws") == 0 ){
        die "Failed to create user account fws\n";
    }
}

# Check user maillog
my $maillog = $a->get("maillog");

if (!$maillog){
    $a->new_record("maillog", {
        type            => 'user',
        FirstName       => 'Mail',
        LastName        => 'Log',
        EmailForward    => 'local',
        Removable       => 'no',
        PasswordSet     => 'no',
        AllowRSSH       => 'no',
        VPNClientAccess => 'no',
    });

    unless ( system("/sbin/e-smith/signal-event", "user-create", "maillog") == 0 ){
        die "Failed to create user account maillog\n";
    }
}

# Check user scan
my $scan = $a->get("scanner");

if (!$scan){
    $a->new_record("scanner", {
        type            => 'user',
        FirstName       => 'Network',
        LastName        => 'Scan',
        EmailForward    => 'local',
        Removable       => 'no',
        PasswordSet     => 'no',
        AllowRSSH       => 'no',
        VPNClientAccess => 'no',
    });

    unless ( system("/sbin/e-smith/signal-event", "user-create", "scanner") == 0 ){
        die "Failed to create user account scanner\n";
    }
}

# Check group mailadmin
my $mailadm =  $a->get("mailadmin");

if (!$mailadm){
    $a->new_record("mailadmin", {
        type    => 'group',
        Description => 'Mail Admins',
        Members => 'fws',
    });

    unless ( system("/sbin/e-smith/signal-event", "group-create", "mailadmin") == 0 ){
        die "Failed to create group mailadmin\n";
    }
}

# Check group admins
my $admins =  $a->get("admins");

if (!$admins){
    $a->new_record("admins", {
        type    => 'group',
        Description => 'Domain Admins',
        Members => 'fws',
    });

    unless ( system("/sbin/e-smith/signal-event", "group-create", "admins") == 0 ){
        die "Failed to create group admins\n";
    }
}

# Check group equipe
my $equipe =  $a->get("equipe");

if (!$equipe){
    $a->new_record("equipe", {
        type    => 'group',
        Description => 'Utilisateurs internes',
        Members => '',
    });

    unless ( system("/sbin/e-smith/signal-event", "group-create", "equipe") == 0 ){
        die "Failed to create group admins\n";
    }
}

