<?php try { require_once 'phpincludes/init.inc.php'; auth_require_login(); // hent medlemskaber $grupper = backend_hent_brugers_medlemskaber($_SESSION['brugernavn']); // hvis data er sendt if ($_POST['action'] == 'save') { // opdater mail_modtag for hver af grupperne $modtag_mail_grupper = $_POST['modtag_mail']; foreach ($grupper as $gruppe) { $ny_mail_modtag = $modtag_mail_grupper[$gruppe['gruppenavn']] == 1 || $gruppe['mail_obligatorisk'] == 1 ? true : false; if ($gruppe['mail_modtag'] != $ny_mail_modtag) { $opdateret = true; backend_set_gruppemedlemskab($_SESSION['brugernavn'], $gruppe['gruppenavn'], array('mail_modtag' => $ny_mail_modtag)); } } // hvis der er opdateret i et gruppemedlemskab if ($opdateret) { backend_opdater_datafiler(); $smarty->assign('messages', array('Your groups are updated.')); } // hent de opdaterede medlemskaber $grupper = backend_hent_brugers_medlemskaber($_SESSION['brugernavn']); } $smarty->assign('grupper', $grupper); $smarty->assign('contenttemplate', 'user-groupmemberships.tpl'); } catch (Exception $e) { fatal_error($e); }
/** * Laver brugernavn og password og opretter i databasen. Sætter brugeren på * default grupperne. * * Kan kaste en DatabaseException. * * @param string $vaerelse * @param string $navn * @param string $indflytning Dato i format "YYYY-MM-DD" * @param string $udflytning Dato i format "YYYY-MM-DD". Her oftest null. * @param string $kab_lejemaal_id Unikt ID for lejemål fra KABAS * @param string $lejer_type 'lejer1', 'lejer2' (lejl.) eller 'fremlejer' * @return Brugernavnet på den oprettede bruger */ function backend_ny_bruger($vaerelse, $navn, $indflytning, $udflytning, $kab_lejemaal_id, $lejer_type) { $brugernavn = backend_generer_brugernavn($navn); $q = 'INSERT INTO brugere SET brugernavn=?, vaerelse=?, ' . 'navn=?, indflytning=?, udflytning=?, kab_lejemaal_id=?, lejer_type=?'; $p = array($brugernavn, $vaerelse, $navn, $indflytning, $udflytning, $kab_lejemaal_id, $lejer_type); backend_dbquery($q, $p); $password = backend_generer_passwd(); backend_set_brugerdata($brugernavn, array('password' => $password)); // tilmeld til default grupper backend_set_gruppemedlemskab($brugernavn, 'nyk_alle_beboere'); backend_set_gruppemedlemskab($brugernavn, 'nyk_meddelelse'); backend_set_gruppemedlemskab($brugernavn, 'nyk_kc_reklame'); // tilmeld til lejlighedsgruppe hvis lejlighed, ellers gang-liste $r = backend_dbquery('SELECT vaerelse_type ' . 'FROM vaerelser WHERE vaerelse = ?', array($vaerelse)); if ($r[0]['vaerelse_type'] == 'lejlighed') { backend_set_gruppemedlemskab($brugernavn, 'nyk_lejligheder'); } else { if ($r[0]['vaerelse_type'] == 'vaerelse') { $bogstav = substr($vaerelse, 0, 1); $lige = substr($vaerelse, 1, 2) % 2 == 0; if (stripos('ab', $bogstav) !== false && !$lige) { $g = 'nyk_ab_ulige'; } if (stripos('ab', $bogstav) !== false && $lige) { $g = 'nyk_ab_lige'; } if (stripos('cd', $bogstav) !== false && !$lige) { $g = 'nyk_cd_ulige'; } if (stripos('cd', $bogstav) !== false && $lige) { $g = 'nyk_cd_lige'; } if (stripos('ef', $bogstav) !== false && !$lige) { $g = 'nyk_ef_ulige'; } if (stripos('ef', $bogstav) !== false && $lige) { $g = 'nyk_ef_lige'; } if (stripos('gh', $bogstav) !== false && !$lige) { $g = 'nyk_gh_ulige'; } if (stripos('gh', $bogstav) !== false && $lige) { $g = 'nyk_gh_lige'; } if (stripos('jk', $bogstav) !== false && !$lige) { $g = 'nyk_jk_ulige'; } if (stripos('jk', $bogstav) !== false && $lige) { $g = 'nyk_jk_lige'; } if (stripos('lm', $bogstav) !== false && !$lige) { $g = 'nyk_lm_ulige'; } if (stripos('lm', $bogstav) !== false && $lige) { $g = 'nyk_lm_lige'; } if (stripos('no', $bogstav) !== false && !$lige) { $g = 'nyk_no_ulige'; } if (stripos('no', $bogstav) !== false && $lige) { $g = 'nyk_no_lige'; } if (stripos('st', $bogstav) !== false && !$lige) { $g = 'nyk_st_ulige'; } if (stripos('st', $bogstav) !== false && $lige) { $g = 'nyk_st_lige'; } if (stripos('pr', $bogstav) !== false && !$lige) { $g = 'nyk_pr_ulige'; } if (stripos('pr', $bogstav) !== false && $lige) { $g = 'nyk_pr_lige'; } if ($g) { backend_set_gruppemedlemskab($brugernavn, $g); } } } return $brugernavn; }
$delta['mail_forfatter'] = $ny_mail_forfatter; } // hvis der er rettelser, så sæt gruppemedlemskabet if (sizeof($delta) > 0) { $opdateret = true; backend_set_gruppemedlemskab($medlem['brugernavn'], $gruppenavn, $delta); } } // hvis der blev opdateret i medlemskaber if ($opdateret) { $messages[] = 'Group members updated.'; } if (!empty($_POST['addmember'])) { $opdateret = true; 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);
function hent_brugers_medlemskaber_test() { echo "Tester hent_brugers_medlemskaber: "; setup_testdata1(); $r = backend_hent_brugers_medlemskaber('nyktte'); if (count($r) != 0) { fejl(__LINE__); } backend_set_gruppemedlemskab('nyktte', 'testgruppe'); $r = backend_hent_brugers_medlemskaber('nyktte'); if (count($r) != 1) { fejl(__LINE__); } if ($r[0]['gruppenavn'] != 'testgruppe') { fejl(__LINE__); } backend_slet_gruppemedlemskab('nyktte', 'testgruppe'); teardown_testdata1(); echo "ok\n"; }