#!/usr/bin/perl -w
# This script (sophomorix-test-4) is maintained by Rüdiger Beck
# It is Free Software (License GPLv3)
# If you find errors, contact the author
# jeffbeck@web.de  or  jeffbeck@linuxmuster.net

# modules
use strict;
use Getopt::Long;
Getopt::Long::Configure ("bundling");
use Sophomorix::SophomorixBase qw(
                                 print_line
                                 print_title
                                 check_options
                                 get_passwd_charlist
                                 get_plain_password
                                 );
use Sophomorix::SophomorixSambaAD qw(
                                 AD_school_create
                                 AD_bind_admin
                                 AD_unbind_admin
                                 AD_user_create
                                 AD_group_create
                                 AD_group_addmember
                                 AD_user_kill
                                 AD_dns_get
                                 AD_object_search
                                 AD_debug_logdump
                                 AD_get_name_tokened
                                    );
use Sophomorix::SophomorixTest qw(
                                 AD_object_nonexist
                                 AD_test_object
                                 directory_tree_test
                                 start_fs_test
                                 end_fs_test
                                 run_command
                                 );

$Conf::log_level=1;
my $help=0;
my $full=0;
my $add_class=0;
my $test_add_class=0;

my $mod_class=0;
my $test_mod_class=0;

my $mod_quota=0;
my $test_mod_quota=0;

my $kill_class=0;
my $test_kill_class=0;

my $all_options="";
my $json=0;
my $ntacl=1;
my $nontacl=0;
my %fs_test_result=();

my $testopt=GetOptions(
           "help|h" => \$help,
           "full|f" => \$full,
           "verbose|v+" => \$Conf::log_level,
           "json|j+" => \$json,
           "nontacl|n" => \$nontacl,
           "add-class" => \$add_class,
           "test-add-class" => \$test_add_class,
           "mod-class" => \$mod_class,
           "test-mod-class" => \$test_mod_class,
           "mod-quota" => \$mod_quota,
           "test-mod-quota" => \$test_mod_quota,
           "kill-class" => \$kill_class,
           "test-kill-class" => \$test_kill_class,
  );


# Prüfen, ob Optionen erkannt wurden, sonst Abbruch
&check_options($testopt);

if ($nontacl==1){
    $ntacl=0;
}

if ($Conf::log_level==1){
    $all_options="";
} elsif ($Conf::log_level==2){
    $all_options="-v";
} elsif ($Conf::log_level==3){
    $all_options="-vv";
}

if ($json==0){
    # nothing to do
} elsif ($json==1){
    $all_options=$all_options." -j";
} elsif ($json==2){
    $all_options=$all_options." -jj";
} elsif ($json==3){
    $all_options=$all_options." -jjj";
} 

my ($ldap,$root_dse) = &AD_bind_admin();
my $root_dns=&AD_dns_get($root_dse);

my $testdata="/usr/share/sophomorix-developer/testdata";

