Пример #1
0
function ScanActiveDirectoryGroups($RuleID, $RuleName, $DNGroup, $basePath, $QuotaSizeBytes, $FileAcls)
{
    include_once dirname(__FILE__) . '/ressources/class.ActiveDirectory.inc';
    $f = new ActiveDirectory();
    if ($GLOBALS["VERBOSE"]) {
        echo "Path: {$basePath}\n";
    }
    events("[INFO]: Scanning Active Directory group {$DNGroup} ({$RuleName})", __LINE__);
    $USERS = $f->dump_users_from_group($DNGroup);
    $acls_content = array();
    $NOTIF_TEXT = array();
    $basePath = $basePath . "/UID";
    $GLOBALS["NOTIF_TEXT"] = array();
    $FileAclsMD5_start = md5_file($FileAcls);
    while (list($MEMBER, $ligne) = each($USERS)) {
        if (Scan_member($RuleID, $RuleName, $MEMBER, $basePath, $QuotaSizeBytes, $FileAcls)) {
            $acls_content[] = $MEMBER;
        }
    }
    @file_put_contents($FileAcls, @implode("\n", $acls_content));
    $FileAclsMD5_end = md5_file($FileAcls);
    if ($FileAclsMD5_end != $FileAclsMD5_start) {
        squid_admin_mysql(1, "{$RuleName}: Quota changed", @implode("\n", $GLOBALS["NOTIF_TEXT"]), __FILE__, __LINE__);
        $GLOBALS["MUST_RELOAD_SQUID"] = true;
    }
}