[svn r17781] Adding some interface to the multiple url access, still working on this FS#3462

skala
Julio Montoya 17 years ago
parent 8a84dda172
commit 2985761f4d
  1. 221
      main/admin/access_url_add_users_to_url.php
  2. 130
      main/admin/access_url_edit.php
  3. 177
      main/admin/access_urls.php
  4. 5
      main/admin/add_users_to_session.php
  5. 193
      main/admin/index.php
  6. 22
      main/admin/session_list.php
  7. 3
      main/inc/lib/database.lib.php
  8. 260
      main/inc/lib/urlmanager.lib.php
  9. 12
      main/inc/lib/usermanager.lib.php

@ -0,0 +1,221 @@
<?php
/*
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2009 Dokeos SPRL
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
Contact address: Dokeos, 44 rue des palais, B-1030 Brussels, Belgium
Mail: info@dokeos.com
==============================================================================
*/
/**
==============================================================================
* This script allows platform admins to add users to urls.
* It displays a list of users and a list of courses;
* you can select multiple users and courses and then click on
* @package dokeos.admin
==============================================================================
*/
// name of the language file that needs to be included
$language_file = 'admin';
$cidReset = true;
require ('../inc/global.inc.php');
$this_section=SECTION_PLATFORM_ADMIN;
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
api_protect_admin_script();
if (!$_configuration['multiple_access_urls'])
header('Location: index.php');
/*
-----------------------------------------------------------
Global constants and variables
-----------------------------------------------------------
*/
$users = $_GET['users'];
$form_sent = 0;
$first_letter_user = '';
$first_letter_course = '';
$courses = array ();
$url_list = array();
$users = array();
$tbl_access_url_rel_user = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$tbl_access_url = Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
/*
-----------------------------------------------------------
Header
-----------------------------------------------------------
*/
$tool_name = get_lang('AddUsersToURL');
$interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
$interbreadcrumb[] = array ('url' => 'access_urls.php', 'name' => get_lang('MultipleAccessURLs'));
/*
==============================================================================
MAIN CODE
==============================================================================
*/
/*
-----------------------------------------------------------
React on POSTed request
-----------------------------------------------------------
*/
Display :: display_header($tool_name);
//api_display_tool_title($tool_name);
if ($_POST['formSent']) {
$form_sent = $_POST['formSent'];
$users = is_array($_POST['UserList']) ? $_POST['UserList'] : array() ;
$url_list = is_array($_POST['URLList']) ? $_POST['URLList'] : array() ;
$first_letter_user = $_POST['firstLetterUser'];
//$first_letter_course = $_POST['firstLetterCourse'];
foreach($users as $key => $value) {
$users[$key] = intval($value);
}
if ($form_sent == 1)
{
if ( count($users) == 0 || count($url_list) == 0) {
Display :: display_error_message(get_lang('AtLeastOneUserAndOneURL'));
//header('Location: access_urls.php?action=show_message&message='.get_lang('AtLeastOneUserAndOneURL'));
} else {
UrlManager::add_users_to_urls($users,$url_list);
Display :: display_confirmation_message(get_lang('UsersBelongURL'));
//header('Location: access_urls.php?action=show_message&message='.get_lang('UsersBelongURL'));
}
}
}
/*
-----------------------------------------------------------
Display GUI
-----------------------------------------------------------
*/
if(empty($first_letter_user))
{
$sql = "SELECT count(*) as nb_users FROM $tbl_user";
$result = api_sql_query($sql, __FILE__, __LINE__);
$num_row = Database::fetch_array($result);
if($num_row['nb_users']>1000)
{//if there are too much users to gracefully handle with the HTML select list,
// assign a default filter on users names
$first_letter_user = 'A';
}
unset($result);
}
$sql = "SELECT user_id,lastname,firstname,username FROM $tbl_user WHERE lastname LIKE '".$first_letter_user."%' ORDER BY ". (count($users) > 0 ? "(user_id IN(".implode(',', $users).")) DESC," : "")." lastname";
$result = api_sql_query($sql, __FILE__, __LINE__);
$db_users = api_store_result($result);
unset($result);
$sql = "SELECT id, url FROM $tbl_access_url WHERE active=1 ORDER BY url";
$result = api_sql_query($sql, __FILE__, __LINE__);
$db_urls = api_store_result($result);
unset($result);
?>
<form name="formulaire" method="post" action="<?php echo api_get_self(); ?>" style="margin:0px;">
<input type="hidden" name="formSent" value="1"/>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td width="40%" align="center">
<b><?php echo get_lang('UserList'); ?></b>
<br/><br/>
<?php echo get_lang('FirstLetterUser'); ?> :
<select name="firstLetterUser" onchange="javascript:document.formulaire.formSent.value='2'; document.formulaire.submit();">
<option value="">--</option>
<?php
echo Display :: get_alphabet_options($first_letter_user);
?>
</select>
</td>
<td width="20%">&nbsp;</td>
<td width="40%" align="center">
<b><?php echo get_lang('URLList'); ?> :</b>
</td>
<?php
//
/*
<td width="20%">&nbsp;</td>
<td width="40%" align="center">
<b><?php echo get_lang('URLList'); ?> :</b>
<br/><br/>
<?php echo get_lang('FirstLetterCourse'); ?> :
<select name="firstLetterCourse" onchange="javascript:document.formulaire.formSent.value='2'; document.formulaire.submit();">
<option value="">--</option>
<?php
echo Display :: get_alphabet_options($first_letter_course);
?>
</select>
</td>
*/
?>
</tr>
<tr>
<td width="40%" align="center">
<select name="UserList[]" multiple="multiple" size="20" style="width:230px;">
<?php
foreach ($db_users as $user)
{
?>
<option value="<?php echo $user['user_id']; ?>" <?php if(in_array($user['user_id'],$users)) echo 'selected="selected"'; ?>><?php echo $user['lastname'].' '.$user['firstname'].' ('.$user['username'].')'; ?></option>
<?php
}
?>
</select>
</td>
<td width="20%" valign="middle" align="center">
<input type="submit" value="<?php echo get_lang('AddToThatURL'); ?> &gt;&gt;"/>
</td>
<td width="40%" align="center">
<select name="URLList[]" multiple="multiple" size="20" style="width:230px;">
<?php
foreach ($db_urls as $url_obj)
{
?>
<option value="<?php echo $url_obj['id']; ?>" <?php if(in_array($url_obj['id'],$url_list)) echo 'selected="selected"'; ?>><?php echo $url_obj['url']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
</table>
</form>
<?php
/*
==============================================================================
FOOTER
==============================================================================
*/
Display :: display_footer();
?>

@ -3,8 +3,8 @@
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2008 Dokeos SPRL
Copyright (c) 2008 Julio Montoya
Copyright (c) 2009 Dokeos SPRL
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
@ -20,103 +20,71 @@
Mail: info@dokeos.com
==============================================================================
*/
// name of the language file that needs to be included
/**
==============================================================================
* @package dokeos.admin
==============================================================================
*/
$language_file = 'admin';
$cidReset = true;
require ('../inc/global.inc.php');
$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script();
if (!$_configuration['multiple_access_urls'])
header('Location: index.php');
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH).'security.lib.php');
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
// Create the form
$form = new FormValidator('add_url');
$form->addElement('text','url',get_lang('URL'),array('size'=>'30'));
$form->addElement('static', null, null, get_lang('Example'));
$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('url', '', 'maxlength',254);
$form->addElement('textarea','description',get_lang('Description'));
$form->addElement('checkbox','active',get_lang('Active'));
$form->addRule('checkbox', get_lang('ThisFieldIsRequired'), 'required');
$defaults['url']='http://';
$form->setDefaults($defaults);
if( $form->validate())
{
if( $form->validate()) {
$check = Security::check_token('post');
if($check)
{
if($check) {
$url_array = $form->getSubmitValues();
$url = Security::remove_XSS($url_array['url']);
$description = Security::remove_XSS($url_array['description']);
$active = intval($url_array['active']);
$tms = time();
$active = intval($url_array['active']);
$url_id = $url_array['id'];
$url_to_go='access_urls.php';
if ($url_id!='')
{
$sql = "UPDATE $access_url_table
SET url = '".Database::escape_string($url)."',
description = '".Database::escape_string($description)."',
active = '".Database::escape_string($active)."',
created_by = '".Database::escape_string(api_get_user_id())."',
tms = FROM_UNIXTIME(".$tms.") WHERE id = '$url_id'";
api_sql_query($sql, __FILE__, __LINE__);
$url_to_go='access_urls.php';
if ($url_id!='') {
//we can't change the status of the url with id=1
if ($url_id==1)
$active=1;
UrlManager::udpate($url_id, $url, $description, $active);
$url_to_go='access_urls.php';
$message=get_lang('URLEdited');
}
else
{
$sql = "SELECT id FROM $access_url_table WHERE url = '$url' ";
$res = api_sql_query($sql,__FILE__,__LINE__);
$result = Database::fetch_array($res);
if (empty($result))
{
} else {
$num = UrlManager::url_exist($url);
if ($num == 0) {
//checking url
if (substr($url,strlen($url)-1, strlen($url))=='/')
{
//create
$sql = "INSERT INTO $access_url_table
SET url = '".Database::escape_string($url)."',
description = '".Database::escape_string($description)."',
active = '".Database::escape_string($active)."',
created_by = '".Database::escape_string(api_get_user_id())."',
tms = FROM_UNIXTIME(".$tms.")";
$result = api_sql_query($sql, __FILE__, __LINE__);
if (substr($url,strlen($url)-1, strlen($url))=='/') {
UrlManager::add($url.'/', $description, $active);
$message = get_lang('URLAdded');
} else {
//create
UrlManager::add($url, $description, $active);
$message = get_lang('URLAdded');
}
else
{
$message = get_lang('URLMustHaveFinalSlash');
}
$url_to_go='access_url_edit.php';
}
else
{
$url_to_go='access_urls.php';
} else {
$url_to_go='access_url_edit.php';
$message = get_lang('URLAlreadyAdded');
}
Security::clear_token();
$tok = Security::get_token();
header('Location: '.$url_to_go.'?action=show_message&message='.urlencode($message).'&sec_token='.$tok);
exit();
}
}
Security::clear_token();
$tok = Security::get_token();
header('Location: '.$url_to_go.'?action=show_message&message='.urlencode($message).'&sec_token='.$tok);
exit();
}
}
else
{
if(isset($_POST['submit']))
{
if(isset($_POST['submit'])) {
Security::clear_token();
}
$token = Security::get_token();
@ -124,18 +92,28 @@ else
$form->setConstants(array('sec_token' => $token));
}
$form->addElement('text','url',get_lang('URL'),array('size'=>'30'));
$form->addElement('static', null, null, get_lang('MustHaveSlash'));
$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('url', '', 'maxlength',254);
$form->addElement('textarea','description',get_lang('Description'));
$form->addElement('checkbox','active',get_lang('Active'));
$form->addRule('checkbox', get_lang('ThisFieldIsRequired'), 'required');
$defaults['url']='http://';
$form->setDefaults($defaults);
$submit_name = get_lang('Add');
if (isset($_GET['url_id']))
{
$url_id = Database::escape_string($_GET['url_id']);
$sql = "SELECT id, url, description, active FROM $access_url_table WHERE id = '".$url_id."'";
$res = api_sql_query($sql,__FILE__,__LINE__);
if(mysql_num_rows($res) != 1)
$url_id = Database::escape_string($_GET['url_id']);
$num_url_id = UrlManager::url_id_exist($url_id);
if($num_url_id != 1)
{
header('Location: access_urls.php');
exit;
exit();
}
$url_data = Database::fetch_array($res,'ASSOC');
$url_data = UrlManager::get_url_data_from_id($url_id);
$form->addElement('hidden','id',$url_data['id']);
$form->setDefaults($url_data);
$submit_name = get_lang('Edit');

@ -3,8 +3,8 @@
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2008 Dokeos SPRL
Copyright (c) 2008 Julio Montoya
Copyright (c) 2009 Dokeos SPRL
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
@ -25,11 +25,6 @@
* @package dokeos.admin
==============================================================================
*/
/*
==============================================================================
INIT SECTION
==============================================================================
*/
// name of the language file that needs to be included
$language_file = 'admin';
@ -48,51 +43,48 @@ Display :: display_header($tool_name);
require_once (api_get_path(LIBRARY_PATH).'sortabletable.class.php');
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH).'security.lib.php');
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
// Actions
if (isset ($_GET['action']))
{
$check = Security::check_token('get');
if ($check)
{
$url_id=Database::escape_string($_GET['url_id']);
if (isset ($_GET['action'])) {
switch ($_GET['action'])
{
case 'show_message' :
Display :: display_normal_message(stripslashes($_GET['message']));
break;
case 'delete_url' :
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql= "DELETE FROM $access_url_table WHERE id = '$url_id'";
$result = api_sql_query($sql, __FILE__, __LINE__);
if ($result)
{
Display :: display_normal_message(get_lang('URLDeleted'));
}
else
{
Display :: display_error_message(get_lang('CannotDeleteURL'));
}
break;
case 'lock' :
$message=lock_unlock_user('lock',$url_id);
Display :: display_normal_message($message);
break;
case 'unlock';
$message=lock_unlock_user('unlock',$url_id);
Display :: display_normal_message($message);
break;
if ($_GET['action'] = 'show_message')
Display :: display_normal_message(Security::remove_XSS(stripslashes($_GET['message'])));
$check = Security::check_token('get');
if ($check) {
$url_id=Database::escape_string($_GET['url_id']);
switch ($_GET['action']) {
case 'delete_url' :
$result = UrlManager::delete($url_id);
if ($result) {
Display :: display_normal_message(get_lang('URLDeleted'));
} else {
Display :: display_error_message(get_lang('CannotDeleteURL'));
}
break;
case 'lock' :
UrlManager::set_url_status('lock',$url_id);
Display :: display_normal_message(get_lang('URLInactivate'));
break;
case 'unlock';
UrlManager::set_url_status('unlock',$url_id);
Display :: display_normal_message(get_lang('URLActivate'));
break;
}
}
Security::clear_token();
}
echo '<div align="right">
<a href="'.api_get_path(WEB_CODE_PATH).'admin/access_url_edit.php">'.get_lang('AddUrl').'</a>
//<a href="'.api_get_path(WEB_CODE_PATH).'admin/access_url_edit_users_to_url.php">'.Display::return_icon('add_user_big.gif',get_lang('EditUsersToURL'),'').get_lang('EditUsersToURL').'</a>
echo '<div class="actions">';
echo '<div style="float:right;">
<a href="'.api_get_path(WEB_CODE_PATH).'admin/access_url_edit.php">'.Display::return_icon('view_more_stats.gif',get_lang('AddUrl'),'').get_lang('AddUrl').'</a>&nbsp;&nbsp;
<a href="'.api_get_path(WEB_CODE_PATH).'admin/access_url_add_users_to_url.php">'.Display::return_icon('add_user_big.gif',get_lang('AddUserToURL'),'').get_lang('AddUsersToURL').'</a>
</div><br />';
$table = new SortableTable('urls', 'get_number_of_urls', 'get_url_data',2);
echo '</div>';
$table = new SortableTable('urls', 'url_count_mask', 'get_url_data_mask',2);
$parameters['sec_token'] = Security::get_token();
$table->set_additional_parameters($parameters);
$table->set_header(0, '', false);
@ -100,99 +92,66 @@ $table->set_header(0, '', false);
$table->set_header(1, get_lang('URL'));
$table->set_header(2, get_lang('Description'));
$table->set_header(3, get_lang('Active'));
//$table->set_header(4, get_lang('Status'));
$table->set_header(4, get_lang('Modify'));
$table->set_column_filter(3, 'active_filter');
//$table->set_column_filter(4, 'status_filter');
$table->set_column_filter(4, 'modify_filter');
//$table->set_form_actions(array ('delete' => get_lang('DeleteFromPlatform')));
$table->display();
function get_number_of_urls()
{
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT count(id) as count_result FROM $access_url_table";
$res = api_sql_query($sql, __FILE__, __LINE__);
$url = Database::fetch_row($res);
$result = $url['0'];
return $result;
}
function get_url_data()
{
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id AS col0, url AS col1, description AS col2, active AS col3 FROM $access_url_table";
$res = api_sql_query($sql, __FILE__, __LINE__);
$urls = array ();
while ($url = Database::fetch_row($res))
{
$urls[] = $url;
//$table->set_form_actions(array ('delete' => get_lang('DeleteFromPlatform')));
$table->display();
/*
function status_filter($active, $url_params, $row) {
$url_id =UrlManager::check_status($row[1]);
if ($row[0] == $url_id ) {
$action='lock';
$image='right';
} else {
$image='wrong';
}
return $urls;
}
// you cannot lock the default
$result = Display::return_icon($image.'.gif', get_lang(ucfirst($action)));
function modify_filter($active, $url_params, $row)
{
return $result;
}
*/
function modify_filter($active, $url_params, $row) {
global $charset;
$url_id = $row['0'];
if ($url_id != '1')
{
$result .= '<a href="access_url_edit.php?url_id='.$url_id.'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>&nbsp;';
$result .= '<a href="access_url_edit.php?url_id='.$url_id.'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>&nbsp;';
if ($url_id != '1') {
$result .= '<a href="access_urls.php?action=delete_url&amp;url_id='.$url_id.'&amp;sec_token='.$_SESSION['sec_token'].'" onclick="javascript:if(!confirm('."'".addslashes(htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset))."'".')) return false;">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
}
return $result;
}
function active_filter($active, $url_params, $row)
{
function active_filter($active, $url_params, $row) {
$active = $row['3'];
if ($active=='1')
{
if ($active=='1') {
$action='lock';
$image='right';
}
if ($active=='0')
{
if ($active=='0') {
$action='unlock';
$image='wrong';
}
if ($row['0']=='1') // you cannot lock the default
{
// you cannot lock the default
if ($row['0']=='1') {
$result = Display::return_icon($image.'.gif', get_lang(ucfirst($action)));
}
else
{
} else {
$result = '<a href="access_urls.php?action='.$action.'&amp;url_id='.$row['0'].'&amp;sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon($image.'.gif', get_lang(ucfirst($action))).'</a>';
}
return $result;
}
function lock_unlock_user($status,$url_id)
{
$url_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
if ($status=='lock')
{
$status_db='0';
$return_message=get_lang('URLInactivate');
}
if ($status=='unlock')
{
$status_db='1';
$return_message=get_lang('URLActivate');
}
if(($status_db=='1' OR $status_db=='0') AND is_numeric($url_id))
{
$sql="UPDATE $url_table SET active='".Database::escape_string($status_db)."' WHERE id='".Database::escape_string($url_id)."'";
$result = api_sql_query($sql, __FILE__, __LINE__);
}
if ($result)
{
return $return_message;
}
// this 2 "mask" function are here just because the SortableTable
function get_url_data_mask($id, $url_params=null, $row=null) {
return UrlManager::get_url_data();
}
function url_count_mask() {
return UrlManager::url_count();
}
/*
==============================================================================

@ -48,8 +48,8 @@ $this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
// setting breadcrumbs
$interbreadcrumb[]=array('url' => 'index.php',"name" => get_lang('PlatformAdmin'));
$interbreadcrumb[]=array('url' => "session_list.php","name" => "Liste des sessions");
$interbreadcrumb[]=array('url' => 'index.php','name' => get_lang('PlatformAdmin'));
$interbreadcrumb[]=array('url' => "session_list.php","name" => get_lang('SessionList'));
// Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
@ -123,6 +123,7 @@ function search_users($needle)
$xajax_response -> addAssign('ajax_list_users','innerHTML',utf8_encode($return));
return $xajax_response;
}
$xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');

@ -1,4 +1,4 @@
<?php // $Id: index.php 17723 2009-01-14 17:50:21Z juliomontoya $
<?php // $Id: index.php 17781 2009-01-16 17:51:08Z juliomontoya $
/*
==============================================================================
Dokeos - elearning and course management software
@ -46,7 +46,7 @@ api_protect_admin_script(true);
$nameTools = get_lang('PlatformAdmin');
// setting breadcrumbs
$interbreadcrumb[] = array('url' => 'index.php', 'name' => $nameTools);
//$interbreadcrumb[] = array('url' => 'index.php', 'name' => $nameTools);
// setting the name of the tool
$tool_name=get_lang('PlatformAdmin');
@ -55,96 +55,115 @@ $tool_name=get_lang('PlatformAdmin');
Display::display_header($nameTools);
if(api_is_platform_admin()):
if(is_dir(api_get_path(SYS_CODE_PATH).'install/') && is_readable(api_get_path(SYS_CODE_PATH).'install/index.php'))
if(api_is_platform_admin())
{
Display::display_normal_message(get_lang('InstallDirAccessibleSecurityThreat'));
}
/*
==============================================================================
ACTION HANDLING
==============================================================================
*/
if (!empty($_POST['Register']))
{
register_site();
Display :: display_confirmation_message(get_lang('VersionCheckEnabled'));
if(is_dir(api_get_path(SYS_CODE_PATH).'install/') && is_readable(api_get_path(SYS_CODE_PATH).'install/index.php'))
{
Display::display_normal_message(get_lang('InstallDirAccessibleSecurityThreat'));
}
/*
==============================================================================
ACTION HANDLING
==============================================================================
*/
if (!empty($_POST['Register']))
{
register_site();
Display :: display_confirmation_message(get_lang('VersionCheckEnabled'));
}
/*
==============================================================================
MAIN SECTION
==============================================================================
*/
$keyword_url = Security::remove_XSS((empty($_GET['keyword'])?'':$_GET['keyword']));
}
/*
==============================================================================
MAIN SECTION
==============================================================================
*/
$keyword_url = Security::remove_XSS((empty($_GET['keyword'])?'':$_GET['keyword']));
?>
<div class="admin_section">
<h4><?php Display::display_icon('members.gif', get_lang('Users')); ?> <?php echo ucfirst(get_lang('Users')); ?></h4>
<ul><li style="list-style-type:none"><form method="get" action="user_list.php">
<input type="text" name="keyword" value="<?php echo $keyword_url; ?>"/>
<input type="submit" value="<?php echo get_lang('Search'); ?>"/>
</form></li>
<li>
<a href="user_list.php?search=advanced"><?php echo ucfirst(get_lang('AdvancedSearch')); ?></a>
</li>
<li><a href="user_list.php"><?php echo get_lang('UserList') ?></a></li>
<li><a href="user_add.php"><?php echo get_lang('AddUsers') ?></a></li>
<li><a href="user_export.php"><?php echo get_lang('ExportUserListXMLCSV') ?></a></li>
<li><a href="user_import.php"><?php echo get_lang('ImportUserListXMLCSV') ?></a></li>
<li><a href="user_fields.php"><?php echo get_lang('ManageUserFields'); ?></a></li>
</ul>
</div>
<div class="admin_section">
<h4><?php Display::display_icon('course.gif', get_lang('Courses')); ?> <?php echo ucfirst(get_lang('Courses')); ?></h4>
<ul><li style="list-style-type:none"><form method="get" action="course_list.php">
<input type="text" name="keyword" value="<?php echo $keyword_url; ?>"/>
<input type="submit" value="<?php echo get_lang('Search'); ?>"/>
</form></li>
<li>
<a href="course_list.php?search=advanced"><?php echo ucfirst(get_lang('AdvancedSearch')); ?></a>
if (api_is_platform_admin()) {
?>
<div class="admin_section">
<h4><?php Display::display_icon('members.gif', get_lang('Users')); ?> <?php echo ucfirst(get_lang('Users')); ?></h4>
<ul>
<li style="list-style-type:none"><form method="get" action="user_list.php">
<input type="text" name="keyword" value="<?php echo $keyword_url; ?>"/>
<input type="submit" value="<?php echo get_lang('Search'); ?>"/>
</form>
</li>
<li><a href="user_list.php?search=advanced"><?php echo ucfirst(get_lang('AdvancedSearch')); ?></a></li>
<li><a href="user_list.php"> <?php echo get_lang('UserList') ?></a></li>
<li><a href="user_add.php"> <?php echo get_lang('AddUsers') ?></a></li>
<li><a href="user_export.php"> <?php echo get_lang('ExportUserListXMLCSV') ?></a></li>
<li><a href="user_import.php"> <?php echo get_lang('ImportUserListXMLCSV') ?></a></li>
<li><a href="user_fields.php"> <?php echo get_lang('ManageUserFields'); ?></a></li>
</ul>
</div>
<?php
}
else
{
?>
<div class="admin_section">
<h4><?php Display::display_icon('members.gif', get_lang('Users')); ?> <?php echo ucfirst(get_lang('Users')); ?></h4>
<ul>
<li><a href="user_list.php"> <?php echo get_lang('UserList') ?></a></li>
<li><a href="../mySpace/user_add.php"> <?php echo get_lang('AddUsers') ?></a></li>
</li>
<li><a href="course_list.php"><?php echo get_lang('CourseList') ?></a></li>
<li><a href="course_add.php"><?php echo get_lang('AddCourse') ?></a></li>
<li><a href="course_import.php"><?php echo get_lang('AddCourse').' CSV'; ?></a></li>
<!--<li><a href="course_virtual.php"><?php //echo get_lang('AdminManageVirtualCourses') ?></a></li>-->
<li><a href="course_category.php"><?php echo get_lang("AdminCategories"); ?></a></li>
<li><a href="subscribe_user2course.php"><?php echo get_lang('AddUsersToACourse'); ?></a></li>
<li><a href="course_user_import.php"><?php echo get_lang('AddUsersToACourse').' CSV'; ?></a></li>
<?php if (api_get_setting('search_enabled')=='true') { ?>
<li><a href="specific_fields.php"><?php echo get_lang('SpecificSearchFields'); ?></a></li>
<?php } ?>
</ul>
</div>
</ul>
</div>
<?php
}
<div class="admin_section">
<h4><?php Display::display_icon('settings.gif', get_lang('Platform')); ?> <?php echo ucfirst(get_lang('Platform')); ?></h4>
<ul>
<li><a href="settings.php"><?php echo get_lang('DokeosConfigSettings') ?></a></li>
<li><a href="system_announcements.php"><?php echo get_lang('SystemAnnouncements') ?></a></li>
<li><a href="languages.php"><?php echo get_lang('Languages'); ?></a></li>
<li><a href="configure_homepage.php"><?php echo get_lang('ConfigureHomePage'); ?></a></li>
<li><a href="statistics/index.php"><?php echo get_lang('ToolName'); ?> </a></li>
<li><a href="calendar.php"><?php echo get_lang('GlobalAgenda'); ?> </a></li>
<?php if(!empty($phpMyAdminPath)): ?>
<li><a href="<?php echo $phpMyAdminPath; ?>" target="_blank"><?php echo get_lang("AdminDatabases"); ?></a><br />(<?php echo get_lang("DBManagementOnlyForServerAdmin"); ?>)</li>
<?php endif; ?>
<?php
if(!empty($_configuration['multiple_access_urls']))
{
echo ' <li><a href="access_urls.php">'.get_lang('ConfigureMultipleAccessURLs').'</a></li>';
}
?>
</ul>
</div>
<?php
endif;
if(api_is_platform_admin()) {
?>
<div class="admin_section">
<h4><?php Display::display_icon('course.gif', get_lang('Courses')); ?> <?php echo ucfirst(get_lang('Courses')); ?></h4>
<ul><li style="list-style-type:none"><form method="get" action="course_list.php">
<input type="text" name="keyword" value="<?php echo $keyword_url; ?>"/>
<input type="submit" value="<?php echo get_lang('Search'); ?>"/>
</form></li>
<li>
<a href="course_list.php?search=advanced"><?php echo ucfirst(get_lang('AdvancedSearch')); ?></a>
</li>
<li><a href="course_list.php"><?php echo get_lang('CourseList') ?></a></li>
<li><a href="course_add.php"><?php echo get_lang('AddCourse') ?></a></li>
<li><a href="course_import.php"><?php echo get_lang('AddCourse').' CSV'; ?></a></li>
<!--<li><a href="course_virtual.php"><?php //echo get_lang('AdminManageVirtualCourses') ?></a></li>-->
<li><a href="course_category.php"><?php echo get_lang("AdminCategories"); ?></a></li>
<li><a href="subscribe_user2course.php"><?php echo get_lang('AddUsersToACourse'); ?></a></li>
<li><a href="course_user_import.php"><?php echo get_lang('AddUsersToACourse').' CSV'; ?></a></li>
<?php if (api_get_setting('search_enabled')=='true') { ?>
<li><a href="specific_fields.php"><?php echo get_lang('SpecificSearchFields'); ?></a></li>
<?php } ?>
</ul>
</div>
<div class="admin_section">
<h4><?php Display::display_icon('settings.gif', get_lang('Platform')); ?> <?php echo ucfirst(get_lang('Platform')); ?></h4>
<ul>
<li><a href="settings.php"><?php echo get_lang('DokeosConfigSettings') ?></a></li>
<li><a href="system_announcements.php"><?php echo get_lang('SystemAnnouncements') ?></a></li>
<li><a href="languages.php"><?php echo get_lang('Languages'); ?></a></li>
<li><a href="configure_homepage.php"><?php echo get_lang('ConfigureHomePage'); ?></a></li>
<li><a href="statistics/index.php"><?php echo get_lang('ToolName'); ?> </a></li>
<li><a href="calendar.php"><?php echo get_lang('GlobalAgenda'); ?> </a></li>
<?php if(!empty($phpMyAdminPath)): ?>
<li><a href="<?php echo $phpMyAdminPath; ?>" target="_blank"><?php echo get_lang("AdminDatabases"); ?></a><br />(<?php echo get_lang("DBManagementOnlyForServerAdmin"); ?>)</li>
<?php endif; ?>
<?php
if(!empty($_configuration['multiple_access_urls']))
{
echo ' <li><a href="access_urls.php">'.get_lang('ConfigureMultipleAccessURLs').'</a></li>';
}
?>
</ul>
</div>
<?php
}
if(api_get_setting('use_session_mode')=='true')
{
@ -247,7 +266,7 @@ if(api_is_platform_admin()){
</ul>
</div>
<?php
if (get_setting('allow_reservation')=="true")
if (get_setting('allow_reservation')=='true')
{
?>
<div class="admin_section">

@ -19,7 +19,6 @@ $action=$_REQUEST['action'];
$sort=in_array($_GET['sort'],array('name','nbr_courses','date_start','date_end'))?$_GET['sort']:'name';
$idChecked = $_REQUEST['idChecked'];
if($action == 'delete')
{
if(is_array($idChecked))
@ -42,18 +41,15 @@ if($action == 'delete')
}
api_sql_query("DELETE FROM $tbl_session WHERE id IN($idChecked)",__FILE__,__LINE__);
api_sql_query("DELETE FROM $tbl_session_rel_course WHERE id_session IN($idChecked)",__FILE__,__LINE__);
api_sql_query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session IN($idChecked)",__FILE__,__LINE__);
api_sql_query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session IN($idChecked)",__FILE__,__LINE__);
api_sql_query("DELETE FROM $tbl_session_rel_user WHERE id_session IN($idChecked)",__FILE__,__LINE__);
header('Location: '.api_get_self().'?sort='.$sort);
exit();
}
$interbreadcrumb[]=array("url" => "index.php","name" => get_lang('AdministrationTools'));
$interbreadcrumb[]=array("url" => "index.php","name" => get_lang('PlatformAdmin'));
if (isset ($_GET['search']) && $_GET['search'] == 'advanced')
{
@ -76,7 +72,7 @@ if (isset ($_GET['search']) && $_GET['search'] == 'advanced')
$form->display();
}
else{
else {
$limit=20;
$from=$page * $limit;
@ -87,7 +83,7 @@ else{
$where = 'WHERE session_admin_id='.intval($_user['user_id']);
$where .= (empty($_REQUEST['keyword']) ? " " : " AND name LIKE '%".addslashes($_REQUEST['keyword'])."%'");
}
else{
else {
$where .= (empty($_REQUEST['keyword']) ? " " : " WHERE name LIKE '%".addslashes($_REQUEST['keyword'])."%'");
}
@ -121,13 +117,15 @@ else{
Display::display_header($tool_name);
api_display_tool_title($tool_name);
?>
<div id="main">
echo '<div style="float:right;">
<a href="'.api_get_path(WEB_CODE_PATH).'admin/session_add.php">'.Display::return_icon('view_more_stats.gif',get_lang('AddSession')).get_lang('AddSession').'</a>
</div>';
?>
<div id="main">
<?php
if(isset($_GET['action'])){
if(isset($_GET['action'])) {
Display::display_normal_message(Security::remove_XSS($_GET['message']), false);
}

@ -1,4 +1,4 @@
<?php // $Id: database.lib.php 17764 2009-01-16 03:20:18Z yannoo $
<?php // $Id: database.lib.php 17781 2009-01-16 17:51:08Z juliomontoya $
/* See license terms in /dokeos_license.txt */
/**
==============================================================================
@ -61,6 +61,7 @@ define('TABLE_MAIN_SPECIFIC_FIELD_VALUES', 'specific_field_values');
define('TABLE_MAIN_SEARCH_ENGINE_REF', 'search_engine_ref');
//Access URLS
define('TABLE_MAIN_ACCESS_URL', 'access_url');
define('TABLE_MAIN_ACCESS_URL_REL_USER', 'access_url_rel_user');
//Global calendar
define('TABLE_MAIN_SYSTEM_CALENDAR', 'sys_calendar');
//Reservation System

@ -0,0 +1,260 @@
<?php // $Id: usermanager.lib.php 17705 2009-01-13 20:13:58Z herodoto $
/*
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2009 Dokeos SPRL
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
Contact: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium, info@dokeos.com
==============================================================================
*/
/**
==============================================================================
* This library provides functions for the URL management.
* Include/require it in your code to use its functionality.
*
* @package dokeos.library
==============================================================================
*/
// define constants for user extra field types
class UrlManager
{
/**
* Creates a new access to Dokeos
* @author Julio Montoya <gugli100@gmail.com>,
*
* @param string The URL of the site
* @param string The description of the site
* @param int is active or not
* @param int the user_id of the owner
* @return boolean if success
*/
function add($url, $description, $active)
{
$tms = time();
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "INSERT INTO $access_url_table
SET url = '".Database::escape_string($url)."/',
description = '".Database::escape_string($description)."',
active = '".Database::escape_string($active)."',
created_by = '".Database::escape_string(api_get_user_id())."',
tms = FROM_UNIXTIME(".$tms.")";
$result = api_sql_query($sql, __FILE__, __LINE__);
return $result;
}
/**
* Updates an URL access to Dokeos
* @author Julio Montoya <gugli100@gmail.com>,
*
* @param int The url id
* @param string The description of the site
* @param int is active or not
* @param int the user_id of the owner
* @return boolean if success
*/
function udpate($url_id, $url, $description, $active) {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$tms = time();
$sql = "UPDATE $access_url_table
SET url = '".Database::escape_string($url)."',
description = '".Database::escape_string($description)."',
active = '".Database::escape_string($active)."',
created_by = '".Database::escape_string(api_get_user_id())."',
tms = FROM_UNIXTIME(".$tms.") WHERE id = '$url_id'";
$result = api_sql_query($sql, __FILE__, __LINE__);
return $result;
}
/**
*
* */
function url_exist($url) {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id FROM $access_url_table WHERE url = '".Database::escape_string($url)."' ";
$res = api_sql_query($sql,__FILE__,__LINE__);
$num = Database::num_rows($res);
return $num;
}
/**
*
* */
function url_id_exist($url) {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id FROM $access_url_table WHERE id = '".Database::escape_string($url)."' ";
$res = api_sql_query($sql,__FILE__,__LINE__);
$num = Database::num_rows($res);
return $num;
}
/**
* This function get the quantity of URL
* @author Julio Montoya
* @return int count of urls
* */
function url_count() {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT count(id) as count_result FROM $access_url_table";
$res = api_sql_query($sql, __FILE__, __LINE__);
$url = Database::fetch_row($res);
$result = $url['0'];
return $result;
}
/**
* Gets the id, url, description, and active status of ALL URLs
* @author Julio Montoya
* @return array
* */
function get_url_data() {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id , url , description, active FROM $access_url_table";
$res = api_sql_query($sql, __FILE__, __LINE__);
$urls = array ();
while ($url = Database::fetch_row($res))
{
$urls[] = $url;
}
return $urls;
}
/**
* Gets the id, url, description, and active status of ALL URLs
* @author Julio Montoya
* @return array
* */
function get_url_data_from_id($url_id) {
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id, url, description, active FROM $access_url_table WHERE id = ".Database::escape_string($url_id);
$res = api_sql_query($sql, __FILE__, __LINE__);
$row = Database::fetch_array($res);
return $row;
}
/**
* Sets the status of an URL 1 or 0
* @author Julio Montoya
* @param string lock || unlock
* @param int url id
* */
function set_url_status($status,$url_id)
{
$url_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
if ($status=='lock') {
$status_db='0';
}
if ($status=='unlock') {
$status_db='1';
}
if(($status_db=='1' OR $status_db=='0') AND is_numeric($url_id)) {
$sql="UPDATE $url_table SET active='".Database::escape_string($status_db)."' WHERE id='".Database::escape_string($url_id)."'";
$result = api_sql_query($sql, __FILE__, __LINE__);
}
}
/**
* Deletes an url
* @author Julio Montoya
* @param int url id
* @return boolean true if success
* */
function delete($id)
{
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql= "DELETE FROM $access_url_table WHERE id = ".Database::escape_string($id)."";
$result = api_sql_query($sql, __FILE__, __LINE__);
return $result;
}
/**
* Deletes an url
* @author Julio Montoya
* @param int user id
* @param int url id
* @return boolean true if success
* */
function relation_url_user_exist($user_id, $url_id)
{
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$sql= "SELECT user_id FROM $access_url_rel_user_table WHERE access_url_id = ".Database::escape_string($url_id)." AND user_id = ".Database::escape_string($user_id)." ";
$result = api_sql_query($sql, __FILE__, __LINE__);
$num = Database::num_rows($result);
return $num;
}
/**
* Add a group of users into a group of URLs
* @author Julio Montoya
* @param array of user_ids
* @param array of url_ids
* */
function add_users_to_urls($user_list,$url_list)
{
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$result_array=array();
if (is_array($user_list) && is_array($url_list)){
foreach ($url_list as $url_id) {
foreach ($user_list as $user_id) {
$count = UrlManager::relation_url_user_exist($user_id,$url_id);
if ($count==0) {
$sql = "INSERT INTO $access_url_rel_user_table
SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id);
$result = api_sql_query($sql, __FILE__, __LINE__);
if($result)
$result_array[$url_id][$user_id]=1;
else
$result_array[$url_id][$user_id]=0;
}
}
}
}
return $result_array;
}
/**
* Add a user into a url
* @author Julio Montoya
* @param user_id
* @param url_id
* @return boolean true if success
* */
function add_user_to_url($user_id,$url_id=1)
{
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$count = UrlManager::relation_url_user_exist($user_id,$url_id);
if (empty($count)) {
$sql = "INSERT INTO $access_url_rel_user_table
SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id);
$result = api_sql_query($sql, __FILE__, __LINE__);
}
return $result;
}
function check_status($url)
{
$access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
$sql = "SELECT id FROM $access_url_table WHERE url = '".$url."'";
$result = api_sql_query($sql);
$access_url_id = Database::result($result, 0, 0);
return $access_url_id;
}
}
?>

@ -1,4 +1,4 @@
<?php // $Id: usermanager.lib.php 17763 2009-01-16 03:15:23Z yannoo $
<?php // $Id: usermanager.lib.php 17781 2009-01-16 17:51:08Z juliomontoya $
/*
==============================================================================
Dokeos - elearning and course management software
@ -116,8 +116,16 @@ class UserManager
$result = api_sql_query($sql);
if ($result)
{
//echo "id returned";
//echo "id returned";
$return=Database::get_last_insert_id();
global $_configuration;
if (api_is_platform_admin(true) && $_configuration['multiple_access_urls']==true) {
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
if (api_get_current_access_url_id()!=-1)
UrlManager::add_user_to_url($return, api_get_current_access_url_id());
else
UrlManager::add_user_to_url($return, 1);
}
}
else
{

Loading…
Cancel
Save