# --help
if ($help==1) {
   # Scriptname ermitteln
   my @list = split(/\//,$0);
   my $scriptname = pop @list;
   # Befehlsbeschreibung
   print('
sophomorix-test-4 tests the addition of ExamAccounts and workstation accounts.

Options
  -h  / --help

  Classes:
  sophomorix-test-4 --add-class  
    add some classes
  sophomorix-test-4 --test-add-class
    test the added classes

  sophomorix-test-4 --mod-quota
    modify quota of users

  sophomorix-test-4 --mod-class
    modify added classes 
  sophomorix-test-4 --test-mod-class
    test modified classes

  sophomorix-test-4 --kill-class
    kill all added classes
  sophomorix-test-4 --test-kill-class
    test killed classes

');
   print "\n";
   exit;
}





############################################################
# Check preliminaries
############################################################

# --full
if ($full==1){
    $add_class=1;
    $mod_class=1;
    $mod_quota=1;
    $kill_class=1;
    $test_add_class=1;
    $test_mod_class=1;
    $test_mod_quota=1;
    $test_kill_class=1;
}

my $file_add_test=$testdata."/sophomorix.add-40";
my $file_add="/var/lib/sophomorix/check-result/sophomorix.add";
my $file_kill="/var/lib/sophomorix/check-result/sophomorix.kill";
my $file_kill_test=$testdata."/sophomorix.kill-40";


############################################################
# Add classes
############################################################
# --add-class  
if ($add_class==1){
    # adding users
    &run_command("cp -v $file_add_test $file_add");
    &run_command("sophomorix-add $all_options");

    # groups in OU=bsz
    &run_command("sophomorix-class $all_options --create --class class6-38 --school bsz");
    &run_command("sophomorix-class $all_options --create --class class7-38 --school bsz");
    # groups in OU=default-school
    &run_command("sophomorix-class $all_options --create --class class12-38");
    &run_command("sophomorix-class $all_options --create --class class13-38");
}

############################################################
# Test added classes
############################################################
# --test-add-class  
if ($test_add_class==1){
    ##### Testing the users
    # maiersa38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=maiersa38,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Sarina Maier",
                   givenName=>"Sarina",
                   name=>"maiersa38",
                   sAMAccountname=>"maiersa38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\maiersa38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/maiersa38",
                   sn=>"Maier",
                   userPrincipalName => "maiersa38@".$root_dns,
                   mail => "maiersa38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Sarina",
                   sophomorixSurnameASCII  => "Maier",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m7ab,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m7ab",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m7ab@"."adminclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # muellegr38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=muellegr38,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gregor Müller",
                   givenName=>"Gregor",
                   name=>"muellegr38",
                   sAMAccountname=>"muellegr38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\muellegr38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/muellegr38",
                   sn=>"Müller",
                   userPrincipalName => "muellegr38@".$root_dns,
                   mail => "muellegr38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster38!",
                   sophomorixFirstnameASCII => "Gregor",
                   sophomorixSurnameASCII  => "Mueller",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid2345",
                   memberOf => "role-student|bsz-m7ab|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m7ab,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m7ab",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m7ab@"."adminclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # jonsonad38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=jonsonad38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Aðalráður Jónsson",
                   givenName=>"Aðalráður",
                   name=>"jonsonad38",
                   sAMAccountname=>"jonsonad38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\jonsonad38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/jonsonad38",
                   sn=>"Jónsson",
                   userPrincipalName => "jonsonad38@".$root_dns,
                   mail => "jonsonad38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster38!",
                   sophomorixFirstnameASCII => "Adalradur",
                   sophomorixSurnameASCII  => "Jonsson",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid3456",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m8cd,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m8cd",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m8cd@"."adminclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m8cd,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m8cd",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m8cd@"."adminclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # oe38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=oe38,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gökhan Ömür",
                   givenName=>"Gökhan",
                   name=>"oe38",
                   sAMAccountname=>"oe38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\teachers\\oe38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/teachers/oe38",
                   sn=>"Ömür",
                   userPrincipalName => "oe38@".$root_dns,
                   mail => "oe38@"."teacher.bsz.de",
                   sophomorixAdminClass => "bsz-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster38!",
                   sophomorixFirstnameASCII => "Goekhan",
                   sophomorixSurnameASCII  => "Oemuer",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid5678",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|bsz-teachers|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-teachers,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "bsz-teachers@"."teacherclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-teachers",
                  });


    # wu38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=wu38,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Désirée Würth",
                   givenName=>"Désirée",
                   name=>"wu38",
                   sAMAccountname=>"wu38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\teachers\\wu38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/teachers/wu38",
                   sn=>"Würth",
                   userPrincipalName => "wu38@".$root_dns,
                   mail => "wu38@"."teacher.bsz.de",
                   sophomorixAdminClass => "bsz-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Desiree",
                   sophomorixSurnameASCII  => "Wuerth",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid6789",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|bsz-teachers|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-teachers,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "bsz-teachers@"."teacherclass.net",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-teachers",
                  });


    # blackmri38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=blackmri38,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Richard Blackmore",
                   givenName=>"Richard",
                   name=>"blackmri38",
                   sAMAccountname=>"blackmri38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\blackmri38",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/blackmri38",
                   sn=>"Blackmore",
                   userPrincipalName => "blackmri38@".$root_dns,
                   mail => "blackmri38@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Richard",
                   sophomorixSurnameASCII  => "Blackmore",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-12abc,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-12abc",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "uni-12abc@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "uni-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-students,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "uni-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-students",
                  });


    # lordjo38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=lordjo38,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Jon Lord",
                   givenName=>"Jon",
                   name=>"lordjo38",
                   sAMAccountname=>"lordjo38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\lordjo38",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/lordjo38",
                   sn=>"Lord",
                   userPrincipalName => "lordjo38@".$root_dns,
                   mail => "lordjo38@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster38!",
                   sophomorixFirstnameASCII => "Jon",
                   sophomorixSurnameASCII  => "Lord",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-12abc,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-12abc",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "uni-12abc@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "uni-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-students,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "uni-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-students",
                  });


    # kep38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=kep38,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Johannes Kepler",
                   givenName=>"Johannes",
                   name=>"kep38",
                   sAMAccountname=>"kep38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\teachers\\kep38",
                   unixHomeDirectory=>"/srv/samba/schools/uni/teachers/kep38",
                   sn=>"Kepler",
                   userPrincipalName => "kep38@".$root_dns,
                   mail => "kep38@".$root_dns,
                   sophomorixAdminClass => "uni-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster38!",
                   sophomorixFirstnameASCII => "Johannes",
                   sophomorixSurnameASCII  => "Kepler",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb5678",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|uni-teachers|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-teachers,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "uni-teachers@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-teachers",
                  });


    # gal38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=gal38,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Galileo Galilei",
                   givenName=>"Galileo",
                   name=>"gal38",
                   sAMAccountname=>"gal38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\teachers\\gal38",
                   unixHomeDirectory=>"/srv/samba/schools/uni/teachers/gal38",
                   sn=>"Galilei",
                   userPrincipalName => "gal38@".$root_dns,
                   mail => "gal38@".$root_dns,
                   sophomorixAdminClass => "uni-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Galileo",
                   sophomorixSurnameASCII  => "Galilei",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb6789",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|uni-teachers|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-teachers,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "uni-teachers@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-teachers",
                  });
    # schneima38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=schneima38,OU=s6ade,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Marina Schneider",
                   givenName=>"Marina",
                   name=>"schneima38",
                   sAMAccountname=>"schneima38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\default-school\\students\\s6ade\\schneima38",
                   unixHomeDirectory=>"/srv/samba/schools/default-school/students/s6ade/schneima38",
                   sn=>"Schneider",
                   userPrincipalName => "schneima38@".$root_dns,
                   mail => "schneima38@".$root_dns,
                   sophomorixAdminClass => "s6ade",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Marina",
                   sophomorixSurnameASCII  => "Schneider",
                   sophomorixRole => "student",
                   sophomorixQuota=>"default-school:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "---",
                   sophomorixSchoolname => "default-school",
                   sophomorixAdminFile => "students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidc1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|s6ade|wifi|internet|webfilter|intranet|printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=s6ade,OU=s6ade,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"s6ade",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "s6ade@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "students",
                  });
    ##### Testing the users ou-students group    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=students,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "s_default-school|all-students",
                  });
    # sch38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=sch38,OU=Teachers,OU=default-school,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Michael Schäfer",
                   givenName=>"Michael",
                   name=>"sch38",
                   sAMAccountname=>"sch38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\default-school\\teachers\\sch38",
                   unixHomeDirectory=>"/srv/samba/schools/default-school/teachers/sch38",
                   sn=>"Schäfer",
                   userPrincipalName => "sch38@".$root_dns,
                   mail => "sch38@".$root_dns,
                   sophomorixAdminClass => "teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Michael",
                   sophomorixSurnameASCII  => "Schaefer",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"default-school:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "---",
                   sophomorixSchoolname => "default-school",
                   sophomorixAdminFile => "teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidc2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|teachers|wifi|internet|webfilter|intranet|printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=teachers,OU=Teachers,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "teachers@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "s_default-school|all-teachers",
                  });

    ##### Testing the all groups
