file_put_contents(RSYNC_DIR . 'nyk_ekstern', $knetshadowfile_content);
// skriv ny smbpasswd fil
gem_kolon_separeret_fil(SMBPASSWD, $smbpasswd);
// indlæs group fil
$unix_grupper = trimlower_array_keys(hent_kolon_separeret_fil(UNIXFILE_GROUP));
// find næste group id
$next_gid = 0;
foreach ($unix_grupper as $gruppe) {
    if ($gruppe[2] > $next_gid && $gruppe[2] < 40000) {
        $next_gid = $gruppe[2] + 1;
    }
}
// hent grupper fra database, og opdater unix grupper
$db_grupper = backend_hent_grupper();
foreach ($db_grupper as $gruppe) {
    $db_gruppemedlemmer = backend_hent_gruppe_medlemmer($gruppe['gruppenavn']);
    $lookup_gruppenavn = strtolower(trim($gruppe['gruppenavn']));
    $medlemmer_brugernavne = array();
    foreach ($db_gruppemedlemmer as $m) {
        $medlemmer_brugernavne[] = $m['brugernavn'];
    }
    if (isset($unix_grupper[$lookup_gruppenavn])) {
        $unix_gruppemedlemmer = explode(',', $unix_grupper[$lookup_gruppenavn][3]);
        // tilføj de nykbrugere der er blevet medlem
        foreach ($medlemmer_brugernavne as $dbmedlem) {
            if (!in_array($dbmedlem, $unix_gruppemedlemmer)) {
                $unix_gruppemedlemmer[] = $dbmedlem;
            }
        }
        // fjern de nykbrugere der ikke længere er medlem
        $unix_gruppemedlemmer_fjern = array();
Example #2
0
mkdir_ne(MINIMALIST_DIR);
$aliases_linjer = explode("\n", trim(file_get_contents(UNIXFILE_ALIASES)));
$mail_liste_navne = array();
$grupper = backend_hent_grupper();
foreach ($grupper as $gruppe) {
    $liste_navn = preg_replace('/[^A-Za-z._-]/', '', $gruppe['mail_liste_navn']);
    if (!$liste_navn) {
        continue;
    }
    $mail_liste_navne[] = $liste_navn;
    // lav mappe til mailliste navne, og lav fil med mail addresser
    mkdir_ne(MINIMALIST_DIR . '/' . $liste_navn);
    $liste = '';
    $medlemmer = array_merge(backend_hent_gruppe_medlemmer($gruppe['gruppenavn']), backend_hent_gruppe_medlemmer_eksterne($gruppe['gruppenavn']));
    if ($gruppe['gruppenavn'] == 'nyk_alle_beboere') {
        file_put_contents('/tmp/mailtest', print_r(backend_hent_gruppe_medlemmer('nyk_alle_beboere'), true));
    }
    foreach ($medlemmer as $medlem) {
        if (!$medlem['email']) {
            continue;
        }
        $liste .= $medlem['email'] . lav_options($medlem) . "\n";
    }
    $liste_sti = MINIMALIST_DIR . '/' . $liste_navn . '/list';
    if (@file_get_contents($liste_sti) !== $liste) {
        file_put_contents($liste_sti, $liste, LOCK_EX);
    }
    // skriv footer-fil hvis der er angivet footer
    $footer_sti = MINIMALIST_DIR . '/' . $liste_navn . '/footer';
    if ($gruppe['mail_footer']) {
        $footer = wordwrap(iconv('UTF-8', 'ISO-8859-1', $gruppe['mail_footer']), 78);
Example #3
0
                try {
                    backend_set_gruppemedlemskab($_POST['addmember'], $gruppenavn);
                    $messages[] = 'Membership for user <i>' . $_POST['addmember'] . '</i> added.';
                } catch (forkert_input_exception $e) {
                    $errors[] = 'Membership for user <i>' . $_POST['addmember'] . '</i> could not be added.';
                }
            }
            if (!empty($_POST['removemember'])) {
                $opdateret = true;
                backend_slet_gruppemedlemskab($_POST['removemember'], $gruppenavn);
                $messages[] = 'Membership for user <i>' . $_POST['removemember'] . '</i> removed.';
            }
            // hvis noget som helst er opdateret
            if ($opdateret) {
                backend_opdater_datafiler();
                // hent de opdaterede gruppemedlmemmer
                $gruppemedlemmer = backend_hent_gruppe_medlemmer($gruppenavn);
            }
        }
        $smarty->assign('gruppe', $gruppe);
        $smarty->assign('gruppemedlemmer', $gruppemedlemmer);
        $smarty->assign('gruppemedlemmer_eksterne', $gruppemedlemmer_eksterne);
        $smarty->assign('messages', $messages);
        $smarty->assign('errors', $errors);
        $smarty->assign('include_autocomplete', true);
        $smarty->assign('contenttemplate', 'admin-groups-members.tpl');
    }
} catch (Exception $e) {
    fatal_error($e);
}
$smarty->display(WEBFRONTEND_MAINTEMPLATE);
Example #4
0
function hent_gruppe_medlemmer_test()
{
    echo "Tester hent_gruppe_medlemmer: ";
    setup_testdata1();
    $r = backend_hent_gruppe_medlemmer('testgruppe');
    if (count($r) != 0) {
        fejl(__LINE__);
    }
    backend_set_gruppemedlemskab('nyktte', 'testgruppe');
    $r = backend_hent_gruppe_medlemmer('testgruppe');
    if (count($r) != 1) {
        fejl(__LINE__);
    }
    if ($r[0]['brugernavn'] != 'nyktte') {
        fejl(__LINE__);
    }
    backend_slet_gruppemedlemskab('nyktte', 'testgruppe');
    teardown_testdata1();
    echo "ok\n";
}