Beispiel #1
0
function Confirm()
{
    $group = new groups($_GET["gpid"]);
    if ($_GET["delete-mailbox"] == 1) {
        if (is_array($gp->members_array)) {
            $members_array = $gp->members_array;
            while (list($num, $ligne) = each($members_array)) {
                if (trim($num) == null) {
                    continue;
                }
                $sock = new sockets();
                $sock->getFrameWork("cmd.php?DelMbx={$num}");
            }
        }
    }
    if ($_GET["DeleteUsers"] == 1) {
        if (is_array($gp->members_array)) {
            $members_array = $gp->members_array;
            while (list($num, $ligne) = each($members_array)) {
                if (trim($num) == null) {
                    continue;
                }
                $user = new user($num);
                $user->DeleteUser();
            }
        }
    } else {
        $ldap = new clladp();
        $default_dn_nogroup = "cn=nogroup,ou=groups,ou={$ou},dc=organizations,{$ldap->suffix}";
        if (!$ldap->ExistsDN($default_dn_nogroup)) {
            $ldap->AddGroup("nogroup", $group->ou);
        }
        $nogroup_id = $ldap->GroupIDFromName($group->ou, "nogroup");
        if (is_array($gp->members_array)) {
            $members_array = $gp->members_array;
            while (list($num, $val) = each($members_array)) {
                $ldap->AddUserToGroup($nogroup_id, $num);
                $group->DeleteUserFromThisGroup($num);
            }
        }
    }
    $group->Delete();
}
function DeleteGroup()
{
    if (isset($_GET["DeleteGroup"])) {
        $gpid = $_GET["DeleteGroup"];
    }
    if (isset($_GET["delgroup"])) {
        $gpid = $_GET["delgroup"];
    }
    $ou = $_GET["ou"];
    $ldap = new clladp();
    $tpl = new templates();
    $classGroup = new groups($gpid);
    $hashgroup = $ldap->GroupDatas($gpid);
    $default_dn_nogroup = "cn=nogroup,ou=groups,ou={$ou},dc=organizations,{$ldap->suffix}";
    if (!$ldap->ExistsDN($default_dn_nogroup)) {
        $ldap->AddGroup("nogroup", $ou);
    }
    $nogroup_id = $ldap->GroupIDFromName($ou, "nogroup");
    if (is_array($hashgroup["members"])) {
        while (list($num, $val) = each($hashgroup["members"])) {
            $ldap->AddUserToGroup($nogroup_id, $num);
        }
    }
    $users = new usersMenus();
    if ($users->KAV_MILTER_INSTALLED) {
        $sock = new sockets();
        $sock->getfile("KavMilterDeleteRule:{$classGroup->groupName}.{$classGroup->ou}");
    }
    $kas_dn = "cn={$gpid},cn=kaspersky Antispam 3 rules,cn=artica,{$ldap->suffix}";
    if ($ldap->ExistsDN($kas_dn)) {
        $ldap->ldap_delete($kas_dn, false);
    }
    $ldap->ldap_delete($hashgroup["dn"], false);
    if ($ldap->ldap_last_error != null) {
        echo $ldap->ldap_last_error;
    } else {
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
function AddMemberGroup()
{
    $usr = new usersMenus();
    $tpl = new templates();
    writelogs("Adding user {$_GET["user"]} to group {$_GET["AddMemberGroup"]}", __FUNCTION__, __FILE__, __LINE__);
    if ($usr->AllowAddGroup == false) {
        writelogs("The administrator have no provileges to execute this operation....", __FUNCTION__, __FILE__, __LINE__);
        echo $tpl->_ENGINE_parse_body('{no_privileges}');
        echo Page($_GET["user"]);
        exit;
    }
    if (trim($_GET["AddMemberGroup"] == null)) {
        return null;
    }
    $ldap = new clladp();
    $ldap->AddUserToGroup($_GET["AddMemberGroup"], $_GET["user"]);
    if ($ldap->ldap_last_error != null) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo html_entity_decode($tpl->_ENGINE_parse_body("{success}: {$_GET["user"]} to group {$_GET["AddMemberGroup"]}"));
        writelogs("Adding user {$_GET["user"]} to group {$_GET["AddMemberGroup"]} => SUCCESS", __FUNCTION__, __FILE__, __LINE__);
    }
    die;
}
function AddnewMember()
{
    $user = $_GET["AddnewMember"];
    $user = replace_accents($user);
    $ldap = new clladp();
    $ou = $_GET["ou"];
    $uid = str_replace(' ', '.', $user);
    if (stripos($user, '@') > 0) {
        $mail = $user;
        $tbl = explode('@', $user);
        $domainName = $tbl[1];
        $user = $tbl[0];
        $uid = str_replace(' ', '.', $user);
        if (preg_match('#([a-z0-9]+)([\\.\\-_])([a-z0-9_\\-\\.]+)#', $user, $reg)) {
            $firstname = $reg[1];
            $lastname = $reg[3];
        } elseif (preg_match('#(.+)\\s+(.+)#', $user, $reg)) {
            $firstname = $reg[1];
            $lastname = $reg[2];
        } elseif (preg_match('#(.+)#', $user, $reg)) {
            $lastname = $reg[1];
            $firstname = $lastname;
        }
    } else {
        if (preg_match('#([a-z0-9_\\-]+)\\s+([a-z0-9_\\-]+)#', $user, $reg)) {
            $lastname = $reg[2];
            $firstname = $reg[1];
            $domainName = 'none';
        } else {
            $lastname = $user;
            $firstname = $user;
            $domainName = 'none';
        }
    }
    $dn = "cn={$user},ou=users,ou={$ou},dc=organizations,{$ldap->suffix}";
    if ($lastname == null) {
        $lastname = "unknown";
    }
    if ($firstname == null) {
        $firstname = "unknown";
    }
    if ($domainName == null) {
        $domainName = "unknown";
    }
    if ($mail == null) {
        $mail = "{$lastname}.{$firstname}@{$domainName}";
    }
    $update_array["cn"][] = $user;
    $update_array["uid"][] = $uid;
    $update_array["sn"][] = $lastname;
    $update_array["domainName"][] = $domainName;
    $update_array["homeDirectory"][] = "/home/{$firstname}.{$lastname}";
    $update_array["accountGroup"][] = "0";
    $update_array["accountActive"][] = 'TRUE';
    $update_array["mailDir"] = 'cyrus';
    $update_array["objectClass"][] = "userAccount";
    $update_array["objectClass"][] = "top";
    $update_array["objectClass"][] = "organizationalPerson";
    $ldap->ldap_add($dn, $update_array);
    if ($ldap->ldap_last_error != null) {
        if ($ldap->ldap_last_error != null) {
            echo "Error: Add new member attributes line " . __LINE__ . "\n******\n{$ldap->ldap_last_error}\n******\n";
        }
        exit;
    }
    $ldap->ldap_last_error = null;
    $update_array = null;
    $update_array["givenName"][] = $firstname;
    $update_array["mail"][] = $mail;
    $update_array["DisplayName"][] = "{$firstname} " . $lastname;
    $update_array["MailBoxActive"][] = "FALSE";
    $update_array["objectclass"][] = "ArticaSettings";
    $ldap->Ldap_add_mod($dn, $update_array);
    if ($ldap->ldap_last_error != null) {
        echo "Error line" . __LINE__ . "\nModify attributes\n{$ldap->ldap_last_error}\n";
    }
    $ldap->ldap_last_error = null;
    if (isset($_GET["group_member_id"])) {
        $ldap->AddUserToGroup($_GET["group_member_id"], $user);
    }
    if ($ldap->ldap_last_error == null) {
        echo $uid;
    }
}
function AddMemberGroup()
{
    $usr = new usersMenus();
    $tpl = new templates();
    writelogs("Adding user {$_POST["user"]} to group {$_POST["AddMemberGroup"]}", __FUNCTION__, __FILE__, __LINE__);
    if ($usr->AllowAddGroup == false) {
        writelogs("The administrator have no provileges to execute this operation....", __FUNCTION__, __FILE__, __LINE__);
        echo $tpl->javascript_parse_text('{no_privileges}');
        return;
    }
    if (trim($_POST["AddMemberGroup"] == null)) {
        echo "Error:AddMemberGroup -> NO value...";
        return;
    }
    $ldap = new clladp();
    if (!$ldap->AddUserToGroup($_POST["AddMemberGroup"], $_POST["user"])) {
        echo "Error:{$_POST["AddMemberGroup"]}->{$_POST["user"]}\n{$ldap->ldap_last_error}";
        return;
    }
    $tpl = new templates();
    echo $tpl->javascript_parse_text("{success}: {$_POST["user"]} to group {$_POST["AddMemberGroup"]}");
    writelogs("Adding user {$_POST["user"]} to group {$_POST["AddMemberGroup"]} => SUCCESS", __FUNCTION__, __FILE__, __LINE__);
}
 function process_array()
 {
     $ldap = new clladp();
     $this->ClassLdap = $ldap;
     while (list($num, $ligne) = each($this->array_content)) {
         $this->logs("Process {$num}\n*******************************\n{$ligne}");
         if ($this->Parse_array($ligne)) {
             if ($this->ProcessGroup() == false) {
                 $this->logs("Process group failed");
             }
             if ($this->Adduser() == true) {
                 $this->logs("success");
                 if ($ldap->AddUserToGroup($this->group_id, $this->userid) == false) {
                     $this->logs("Failed to add group {$this->group_id} for {$this->userid}\n{$ldap->ldap_last_error}\n");
                 }
             } else {
                 $this->countFailed = $this->countFailed + 1;
             }
         } else {
             $this->countFailed = $this->countFailed + 1;
         }
     }
 }