@ -1,4 +1,4 @@
<?php //$id: $
<?php
/* For licensing terms, see /license.txt */
/**
* @package chamilo.admin
@ -19,6 +19,7 @@ require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
// setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN;
global $_configuration;
// Access restrictions
api_protect_admin_script(true);
@ -30,6 +31,7 @@ $interbreadcrumb[]=array('url' => 'group_list.php','name' => get_lang('GroupList
$tbl_group = Database::get_main_table(TABLE_MAIN_GROUP);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP);
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
// setting the name of the tool
$tool_name = get_lang('SubscribeUsersToGroup');
@ -43,8 +45,8 @@ if(isset($_REQUEST['add_type']) && $_REQUEST['add_type']!=''){
//checking for extra field with filter on
$xajax = new xajax();
$xajax->registerFunction('search_users');
function search_users($needle,$type,$relation_type) {
global $tbl_user,$tbl_group_rel_user,$group_id,$_configuration;
function search_users($needle,$type,$relation_type) {
global $tbl_user,$tbl_user_rel_access_url, $tbl_ group_rel_user,$group_id,$_configuration;
$xajax_response = new XajaxResponse();
$return = $return_origin = $return_destination = '';
$without_user_id = $without_user_id = $condition_relation = '';
@ -53,7 +55,7 @@ function search_users($needle,$type,$relation_type) {
$group_id = intval($group_id);
$relation_type = intval($relation_type);
// get user_id from relation type and group id
$sql = "SELECT user_id FROM $tbl_group_rel_user
$sql = "SELECT user_id FROM $tbl_group_rel_user
WHERE group_id = '$group_id'
AND relation_type IN (".GROUP_USER_PERMISSION_ADMIN.",".GROUP_USER_PERMISSION_READER.",".GROUP_USER_PERMISSION_PENDING_INVITATION.",".GROUP_USER_PERMISSION_MODERATOR.") ";
$res = Database::query($sql);
@ -62,10 +64,10 @@ function search_users($needle,$type,$relation_type) {
while ($row = Database::fetch_row($res)) {
$user_ids[] = $row[0];
}
$without_user_id = " AND user_id NOT IN(".implode(',',$user_ids).") ";
$without_user_id = " AND user.user _id NOT IN(".implode(',',$user_ids).") ";
}
if ($relation_type==GROUP_USER_PERMISSION_PENDING_INVITATION) {
if ($relation_type == GROUP_USER_PERMISSION_PENDING_INVITATION) {
$condition_relation = " AND groups.relation_type IN (".GROUP_USER_PERMISSION_PENDING_INVITATION.",".GROUP_USER_PERMISSION_READER.") ";
} else {
$condition_relation = " AND groups.relation_type = '$relation_type' ";
@ -88,6 +90,7 @@ function search_users($needle,$type,$relation_type) {
} else {
$return_destination .= '< select id = "destination_users" name = "sessionUsersList[]" multiple = "multiple" size = "15" style = "width:360px;" > < / select > ';
}
$xajax_response -> addAssign('ajax_destination_list','innerHTML',api_utf8_encode($return_destination));
} else {
@ -110,7 +113,7 @@ function search_users($needle,$type,$relation_type) {
$needle = Database::escape_string($needle);
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$user_anonymous=api_get_anonymous_id();
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username';
if ($type == 'single') {
@ -148,8 +151,8 @@ function search_users($needle,$type,$relation_type) {
} else {
// multiple
if (!empty($group_id) & & !empty($relation_type)) {
$sql = "SELECT user_id, username, lastname, firstname FROM $tbl_user user
WHERE ".(api_sort_by_first_name() ? 'firstname' : 'lastname')." LIKE '$needle%' AND user_id< >'$user_anonymous' $without_user_id $order_clause ";
$sql = "SELECT user_id, username, lastname, firstname FROM $tbl_user user
WHERE ".(api_sort_by_first_name() ? 'firstname' : 'lastname')." LIKE '$needle%' AND user_id< >'$user_anonymous' $without_user_id $order_clause ";
if ($_configuration['multiple_access_urls']) {
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
@ -160,6 +163,7 @@ function search_users($needle,$type,$relation_type) {
AND user.user_id< >'$user_anonymous' $without_user_id $order_clause ";
}
}
$rs_multiple = Database::query($sql);
$return_origin .= '< select id = "origin_users" name = "nosessionUsersList[]" multiple = "multiple" size = "15" style = "width:360px;" > ';
while ($user = Database :: fetch_array($rs_multiple)) {
@ -225,7 +229,7 @@ $group_name = $group_info['name'];
Display::display_header($group_name);
if($_POST['form_sent']) {
if ($_POST['form_sent']) {
$form_sent = $_POST['form_sent'];
$firstLetterUser = $_POST['firstLetterUser'];
@ -290,6 +294,7 @@ if ($ajax_search) {
$many_users = false;
$sql = "SELECT count(user_id) FROM $tbl_user user
WHERE ".(api_sort_by_first_name() ? 'firstname' : 'lastname')." LIKE '$needle%' AND user_id< >'$user_anonymous' $without_user_id ";
if ($_configuration['multiple_access_urls']) {
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
@ -301,18 +306,22 @@ if ($ajax_search) {
}
}
$rs_count = Database::query($sql);
$row_count = Database::fetch_row($rs_count);
$row_count = 0;
if (Database::num_rows($rs_count)) {
$row_count = Database::fetch_row($rs_count);
$row_count = $row_count[0];
}
if ($row_count > 2) $many_users = true;
// data for origin list
if (isset($_POST['id']) & & isset($_POST['firstLetterUser'])) {
$id = intval($_POS T['id']);
if (isset($_GET['id '])) {
$id = intval($_GE T['id']);
$needle = Database::escape_string($_POST['firstLetterUser']);
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$user_anonymous=api_get_anonymous_id();
// get user_id from relation type and group id
$sql = "SELECT user_id FROM $tbl_group_rel_user
WHERE group_id = ' $id'
WHERE group_id = $id
AND relation_type IN (".GROUP_USER_PERMISSION_ADMIN.",".GROUP_USER_PERMISSION_READER.",".GROUP_USER_PERMISSION_PENDING_INVITATION.",".GROUP_USER_PERMISSION_MODERATOR.") ";
$res = Database::query($sql);
$user_ids = array();
@ -320,7 +329,7 @@ if ($ajax_search) {
while ($row = Database::fetch_row($res)) {
$user_ids[] = $row[0];
}
$without_user_id = " AND user_id NOT IN(".implode(',',$user_ids).") ";
$without_user_id = " AND user.user _id NOT IN(".implode(',',$user_ids).") ";
}
$sql = "SELECT user_id, username, lastname, firstname FROM $tbl_user user
@ -388,7 +397,7 @@ if ($add_type == 'multiple') {
<?php } else { ?>
< select name = "relation" id = "relation" onchange = "xajax_search_users(document.getElementById('user_to_add').value,'single',this.value);" >
<?php } ?>
< option value = "" > <?php echo get_lang ( 'Choose RelationType' ) ?> </ option >
< option value = "" > <?php echo get_lang ( 'SelectA RelationType' ) ?> </ option >
< option value = " <?php echo GROUP_USER_PERMISSION_ADMIN ?> " <?php echo (( isset ( $_POST [ 'relation' ]) && $_POST [ 'relation' ] == GROUP_USER_PERMISSION_ADMIN ) ? 'selected=selected' : '' ) ?> > <?php echo get_lang ( 'Admin' ) ?> </ option >
< option value = " <?php echo GROUP_USER_PERMISSION_PENDING_INVITATION ?> " <?php echo (( isset ( $_POST [ 'relation' ]) && $_POST [ 'relation' ] == GROUP_USER_PERMISSION_PENDING_INVITATION ) ? 'selected=selected' : '' ) ?> > <?php echo get_lang ( 'Reader' ) ?> </ option >
< option value = " <?php echo GROUP_USER_PERMISSION_MODERATOR ?> " <?php echo (( isset ( $_POST [ 'relation' ]) && $_POST [ 'relation' ] == GROUP_USER_PERMISSION_MODERATOR ) ? 'selected=selected' : '' ) ?> > <?php echo get_lang ( 'Moderator' ) ?> </ option >
@ -439,7 +448,7 @@ if(!empty($errorMsg)) {
< td align = "center" >< b > <?php echo get_lang ( 'UserListInPlatform' ) ?> :</ b >
< / td >
< td > < / td >
< td align = "center" >< b > <?php echo get_lang ( 'UserLi st InGroup' ) ?> :</ b ></ td >
< td align = "center" >< b > <?php echo get_lang ( 'UsersInGroup' ) ?> :</ b ></ td >
< / tr >
<?php if ( $add_type == 'multiple' ) { ?>