Fixes BT#834 - Hides the user list from students. Course setting added: allow_user_view_user_list

skala
Julio Montoya 15 years ago
parent 58576dc676
commit eb7358ddeb
  1. 12
      main/course_info/infocours.php
  2. 3
      main/inc/lib/add_course.lib.inc.php
  3. 14
      main/inc/lib/main_api.lib.php
  4. 3
      main/install/migrate-db-1.8.6.2-1.8.7-pre.sql
  5. 9
      main/user/user.php
  6. 26
      main/user/userInfo.php

@ -237,7 +237,10 @@ $form -> addElement('html',$linebreak);
$form->addElement('radio', 'allow_user_image_forum', get_lang('AllowUserImageForum'), get_lang('AllowUserImageForumActivate'), 1);
$form->addElement('radio', 'allow_user_image_forum', null, get_lang('AllowUserImageForumDeactivate'), 0);
$form -> addElement('html',$linebreak);
$form->addElement('radio', 'allow_user_view_user_list', get_lang('AllowUserViewUserList'), get_lang('AllowUserViewUserListActivate'), 1);
$form->addElement('radio', 'allow_user_view_user_list', null, get_lang('AllowUserViewUserListDeactivate'), 0);
$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
@ -314,7 +317,8 @@ $values['allow_open_chat_window'] = api_get_course_setting('allow_open_chat_wind
$values['course_theme'] = api_get_course_setting('course_theme');
// get allow_learning_path_theme from table
$values['allow_learning_path_theme'] = api_get_course_setting('allow_learning_path_theme');
//get allow show user list
$values['allow_user_view_user_list'] = api_get_course_setting('allow_user_view_user_list');
$form->setDefaults($values);
// Validate form
@ -380,7 +384,11 @@ if ($form->validate() && is_settings_editable()) {
$sql = "UPDATE $table_course_setting SET value = ".(int)$update_values['allow_learning_path_theme']." WHERE variable = 'allow_learning_path_theme' ";
Database::query($sql);
}
if($update_values['allow_user_view_user_list'] != $values['allow_user_view_user_list']){
$sql = "UPDATE $table_course_setting SET value = ".(int)$update_values['allow_user_view_user_list']." WHERE variable = 'allow_user_view_user_list' ";
Database::query($sql);
}
$cidReset = true;
$cidReq = $course_code;

@ -10,7 +10,7 @@
* different tool visibility settings: ALL_TOOLS_INVISIBLE, ALL_TOOLS_VISIBLE, CORE_TOOLS_VISIBLE...
*/
include_once (api_get_path(LIBRARY_PATH).'database.lib.php');
require_once (api_get_path(LIBRARY_PATH).'database.lib.php');
require_once (api_get_path(LIBRARY_PATH).'mail.lib.inc.php');
/*
@ -2159,6 +2159,7 @@ function fill_Db_course($courseDbName, $courseRepository, $language,$default_doc
Database::query("INSERT INTO `".$TABLESETTING . "`(variable,value,category) VALUES ('allow_learning_path_theme','1','theme')");
Database::query("INSERT INTO `".$TABLESETTING . "`(variable,value,category) VALUES ('allow_open_chat_window',0,'chat')");
Database::query("INSERT INTO `".$TABLESETTING . "`(variable,value,category) VALUES ('email_alert_to_teacher_on_new_user_in_course',0,'registration')");
Database::query("INSERT INTO `".$TABLESETTING . "`(variable,value,category) VALUES ('allow_user_view_user_list',1,'user')");
/*
-----------------------------------------------------------
Course homepage tools for platform admin only

@ -4253,6 +4253,20 @@ function api_get_tool_information($tool_id) {
return Database::fetch_array($rs);
}
/**
* Get all information of the tool into course
* @param int The tool id
* @return array
*/
function api_get_tool_information_by_name($name) {
$t_tool = Database::get_course_table(TABLE_TOOL_LIST);
$sql = 'SELECT * FROM '.$t_tool.' WHERE name="'.Database::escape_string($name).'"';
$rs = Database::query($sql);
return Database::fetch_array($rs,'ASSOC');
}
/**
* Gets the software name
* @return string

@ -92,4 +92,5 @@ CREATE TABLE attendance (id int NOT NULL auto_increment PRIMARY KEY, name text N
ALTER TABLE attendance ADD INDEX(session_id);
ALTER TABLE attendance ADD INDEX(active);
ALTER TABLE lp_view ADD session_id INT NOT NULL DEFAULT 0;
ALTER TABLE lp_view ADD INDEX(session_id);
ALTER TABLE lp_view ADD INDEX(session_id);
INSERT INTO course_setting (variable,value,category) VALUES ('allow_user_view_user_list',1,'user');

@ -35,6 +35,15 @@ $this_section = SECTION_COURSES;
// notice for unauthorized people.
api_protect_course_script(true);
if (!api_is_platform_admin(true)) {
if (!api_is_course_admin() && !api_is_coach()) {
if (api_get_course_setting('allow_user_view_user_list')) {
api_not_allowed(true);
}
}
};
/*
-----------------------------------------------------------
Libraries

@ -47,6 +47,8 @@ $this_section = SECTION_COURSES;
$nameTools = get_lang('Users');
api_protect_course_script(true);
$tool_info = api_get_tool_information_by_name(TOOL_USER);
if(api_is_anonymous())
{
api_not_allowed(true);
@ -56,7 +58,9 @@ if(api_is_anonymous())
$TBL_USERINFO_DEF = Database :: get_course_table(TABLE_USER_INFO);
$TBL_USERINFO_CONTENT = Database :: get_course_table(TABLE_USER_INFO_CONTENT);
$interbreadcrumb[] = array ('url' => 'user.php', 'name' => get_lang('Users'));
if ($tool_info['visibility'] == 1 ) {
$interbreadcrumb[] = array ('url' => 'user.php', 'name' => get_lang('Users'));
}
if ($origin != 'learnpath')
{ //so we are not in learnpath tool
@ -91,6 +95,7 @@ $userIdViewed = Security::remove_XSS($_REQUEST['uInfo']);
-----------------------------------------------------------
*/
$mainDB = $_configuration['main_database'];
$courseCode = $currentCourseID = $_course['sysCode'];
$tbl_coursUser = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -262,17 +267,28 @@ if ($allowedToEditContent)
==============================================================================
*/
// Back button for each display mode (Top)
echo '<div class="actions">';
echo '<a href="user.php?'.api_get_cidreq().'&amp;origin='.$origin.'">'.Display::return_icon('back.png',get_lang('BackUser')).get_lang('BackUser').'</a>';
if (api_is_allowed_to_edit()) {
echo '<div class="actions">';
echo '<a href="user.php?'.api_get_cidreq().'&amp;origin='.$origin.'">'.Display::return_icon('back.png',get_lang('BackUser')).get_lang('BackUser').'</a>';
if (!is_numeric($_GET['editMainUserInfo'])) {
echo '<a href="userInfo.php?'.api_get_cidreq().'&amp;origin='.$origin.'&amp;editMainUserInfo='.$userIdViewed.'">'.Display::return_icon('edit.gif',get_lang('EditUser')).get_lang('EditUser').'</a>';
} else {
echo '<a href="userInfo.php?'.api_get_cidreq().'&amp;origin='.$origin.'&amp;uInfo='.$userIdViewed.'">'.Display::return_icon('members.gif',get_lang('ViewUser')).get_lang('ViewUser').'</a>';
}
}
echo '<a href="../mySpace/myStudents.php?'.api_get_cidreq().'&amp;origin=user_course&amp;student='.$userIdViewed.'&amp;details=true&amp;course='.$_course['id'].'">'.Display::return_icon('statistics.gif',get_lang('UserStatistics')).get_lang('UserStatistics').'</a>';
echo '</div>';
} else {
if ($tool_info['visibility'] == 1 ) {
echo '<div class="actions">';
echo '<a href="user.php?'.api_get_cidreq().'&amp;origin='.$origin.'">'.Display::return_icon('back.png',get_lang('BackUser')).get_lang('BackUser').'</a>';
echo '</div>';
}
}
echo '</div>';
if ($displayMode == "viewDefEdit")

Loading…
Cancel
Save