#    &AD_test_object({ldap=>$ldap,
#                   dn=>"CN=all-examaccounts,OU=Groups,OU=GLOBAL,".$root_dse,
#                   sAMAccountname=>"all-examaccounts",
#                   sophomorixCreationDate => "exists",
#                   sophomorixStatus=>"P",
#                   sophomorixType=>"adminclass",
#                   mail => "all-examaccounts@".$root_dns,
#                   sophomorixHidden=>"FALSE",
#                   sophomorixSchoolname => "global",
#                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-students,OU=Groups,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allclass",
                   mail => "all-students@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-teachers,OU=Groups,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allclass",
                   mail => "all-teachers@".$root_dns,
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                  });

    # groups
    # bsz-class6-38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-class6-38,OU=class6-38,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-class6-38",
                   description=>"bsz-class6-38",
                   sophomorixType=>"adminclass",
                   mail => "bsz-class6-38@"."adminclass.net",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    # bsz-class7-38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-class7-38,OU=class7-38,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-class7-38",
                   description=>"bsz-class7-38",
                   sophomorixType=>"adminclass",
                   mail => "bsz-class7-38@"."adminclass.net",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students",
                  });
    # class12-38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"class12-38",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "students",
                  });
    # class13-38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class13-38,OU=class13-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class13-38",
                   description=>"class13-38",
                   sophomorixType=>"adminclass",
                   mail => "class13-38@".$root_dns,
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "students",
                  });

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/bsz/teachers/oe38",
                         "/srv/samba/schools/bsz/teachers/oe38/transfer",
