function required() { require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; require_once _adm_ . '/lib/lib.publicadminmanager.php'; require_once _lms_ . '/lib/lib.course.php'; require_once _lms_ . '/lib/lib.date.php'; require_once _lms_ . '/lib/lib.competences.php'; $db = DbConn::getInstance(); $lang =& DoceboLanguage::CreateInstance('public_coursepanel', 'lms'); $sel_competence = Get::req('sel_competence_req', DOTY_INT, false); $sel_course = Get::req('sel_course_req', DOTY_INT, false); $back_url = "index.php?modname=public_coursepanel&op=coursepanel&sel_competence=" . (int) $sel_competence . "&sel_course=" . (int) $sel_course; $back_ui = getBackUi($back_url, $lang->def('_BACK')); $sel_comp = Get::req('required_selector', DOTY_INT, 0); if ($sel_comp) { $id_pa = getLogUserId(); if (!$id_pa) { //... } $acl_man = new DoceboACLManager(); $admin_manager = new PublicAdminManager(); $array_users = array(); $idst_associated = $admin_manager->getAdminTree($id_pa); $array_users =& $acl_man->getAllUsersFromIdst($idst_associated); $array_users = array_unique($array_users); if (empty($array_users)) { //error: no users to deal with cout($back_ui . $lang->def('_NO_USERS') . $back_ui, 'content'); return; } cout(getTitleArea($lang->def('_REQUIRED_USERS'), 'coursepanel') . '<div class="std_block">', 'content'); $table = new Table(); $head_labels = array($lang->def('_USERNAME'), $lang->def('_NAME')); $head_style = array('', '', 'align_center', 'align_center'); $table->addHead($head_labels, $head_style); //$date = date ("Y-m-d H:i:s", strtotime("+1 months")); //$now = date("Y-m-d H:i:s"); $man_comp = new Competences_Manager(); $comp_data = $man_comp->GetCompetence($sel_comp); $already = array(); $query = "SELECT id_user, score_init, score_got FROM %lms_competence_user WHERE id_competence='" . (int) $sel_comp . "'"; $res = $db->query($query); while (list($id_user, $score_init, $score_got) = $db->fetch_row($res)) { if ($comp_data['type'] == 'score') { //if the competence assignment exists in DB, but the total score is 0, then it's considered as non-assigned if ((int) $score_init + (int) $score_got > 0) { $already[] = $id_user; } } else { $already[] = $id_user; } } $already = array_unique($already); $array_users = array_diff($array_users, $already); //get required competences not got from users $query = ""; if ($comp_data['type'] == 'score') { $query = "SELECT u.idst, u.userid, u.lastname, u.firstname FROM %lms_competence_required as cr " . " JOIN %adm_user as u ON (cr.idst = u.idst)" . " WHERE cr.idst IN (" . implode(",", $array_users) . ") AND cr.id_competence=" . (int) $sel_comp . " ORDER BY u.userid"; } else { $query = "SELECT u.idst, u.userid, u.lastname, u.firstname FROM %lms_competence_required as cr " . " JOIN %adm_user as u ON (cr.idst = u.idst) " . " WHERE cr.idst IN (" . implode(",", $array_users) . ") AND cr.id_competence=" . (int) $sel_comp . " ORDER BY u.userid"; } $res = $db->query($query); if (sql_num_rows($res) > 0) { while (list($idst, $userid, $lastname, $firstname) = $db->fetch_row($res)) { $line = array(); $line[] = $acl_man->relativeId($userid); $line[] = $lastname . " " . $firstname; $table->addBody($line); } //cout(getTitleArea($lang->def('_EXPIRING_USERS'), 'coursepanel').'<div class="std_block">', 'content'); cout($lang->def('_COMPETENCE') . ': <b>' . $comp_data['name'] . '</b>', 'content'); cout($back_ui . $table->getTable() . $back_ui, 'content'); } else { cout($back_ui . $lang->def('_NO_REQUIRED_USER') . $back_ui, 'content'); } } else { //error, no competence selected cout($back_ui . $lang->def('_NO_COMPETENCE_SELECTED') . $back_ui, 'content'); return; } }
function publicAdminManager_edit_menu() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.table.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.publicadminmanager.php'; $lang =& DoceboLanguage::createInstance('public_admin_manager', 'framework'); $aclManager =& Docebo::user()->getAclManager(); $adminidst = importVar('adminidst', true, 0); $out =& $GLOBALS['page']; $admin_manager = new PublicAdminManager(); $role_list = $admin_manager->getPublicUserAdminRole(); $out->setWorkingZone('content'); $out->add(getTitleArea($lang->def('_ADMIN_MANAGMENT'), 'admin_managmer', $lang->def('_ADMIN_MANAGMENT')) . '<div class="std_block">' . Form::openForm('admin_menu_editing', '') . Form::getHidden('adminidst', 'adminidst', $adminidst)); $table = new Table(0, $lang->def('_ADMIN_MANAGMENT'), $lang->def('_ADMIN_MANAGMENT')); $head = array('', $lang->def('_ACTION')); $style = array('image', ''); $table->addHead($head, $style); foreach ($role_list as $role) { if (isset($_POST['save_permission'])) { if (isset($_POST[$role['roleid']]) && $_POST[$role['roleid']] == $role['idst']) { if (!$admin_manager->controlPublicUserAdminRole($adminidst, $role['idst'])) { $admin_manager->addPublicAdminRole($adminidst, $role['idst']); } } else { if ($admin_manager->controlPublicUserAdminRole($adminidst, $role['idst'])) { $admin_manager->delPublicAdminRole($adminidst, $role['idst']); } } } $lang_string = $role['roleid']; $lang_string = str_replace('/lms/course/public/public_user_admin/', '_USER_', $lang_string); $lang_string = str_replace('/lms/course/public/public_course_admin/', '_COURSE_', $lang_string); $lang_string = str_replace('/lms/course/public/public_subscribe_admin/', '_SUBSCRIBE_', $lang_string); $lang_string = str_replace('/lms/course/public/public_report_admin/', '_REPORT_', $lang_string); $lang_string = str_replace('/lms/course/public/public_newsletter_admin/', '_NEWSLETTER_', $lang_string); $lang_string = str_replace('/lms/course/public/public_certificate_release/', '_CERTIFICATES_', $lang_string); $lang_string = str_replace('/lms/course/public/public_coursepanel/', '_COURSEPANEL_COMPETENCES', $lang_string); $lang_string = strtoupper($lang_string); $content = array(); $content[] = '<input class="check" type="checkbox" ' . 'id="' . $role['roleid'] . '" ' . 'name="' . $role['roleid'] . '" value="' . $role['idst'] . '"' . ($admin_manager->controlPublicUserAdminRole($adminidst, $role['idst']) ? ' checked="checked"' : '') . ' />'; $content[] = $lang->def($lang_string); $table->addBody($content); } $out->add($table->getTable() . Form::openButtonSpace() . Form::getButton('save_permission', 'save_permission', $lang->def('_SAVE')) . Form::getButton('undo_pref', 'undo_pref', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>'); }
/** * remove an admin from a node of org tree * @param int $treeidst the idst of the tree to add * @param int $adminidst the security token of the administrator */ function removeAdminTree($treeidst, $adminidst) { $query = "DELETE FROM " . PublicAdminManager::getAdminTreeTable() . " WHERE idst = '" . $treeidst . "'" . " AND idstAdmin = '" . $adminidst . "'"; $this->_executeQuery($query); }