function getPermissionUi($all_admin_permission, $base_path, $form_name) { require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.adminmanager.php'; $lang =& DoceboLanguage::createInstance('menu', 'lms'); $out =& $GLOBALS['page']; $aclManager =& Docebo::user()->getAclManager(); $admin_manager = new AdminManager(); // Retriving main menu $main_area = $this->getLevelOne(); $html = ''; while (list($id_page, $area_info) = each($main_area)) { // retriving modules of the main menu $query_menu = "\r\n\t\t\tSELECT idUnder, module_name, default_name, default_op, associated_token, class_file, class_name\r\n\t\t\tFROM " . $this->table_level_two . "\r\n\t\t\tWHERE idMenu = '" . $id_page . "'\r\n\t\t\tORDER BY sequence"; $re_menu = sql_query($query_menu); $html .= '<div class="admin_menu_perm_title">' . $area_info['name'] . '</div>' . '<div class="admin_menu_perm_modules">'; while (list($id, $modname, $name, $op, $token, $class_file, $class_name) = sql_fetch_row($re_menu)) { if ($class_file != '' || $class_name != '') { require_once $GLOBALS['where_lms'] . '/admin/class.module/' . $class_file; $module = eval("return new {$class_name}();"); // Retriving all token for this module $all_module_token =& $module->getAllToken($op); // Retriving appropiated idst $all_module_idst =& $admin_manager->fromRolePathToIdst($base_path . '/' . $modname, $all_module_token); // Match with the real user permission $module_perm =& $admin_manager->modulePermissionAsToken($all_admin_permission, $all_module_idst); $html .= '<div class="edit_menu_module">' . $module->getPermissionUi($name != '' ? $lang->def($name) : $lang->def('_' . strtoupper($modname)), $modname, $op, $form_name, $module_perm) . '</div>'; } //end if } //end inner while $html .= '</div>'; } //end while return $html; }
function getPermissionUi($all_admin_permission, $form_name) { require_once _base_ . '/lib/lib.table.php'; require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.adminmanager.php'; $out =& $GLOBALS['page']; $aclManager =& Docebo::user()->getAclManager(); $admin_manager = new AdminManager(); // Retriving main menu $main_area = $this->getLevelOne(); $html = ''; while (list($id_page, $area_info) = each($main_area)) { // retriving modules of the main menu $query_menu = "\r\n\t\t\tSELECT idUnder, idMenu, module_name, default_name, default_op, associated_token, class_file, class_name, of_platform \r\n\t\t\tFROM " . $this->table_level_two . " \r\n\t\t\tWHERE idMenu = '" . $id_page . "' \r\n\t\t\tORDER BY sequence"; $re_menu = sql_query($query_menu); if (mysql_num_rows($re_menu)) { $all_tokens = array(); $name_menu = array(); $html .= '<div class="admin_menu_perm_modules">'; while (list($id, $son_of, $modname, $name, $op, $token, $class_file, $class_name, $of_platform) = sql_fetch_row($re_menu)) { if ($class_file != '' && $class_name != '') { if ($of_platform == NULL) { $of_platform = $this->platform; } $real_class_file = $GLOBALS['where_' . $of_platform] . ($of_platform != 'framework' ? '/admin' : '') . '/class.module/' . $class_file; if (file_exists($real_class_file)) { require_once $real_class_file; if (class_exists($class_name)) { $module = new $class_name(); // Retriving all token for this module $all_module_token =& $module->getAllToken($op); $all_tokens = array_merge($all_tokens, $all_module_token); if (!isset($name_menu[$son_of])) { $name_menu[$son_of] = $name != '' ? $this->lang->def($name) : $this->lang->def('_' . strtoupper($modname)); } } } } //end if } //end inner while $tb = new Table(0, '', $this->lang->def('_EDIT_SETTINGS')); $type = array('align_left'); $c_head = array(); $c_head[] = $area_info['name'] != '' ? $area_info['name'] . ' : ' . $this->lang->def('_MODULE_NAME') : (isset($name_menu[$id_page]) ? $name_menu[$id_page] : ''); foreach ($all_tokens as $k => $token) { $type[] = 'image'; $c_head[] = '<img src="' . getPathImage($this->platform) . $token['image'] . '" alt="' . $this->lang_perm->def($token['name']) . '"' . ' title="' . $this->lang_perm->def($token['name']) . '" />'; } $tb->setColsStyle($type); $tb->addHead($c_head); $re_menu = sql_query($query_menu); while (list($id, $son_of, $modname, $name, $op, $token, $class_file, $class_name, $of_platform) = sql_fetch_row($re_menu)) { if ($class_file != '' && $class_name != '') { if ($of_platform == NULL) { $of_platform = $this->platform; } $real_class_file = $GLOBALS['where_' . $of_platform] . ($of_platform != 'framework' ? '/admin' : '') . '/class.module/' . $class_file; if (file_exists($real_class_file)) { require_once $real_class_file; if (class_exists($class_name)) { $module = new $class_name(); // Retriving all token for this module $all_module_token =& $module->getAllToken($op); // Retriving appropiated idst $all_module_idst =& $admin_manager->fromRolePathToIdst('/' . $of_platform . '/admin/' . $modname, $all_module_token); // Match with the real user permission $module_perm =& $admin_manager->modulePermissionAsToken($all_admin_permission, $all_module_idst); $line = $module->getPermissionUi($name != '' ? $this->lang->def($name) : $this->lang->def('_' . strtoupper($modname)), $modname, $op, $form_name, $module_perm, $all_tokens); //echo '<pre>'.print_r($line, true); $tb->addBody($line); } } } //end if } //end inner while $html .= $tb->getTable() . '</div>'; } // if no module } //end while return $html; }