#                         "/srv/samba/schools/bsz/teachers/oe38/_einsammeln",
                         "/srv/samba/schools/bsz/teachers/wu38",
                         "/srv/samba/schools/bsz/teachers/wu38/transfer",
#                         "/srv/samba/schools/bsz/teachers/wu38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab",
                         "/srv/samba/schools/bsz/share/classes/m7ab",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa38",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa38/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/maiersa38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr38",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr38/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/muellegr38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd",
                         "/srv/samba/schools/bsz/share/classes/m8cd",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd/samardze38",
                         "/srv/samba/schools/bsz/students/m8cd/samardze38/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/samardze38/_einsammeln",
                         "/srv/samba/schools/bsz/students/class6-38",
                         "/srv/samba/schools/bsz/share/classes/class6-38",
                         "/srv/samba/schools/bsz/students/class7-38",
                         "/srv/samba/schools/bsz/share/classes/class7-38",
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/share",     
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",     
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/students/12abc",
                         "/srv/samba/schools/uni/share/classes/12abc",
                         "/srv/samba/schools/uni/students/12abc/lordjo38",
                         "/srv/samba/schools/uni/students/12abc/lordjo38/transfer",
#                         "/srv/samba/schools/uni/students/12abc/lordjo38/_einsammeln",
                         "/srv/samba/schools/uni/students/12abc/blackmri38",
                         "/srv/samba/schools/uni/students/12abc/blackmri38/transfer",
#                         "/srv/samba/schools/uni/students/12abc/blackmri38/_einsammeln",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/uni/teachers/kep38",
                         "/srv/samba/schools/uni/teachers/kep38/transfer",
#                         "/srv/samba/schools/uni/teachers/kep38/_einsammeln",
                         "/srv/samba/schools/uni/teachers/gal38",
                         "/srv/samba/schools/uni/teachers/gal38/transfer",
#                         "/srv/samba/schools/uni/teachers/gal38/_einsammeln",
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/students/s6ade",
                         "/srv/samba/schools/default-school/share/classes/s6ade",
                         "/srv/samba/schools/default-school/students/s6ade/schneima38",
                         "/srv/samba/schools/default-school/students/s6ade/schneima38/transfer",
