Exemple #1
0
function modforumaccess()
{
    checkPerm('mod');
    require_once _base_ . '/lib/lib.userselector.php';
    $lang =& DoceboLanguage::createInstance('forum', 'lms');
    $out =& $GLOBALS['page'];
    $id_forum = importVar('idForum', true, 0);
    $aclManager = new DoceboACLManager();
    $user_select = new UserSelector();
    $user_select->show_user_selector = TRUE;
    $user_select->show_group_selector = TRUE;
    $user_select->show_orgchart_selector = FALSE;
    $user_select->show_fncrole_selector = FALSE;
    $user_select->learning_filter = 'course';
    $user_select->nFields = 0;
    if (isset($_POST['cancelselector'])) {
        Util::jump_to('index.php?modname=forum&op=forum');
    }
    if (isset($_POST['okselector'])) {
        $user_selected = $user_select->getSelection($_POST);
        $query_reader = "\r\n\t\tSELECT idMember\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\tWHERE idForum = '" . $id_forum . "'";
        $re_reader = sql_query($query_reader);
        $old_users = array();
        while (list($id_user) = sql_fetch_row($re_reader)) {
            $old_users[] = $id_user;
        }
        $add_reader = array_diff($user_selected, $old_users);
        $del_reader = array_diff($old_users, $user_selected);
        if (is_array($add_reader)) {
            while (list(, $idst) = each($add_reader)) {
                $query_insert = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\t\t\t( idForum, idMember ) VALUES\r\n\t\t\t\t( \t'" . $id_forum . "',\r\n\t\t\t\t\t'" . $idst . "' )";
                sql_query($query_insert);
            }
        }
        if (is_array($del_reader)) {
            while (list(, $idst) = each($del_reader)) {
                $query_delete = "\r\n\t\t\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\t\t\tWHERE idForum = '" . $id_forum . "' AND idMember = '" . $idst . "'";
                sql_query($query_delete);
            }
        }
        Util::jump_to('index.php?modname=forum&op=forum&result=ok');
    }
    if (isset($_GET['load'])) {
        $query_reader = "\r\n\t\tSELECT idMember\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_forum_access\r\n\t\tWHERE idForum = '" . $id_forum . "'";
        $re_reader = sql_query($query_reader);
        $users = array();
        while (list($id_user) = sql_fetch_row($re_reader)) {
            $users[$id_user] = $id_user;
        }
        $user_select->resetSelection($users);
    }
    $query_forum_name = "SELECT f.title\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_forum AS f\r\n\tWHERE f.idCourse = " . (int) $_SESSION['idCourse'] . "\r\n\t\tAND f.idForum = " . (int) $id_forum . " ";
    $row = sql_fetch_row(sql_query($query_forum_name));
    $forum_name = $row[0];
    $arr_idstGroup = $aclManager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/');
    $user_select->setUserFilter('group', $arr_idstGroup);
    $user_select->setGroupFilter('path', '/lms/course/' . $_SESSION['idCourse'] . '/group');
    cout(getTitleArea(array('index.php?modname=forum&amp;op=forum' => $lang->def('_FORUM'), $lang->def('_FORUM_ACCESS') . ' "' . $forum_name . '" ' . $lang->def('_TO') . ''), 'forum') . '<div class="std_block">', 'content');
    $user_select->loadSelector('index.php?modname=forum&amp;op=modforumaccess&amp;idForum=' . $id_forum, '', $lang->def('_CHOOSE_FORUM_ACCESS'), true);
    cout('</div>', 'content');
}
Exemple #2
0
function setRoomViewPerm()
{
    checkPerm('view');
    $id_event = importVar('id_event', true, 0);
    require_once $GLOBALS['where_lms'] . '/lib/lib.reservation_perm.php';
    require_once _base_ . '/lib/lib.userselector.php';
    $mdir = new UserSelector();
    $out =& $GLOBALS["page"];
    $out->setWorkingZone("content");
    $lang =& DoceboLanguage::createInstance('reservation', 'lms');
    $roomperm = new ReservationRoomPermissions();
    //$res = getTitleArea($lang->def('_RESERVATION_TITLE'), 'reservation');
    $back_url = 'index.php?modname=reservation&amp;op=reservation&amp;active_tab=subscribed_user';
    if (isset($_POST['okselector'])) {
        $arr_selection = $mdir->getSelection($_POST);
        $arr_unselected = $mdir->getUnselected();
        $roomperm->addReservationPerm("view", $id_event, $arr_selection);
        $roomperm->removeReservationPerm("view", $id_event, $arr_unselected);
        Util::jump_to(str_replace("&amp;", "&", $back_url));
    } else {
        if (isset($_POST['cancelselector'])) {
            Util::jump_to(str_replace("&amp;", "&", $back_url));
        } else {
            if (!isset($_GET['stayon'])) {
                $all_perm = $roomperm->getAllReservationPerm($id_event);
                if (isset($all_perm["view"])) {
                    $mdir->resetSelection($all_perm["view"]);
                }
            }
            $acl_manager =& Docebo::user()->getAclManager();
            $url = 'index.php?modname=reservation&amp;op=set_room_view_perm&amp;id_event=' . $id_event;
            $mdir->setNFields(0);
            $mdir->show_group_selector = TRUE;
            $mdir->show_orgchart_selector = FALSE;
            $arr_idstGroup = $acl_manager->getGroupsIdstFromBasePath('/lms/course/' . (int) $_SESSION['idCourse'] . '/subscribed/');
            $me = array(getLogUserId());
            $mdir->setUserFilter('exclude', $me);
            $mdir->setUserFilter('group', $arr_idstGroup);
            $mdir->setGroupFilter('path', '/lms/course/' . $_SESSION['idCourse'] . '/group');
            $mdir->loadSelector($url, $lang->def('_VIEW_PERMISSION'), "", TRUE);
        }
    }
}
Exemple #3
0
function selSendTo()
{
    checkPerm('view');
    if (isset($_GET["id_send"]) && $_GET["id_send"] > 0) {
        $id_send = $_GET["id_send"];
    } else {
        die("Newsletter setup error.");
    }
    require_once _base_ . '/lib/lib.userselector.php';
    $mdir = new UserSelector();
    if (defined("IN_LMS")) {
        $mdir->learning_filter = 'course';
        $mdir->show_fncrole_selector = FALSE;
    }
    if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) {
        require_once _base_ . '/lib/lib.preference.php';
        $adminManager = new AdminPreference();
        $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST());
        $admin_users = Docebo::aclm()->getAllUsersFromSelection($admin_tree);
        $mdir->setUserFilter('user', $admin_users);
        $mdir->setUserFilter('group', $admin_tree);
    }
    $out =& $GLOBALS['page'];
    $out->setWorkingZone("content");
    $lang =& DoceboLanguage::createInstance('admin_newsletter', 'framework');
    $back_url = "index.php?modname=newsletter&amp;op=selsendto&amp;id_send=" . $id_send;
    if (isset($_POST['okselector'])) {
        $arr_selection = $mdir->getSelection($_POST);
        $send_to_idst = array();
        foreach ($arr_selection as $idstMember) {
            $arr = Docebo::aclm()->getGroupAllUser($idstMember);
            if (is_array($arr) && count($arr) > 0) {
                $send_to_idst = array_merge($arr, $send_to_idst);
                $send_to_idst = array_unique($send_to_idst);
            } else {
                $send_to_idst[] = $idstMember;
            }
            if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) {
                $send_to_idst = array_intersect($send_to_idst, $admin_users);
            }
        }
        foreach ($send_to_idst as $key => $val) {
            $qtxt = "INSERT INTO " . $GLOBALS["prefix_fw"] . "_newsletter_sendto (id_send, idst, stime) ";
            $qtxt .= "VALUES ('" . (int) $id_send . "', '" . (int) $val . "', NOW())";
            $q = sql_query($qtxt);
        }
        $qtxt = "SELECT language FROM " . $GLOBALS["prefix_fw"] . "_newsletter WHERE id='" . $id_send . "'";
        $q = sql_query($qtxt);
        list($lang) = sql_fetch_row($q);
        if ($lang != _ANY_LANG_CODE) {
            $tot = count(Docebo::aclm()->getUsersIdstByLanguage($lang, $send_to_idst));
        } else {
            $tot = count($send_to_idst);
        }
        $qtxt = "UPDATE " . $GLOBALS["prefix_fw"] . "_newsletter SET tot='" . $tot . "' WHERE id='{$id_send}'";
        $q = sql_query($qtxt);
        $back_url = "index.php?modname=newsletter&amp;op=summary&amp;tot=" . $tot . "&amp;id_send=" . $id_send;
        Util::jump_to(str_replace("&amp;", "&", $back_url));
    } else {
        if (isset($_POST['cancelselector'])) {
            $info = get_send_info($id_send);
            $file = $info['file'];
            $path = '/appCore/newsletter/';
            require_once _base_ . '/lib/lib.upload.php';
            if ($file != '') {
                sl_open_fileoperations();
                sl_unlink($path . $file);
                sl_close_fileoperations();
            }
            Util::jump_to('index.php?modname=newsletter&op=newsletter');
        } else {
            if (isset($_GET['load'])) {
                $mdir->resetSelection(array());
            }
            $url = "index.php?modname=newsletter&amp;op=selsendto&amp;id_send=" . $id_send . "&amp;stayon=1";
            $mdir->show_user_selector = TRUE;
            $mdir->show_group_selector = TRUE;
            $mdir->show_orgchart_selector = TRUE;
            $mdir->show_orgchart_simple_selector = false;
            $acl_manager =& Docebo::user()->getAclManager();
            if (defined("IN_LMS")) {
                $id_course = (int) $_SESSION['idCourse'];
                $arr_idstGroup = $acl_manager->getGroupsIdstFromBasePath('/lms/course/' . $id_course . '/subscribed/');
                $mdir->setUserFilter('group', $arr_idstGroup);
                $mdir->setGroupFilter('path', '/lms/course/' . $id_course . '/group');
                $mdir->show_orgchart_selector = FALSE;
            }
            // Exclude anonymous user!
            $mdir->setUserFilter('exclude', array($acl_manager->getAnonymousId()));
            $mdir->loadSelector($url, array(Lang::t('_NEWSLETTER', 'admin_newsletter'), Lang::t('_RECIPIENTS', 'admin_newsletter')), "", TRUE);
        }
    }
}