function auth_is_member_of($groupname) { try { foreach (backend_hent_brugers_medlemskaber($_SESSION['brugernavn']) as $group) { if ($group['gruppenavn'] == $groupname) { return true; } } } catch (DatabaseException $e) { } catch (UkendtBrugerException $e) { auth_logout(); header('location: login.php'); die('User not found.'); } return false; }
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); } $smarty->display(WEBFRONTEND_MAINTEMPLATE);
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"; }