#                         "/srv/samba/schools/default-school/students/s6ade/schneima38/_einsammeln",
                         "/srv/samba/schools/default-school/students/class12-38",
                         "/srv/samba/schools/default-school/share/classes/class12-38",
                         "/srv/samba/schools/default-school/students/class13-38",
                         "/srv/samba/schools/default-school/share/classes/class13-38",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",                                      # ntacl
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school/teachers/sch38",
                         "/srv/samba/schools/default-school/teachers/sch38/transfer",
#                         "/srv/samba/schools/default-school/teachers/sch38/_einsammeln",
                        ); 
    &end_fs_test(\%fs_test_result);

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}




############################################################
# Modify user quota
############################################################
# --mod-quota  
if ($mod_quota==1){

    # --quota (1)
    &run_command("sophomorix-user $all_options -u samardze38 --quota \"bsz:1000:For HomePage\"");
    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:1000:---:update:For HomePage:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    # --quota (2)
    &run_command("sophomorix-user $all_options -u samardze38 --quota uni:1111,default-school:2222");
    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:1000:---:update:For HomePage:|linuxmuster-global:---:---:new:---:|uni:1111:---:update:---:|default-school:2222:---:update:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    # --quota (3)
    &run_command("sophomorix-user $all_options -u samardze38 --quota uni:---");
    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:1000:---:update:For HomePage:|linuxmuster-global:---:---:new:---:|default-school:2222:---:update:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    # --quota (4)
    &run_command("sophomorix-user $all_options -u samardze38 --quota default-school:---");
    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:1000:---:update:For HomePage:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });


    # --quota (5)
    &run_command("sophomorix-user $all_options -u samardze38 --quota bsz:---,linuxmuster-global:---");
    # samardze38
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze38,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze38",
                   sAMAccountname=>"samardze38",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze38",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze38",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze38@".$root_dns,
                   mail => "samardze38@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:update:For HomePage:|linuxmuster-global:---:---:update:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"1",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
}


############################################################
#  Test modified quota
############################################################
# --test-mod-quota  
if ($test_mod_quota==1){

}


############################################################
# Modify added projects
############################################################
# --mod-class  
if ($mod_class==1){

    # --description
    &run_command("sophomorix-class $all_options -c class12-38 --description 'Klasse 12 TG'");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });
    # --quota (1)
    &run_command("sophomorix-class $all_options -c class12-38 --quota \"default-school:1000:Datenbanken postgres,linuxmuster-global:800\"");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:1000:Datenbanken postgres:|linuxmuster-global:800:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --quota (2)
    &run_command("sophomorix-class $all_options -c class12-38 --quota \"default-school:433:Datenbanken postgres,linuxmuster-global:347,uni:1999\"");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:433:Datenbanken postgres:|linuxmuster-global:347:---:|uni:1999:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --quota (3)
    &run_command("sophomorix-class $all_options -c class12-38 --quota default-school:433,uni:---");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:433:---:|linuxmuster-global:347:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --quota (setting back)
    &run_command("sophomorix-class $all_options -c class12-38 --quota default-school:---,linuxmuster-global:---");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    
    # --mailquota 
    &run_command("sophomorix-class $all_options -c class12-38 --mailquota 897");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --mailalias
    &run_command("sophomorix-class $all_options -c class12-38 --mailalias");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --maillist
    &run_command("sophomorix-class $all_options -c class12-38 --maillist");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --status
    &run_command("sophomorix-class $all_options -c class12-38 --status M");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --join
    &run_command("sophomorix-class $all_options -c class12-38 --nojoin");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --hide
    &run_command("sophomorix-class $all_options -c class12-38 --hide");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --maxmembers
    &run_command("sophomorix-class $all_options -c class12-38 --maxmembers 16");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --creationdate
    &run_command("sophomorix-class $all_options -c class12-38 --creationdate 19880529093330.0Z");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });

    # --admins
    &run_command("sophomorix-class $all_options -c class12-38 --admins maiersa38,muellegr38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|muellegr38",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|muellegr38",
                   memberOf => "students",
                  });

    # --members
    &run_command("sophomorix-class $all_options -c class12-38 --members kep38,wu38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|muellegr38",
                   sophomorixMembers => "kep38|wu38",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|muellegr38|kep38|wu38",
                   memberOf => "students",
                  });
    
    # --addadmins
    &run_command("sophomorix-class $all_options -c class12-38 --addadmins lordjo38,blackmri38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|muellegr38|lordjo38|blackmri38",
                   sophomorixMembers => "kep38|wu38",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|muellegr38|kep38|wu38|lordjo38|blackmri38",
                   memberOf => "students",
                  });

    # --addmembers (1 adding to existing value)
    &run_command("sophomorix-class $all_options -c class12-38 --addmembers samardze38,schneima38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|muellegr38|lordjo38|blackmri38",
                   sophomorixMembers => "kep38|wu38|samardze38|schneima38",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|muellegr38|kep38|wu38|lordjo38|blackmri38|samardze38|schneima38",
                   memberOf => "students",
                  });
    # --removeadmins (1 adding to existing value)
    &run_command("sophomorix-class $all_options -c class12-38 --removeadmins muellegr38,lordjo38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|blackmri38",
                   sophomorixMembers => "kep38|wu38|samardze38|schneima38",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|kep38|wu38|blackmri38|samardze38|schneima38",
                   memberOf => "students",
                  });

    # --removemembers (1 adding to existing value)
    &run_command("sophomorix-class $all_options -c class12-38 --removemembers kep38,schneima38");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"Klasse 12 TG",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"897:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"M",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa38|blackmri38",
                   sophomorixMembers => "wu38|samardze38",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa38|wu38|blackmri38|samardze38",
                   memberOf => "students",
                  });

    # setting all back in one command
    &run_command("sophomorix-class $all_options -c class12-38 --join --nohide --quota default-school:---,linuxmuster-global:--- --mailquota 66 --nomailalias --nomaillist --status P --maxmembers 0 --creationdate 20160529093330.0Z --description 'class12-38' --admins \"\" --members \"\" ");
    # checking if all is set back
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=class12-38,OU=class12-38,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"class12-38",
                   description=>"class12-38",
                   sophomorixType=>"adminclass",
                   mail => "class12-38@".$root_dns,
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"66:---:",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "20160529093330.0Z",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "students",
                  });
}

############################################################
#  Test modified  projects
############################################################
# --test-mod-class  
if ($test_mod_class==1){
    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/bsz/teachers/oe38",
                         "/srv/samba/schools/bsz/teachers/oe38/transfer",
#                         "/srv/samba/schools/bsz/teachers/oe38/_einsammeln",
                         "/srv/samba/schools/bsz/teachers/wu38",
                         "/srv/samba/schools/bsz/teachers/wu38/transfer",
#                         "/srv/samba/schools/bsz/teachers/wu38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab",
                         "/srv/samba/schools/bsz/share/classes/m7ab",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa38",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa38/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/maiersa38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr38",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr38/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/muellegr38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd",
                         "/srv/samba/schools/bsz/share/classes/m8cd",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/jonsonad38/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd/samardze38",
                         "/srv/samba/schools/bsz/students/m8cd/samardze38/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/samardze38/_einsammeln",
                         "/srv/samba/schools/bsz/students/class6-38",
                         "/srv/samba/schools/bsz/share/classes/class6-38",
                         "/srv/samba/schools/bsz/students/class7-38",
                         "/srv/samba/schools/bsz/share/classes/class7-38",
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/share",     
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",     
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/students/12abc",
                         "/srv/samba/schools/uni/share/classes/12abc",
                         "/srv/samba/schools/uni/students/12abc/lordjo38",
                         "/srv/samba/schools/uni/students/12abc/lordjo38/transfer",
#                         "/srv/samba/schools/uni/students/12abc/lordjo38/_einsammeln",
                         "/srv/samba/schools/uni/students/12abc/blackmri38",
                         "/srv/samba/schools/uni/students/12abc/blackmri38/transfer",
#                         "/srv/samba/schools/uni/students/12abc/blackmri38/_einsammeln",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/uni/teachers/kep38",
                         "/srv/samba/schools/uni/teachers/kep38/transfer",
#                         "/srv/samba/schools/uni/teachers/kep38/_einsammeln",
                         "/srv/samba/schools/uni/teachers/gal38",
                         "/srv/samba/schools/uni/teachers/gal38/transfer",
#                         "/srv/samba/schools/uni/teachers/gal38/_einsammeln",
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/students/s6ade",
                         "/srv/samba/schools/default-school/share/classes/s6ade",
                         "/srv/samba/schools/default-school/students/s6ade/schneima38",
                         "/srv/samba/schools/default-school/students/s6ade/schneima38/transfer",
#                         "/srv/samba/schools/default-school/students/s6ade/schneima38/_einsammeln",
                         "/srv/samba/schools/default-school/students/class12-38",
                         "/srv/samba/schools/default-school/share/classes/class12-38",
                         "/srv/samba/schools/default-school/students/class13-38",
                         "/srv/samba/schools/default-school/share/classes/class13-38",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",                                      # ntacl
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school/teachers/sch38",
                         "/srv/samba/schools/default-school/teachers/sch38/transfer",
#                         "/srv/samba/schools/default-school/teachers/sch38/_einsammeln",
                        ); 
    &end_fs_test(\%fs_test_result);
    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}




############################################################
# Kill projects
############################################################
# --kill-class  
if ($kill_class==1){
    &run_command("cp -v $file_kill_test $file_kill");
    &run_command("sophomorix-kill -i $all_options");
    &run_command("sophomorix-kill $all_options");
    # groups
#    &run_command("sophomorix-class $all_options --kill --class class6-38");
#    &run_command("sophomorix-class $all_options --kill --class class7-38 ");
    &run_command("sophomorix-class $all_options --kill --class class12-38");
    &run_command("sophomorix-class $all_options --kill --class class13-38");
    &run_command("sophomorix-class $all_options --kill --class s6ade");
    &run_command("sophomorix-class $all_options --kill --class uni-12abc");
    &run_command("sophomorix-class $all_options --kill --class bsz-m8cd");
    &run_command("sophomorix-class $all_options --kill --class bsz-m7ab");
    &run_command("sophomorix-class $all_options --kill --class bsz-class7-38");
    &run_command("sophomorix-class $all_options --kill --class bsz-class6-38");

}

############################################################
#  Test killed  users, groups, projects
############################################################
# --test-kill-class  
if ($test_kill_class==1){
    # users
    &AD_object_nonexist($ldap,$root_dse,"user","maiersa38");
    &AD_object_nonexist($ldap,$root_dse,"user","muellegr38");
    &AD_object_nonexist($ldap,$root_dse,"user","jonsonad38");
    &AD_object_nonexist($ldap,$root_dse,"user","samardze38");
    &AD_object_nonexist($ldap,$root_dse,"user","oe38");
    &AD_object_nonexist($ldap,$root_dse,"user","wu38");
    &AD_object_nonexist($ldap,$root_dse,"user","lordjo38");
    &AD_object_nonexist($ldap,$root_dse,"user","blackmri38");
    &AD_object_nonexist($ldap,$root_dse,"user","kep38");
    &AD_object_nonexist($ldap,$root_dse,"user","gal38");
    &AD_object_nonexist($ldap,$root_dse,"user","schneima38");
    &AD_object_nonexist($ldap,$root_dse,"user","sch38");

    # groups
    &AD_object_nonexist($ldap,$root_dse,"group","class12-38");
    &AD_object_nonexist($ldap,$root_dse,"group","class13-38");
    &AD_object_nonexist($ldap,$root_dse,"group","s6ade");
    &AD_object_nonexist($ldap,$root_dse,"group","uni-12abc");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-m8cd");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-m7ab");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-class7-38");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-class6-38");

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/share",     
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",     
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",                                      # ntacl
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                        ); 
    &end_fs_test(\%fs_test_result);

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}

&AD_unbind_admin($ldap);
