Fixing - blog queries due the new changes in the DB (single database) #3910

skala
Julio Montoya 13 years ago
parent 6f8ef2c2ec
commit 6e73b4ff67
  1. 132
      main/inc/lib/blog.lib.php
  2. 15
      main/permissions/blog_permissions.inc.php
  3. 90
      main/permissions/permissions_functions.inc.php
  4. 11
      main/permissions/user_permissions.inc.php

@ -96,6 +96,9 @@ class Blog {
*/
public static function create_blog ($title, $subtitle) {
global $_user;
$course_id = api_get_course_int_id();
$current_date=date('Y-m-d H:i:s',time());
$session_id = api_get_session_id();
// Tabel definitions
@ -105,10 +108,9 @@ class Blog {
$tbl_blogs_tasks = Database::get_course_table(TABLE_BLOGS_TASKS);
//verified if exist blog
$sql='SELECT COUNT(*) as count FROM '.$tbl_blogs.' WHERE blog_name="'.Database::escape_string($title).'" AND blog_subtitle="'.Database::escape_string($subtitle).'";';
$sql='SELECT COUNT(*) as count FROM '.$tbl_blogs.' WHERE c_id = '.$course_id.' AND blog_name="'.Database::escape_string($title).'" AND blog_subtitle="'.Database::escape_string($subtitle).'";';
$res=Database::query($sql);
$info_count=Database::result($res,0,0);
$course_id = api_get_course_int_id();
$info_count=Database::result($res,0,0);
if ($info_count==0) {
// Create the blog
@ -150,9 +152,12 @@ class Blog {
// Table definitions
$tbl_blogs = Database::get_course_table(TABLE_BLOGS);
$tbl_tool = Database::get_course_table(TABLE_TOOL_LIST);
$course_id = api_get_course_int_id();
// Update the blog
$sql = "UPDATE $tbl_blogs SET blog_name = '".Database::escape_string($title)."', blog_subtitle = '".Database::escape_string($subtitle)."' WHERE blog_id ='".Database::escape_string((int)$blog_id)."' LIMIT 1";
$sql = "UPDATE $tbl_blogs SET blog_name = '".Database::escape_string($title)."', blog_subtitle = '".Database::escape_string($subtitle)."'
WHERE c_id = $course_id AND blog_id ='".Database::escape_string((int)$blog_id)."' LIMIT 1";
Database::query($sql);
$this_blog_id = Database::insert_id();
@ -160,7 +165,7 @@ class Blog {
api_item_property_update(api_get_course_info(), TOOL_BLOGS, Database::escape_string($blog_id), 'BlogUpdated', api_get_user_id());
// Update course homepage link
$sql = "UPDATE $tbl_tool SET name = '".Database::escape_string($title)."' WHERE link = 'blog/blog.php?blog_id=".Database::escape_string((int)$blog_id)."' LIMIT 1";
$sql = "UPDATE $tbl_tool SET name = '".Database::escape_string($title)."' WHERE c_id = $course_id AND link = 'blog/blog.php?blog_id=".Database::escape_string((int)$blog_id)."' LIMIT 1";
Database::query($sql);
}
@ -178,32 +183,34 @@ class Blog {
$tbl_tool = Database::get_course_table(TABLE_TOOL_LIST);
$tbl_blogs_rating = Database::get_course_table(TABLE_BLOGS_RATING);
$tbl_blogs_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT);
$course_id = api_get_course_int_id();
// Delete posts from DB and the attachments
delete_all_blog_attachment($blog_id);
//Delete comments
$sql = "DELETE FROM $tbl_blogs_comment WHERE blog_id ='".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_blogs_comment WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."'";
Database::query($sql);
// Delete posts
$sql = "DELETE FROM $tbl_blogs_posts WHERE blog_id ='".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_blogs_posts WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."'";
Database::query($sql);
// Delete tasks
$sql = "DELETE FROM $tbl_blogs_tasks WHERE blog_id ='".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_blogs_tasks WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."'";
Database::query($sql);
// Delete ratings
$sql = "DELETE FROM $tbl_blogs_rating WHERE blog_id ='".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_blogs_rating WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."'";
Database::query($sql);
// Delete blog
$sql ="DELETE FROM $tbl_blogs WHERE blog_id ='".(int)$blog_id."'";
$sql ="DELETE FROM $tbl_blogs WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."'";
Database::query($sql);
// Delete from course homepage
$sql = "DELETE FROM $tbl_tool WHERE link = 'blog/blog.php?blog_id=".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_tool WHERE c_id = $course_id AND link = 'blog/blog.php?blog_id=".(int)$blog_id."'";
Database::query($sql);
//update item_property (delete)
@ -294,9 +301,11 @@ class Blog {
public static function edit_post ($post_id, $title, $full_text, $blog_id) {
// Init
$tbl_blogs_posts = Database::get_course_table(TABLE_BLOGS_POSTS);
$course_id = api_get_course_int_id();
// Create the post
$sql = "UPDATE $tbl_blogs_posts SET title = '" . Database::escape_string($title)."', full_text = '" . Database::escape_string($full_text)."' WHERE post_id ='".(int)$post_id."' AND blog_id ='".(int)$blog_id."' LIMIT 1 ;";
$sql = "UPDATE $tbl_blogs_posts SET title = '" . Database::escape_string($title)."', full_text = '" . Database::escape_string($full_text)."'
WHERE c_id = $course_id AND post_id ='".(int)$post_id."' AND blog_id ='".(int)$blog_id."' LIMIT 1 ;";
Database::query($sql);
}
@ -311,17 +320,19 @@ class Blog {
$tbl_blogs_posts = Database::get_course_table(TABLE_BLOGS_POSTS);
$tbl_blogs_comments = Database::get_course_table(TABLE_BLOGS_COMMENTS);
$tbl_blogs_rating = Database::get_course_table(TABLE_BLOGS_RATING);
$course_id = api_get_course_int_id();
// Delete ratings on this comment
$sql = "DELETE FROM $tbl_blogs_rating WHERE blog_id = '".(int)$blog_id."' AND item_id = '".(int)$post_id."' AND rating_type = 'post'";
$sql = "DELETE FROM $tbl_blogs_rating WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND item_id = '".(int)$post_id."' AND rating_type = 'post'";
Database::query($sql);
// Delete the post
$sql = "DELETE FROM $tbl_blogs_posts WHERE post_id = '".(int)$post_id."'";
$sql = "DELETE FROM $tbl_blogs_posts WHERE c_id = $course_id AND post_id = '".(int)$post_id."'";
Database::query($sql);
// Delete the comments
$sql = "DELETE FROM $tbl_blogs_comments WHERE post_id = '".(int)$post_id."' AND blog_id = '".(int)$blog_id."'";
$sql = "DELETE FROM $tbl_blogs_comments WHERE c_id = $course_id AND post_id = '".(int)$post_id."' AND blog_id = '".(int)$blog_id."'";
Database::query($sql);
// Delete posts and attachments
@ -418,16 +429,17 @@ class Blog {
$blog_id = Database::escape_string($blog_id);
$post_id = Database::escape_string($post_id);
$comment_id = Database::escape_string($comment_id);
$course_id = api_get_course_int_id();
delete_all_blog_attachment($blog_id,$post_id,$comment_id);
// Delete ratings on this comment
$sql = "DELETE FROM $tbl_blogs_rating WHERE blog_id = '".(int)$blog_id."' AND item_id = '".(int)$comment_id."' AND rating_type = 'comment'";
$sql = "DELETE FROM $tbl_blogs_rating WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND item_id = '".(int)$comment_id."' AND rating_type = 'comment'";
Database::query($sql);
// select comments that have the selected comment as their parent
$sql = "SELECT comment_id FROM $tbl_blogs_comments WHERE parent_comment_id = '".(int)$comment_id."'";
$sql = "SELECT comment_id FROM $tbl_blogs_comments WHERE c_id = $course_id AND parent_comment_id = '".(int)$comment_id."'";
$result = Database::query($sql);
// Delete them recursively
@ -436,7 +448,7 @@ class Blog {
}
// Finally, delete the selected comment to
$sql = "DELETE FROM $tbl_blogs_comments WHERE comment_id = '".(int)$comment_id."'";
$sql = "DELETE FROM $tbl_blogs_comments WHERE c_id = $course_id AND comment_id = '".(int)$comment_id."'";
Database::query($sql);
}
@ -509,23 +521,24 @@ class Blog {
// Init
$tbl_blogs_tasks = Database::get_course_table(TABLE_BLOGS_TASKS);
$tbl_tasks_permissions = Database::get_course_table(TABLE_BLOGS_TASKS_PERMISSIONS);
$course_id = api_get_course_int_id();
// Create the task
$sql = "UPDATE $tbl_blogs_tasks SET
title = '".Database::escape_string($title)."',
description = '".Database::escape_string($description)."',
color = '".Database::escape_string($color)."'
WHERE task_id ='".(int)$task_id."' LIMIT 1";
WHERE c_id = $course_id AND task_id ='".(int)$task_id."' LIMIT 1";
Database::query($sql);
$tool = 'BLOG_' . $blog_id;
$sql = "DELETE FROM " . $tbl_tasks_permissions . " WHERE task_id = '" . (int)$task_id."'";
$sql = "DELETE FROM " . $tbl_tasks_permissions . " WHERE c_id = $course_id AND task_id = '" . (int)$task_id."'";
Database::query($sql);
$course_id = api_get_course_int_id();
if($articleDelete == 'on') {
if ($articleDelete == 'on') {
$sql = "INSERT INTO " . $tbl_tasks_permissions . " ( c_id, task_id, tool, action) VALUES (
'" . (int)$course_id . "',
'" . (int)$task_id . "',
@ -563,11 +576,11 @@ class Blog {
* @param Integer $task_id
*/
public static function delete_task ($blog_id, $task_id) {
// Init
$tbl_blogs_tasks = Database::get_course_table(TABLE_BLOGS_TASKS);
$course_id = api_get_course_int_id();
// Delete posts
$sql = "DELETE FROM $tbl_blogs_tasks WHERE blog_id = '".(int)$blog_id."' AND task_id = '".(int)$task_id."'";
$sql = "DELETE FROM $tbl_blogs_tasks WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND task_id = '".(int)$task_id."'";
Database::query($sql);
}
@ -577,10 +590,11 @@ class Blog {
* @param Integer $assignment_id
*/
public static function delete_assigned_task ($blog_id, $task_id,$user_id) {
// Init
$tbl_blogs_tasks_rel_user = Database::get_course_table(TABLE_BLOGS_TASKS_REL_USER);
$course_id = api_get_course_int_id();
// Delete posts
$sql = "DELETE FROM $tbl_blogs_tasks_rel_user WHERE blog_id = '".(int)$blog_id."' AND task_id = '".(int)$task_id."' AND user_id = '".(int)$user_id."'";
$sql = "DELETE FROM $tbl_blogs_tasks_rel_user WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND task_id = '".(int)$task_id."' AND user_id = '".(int)$user_id."'";
Database::query($sql);
}
@ -644,7 +658,7 @@ class Blog {
$course_id = api_get_course_int_id();
// Get blog properties
$sql = "SELECT blog_name, visibility FROM $tbl_blogs WHERE blog_id='".(int)$blog_id."'";
$sql = "SELECT blog_name, visibility FROM $tbl_blogs WHERE c_id = $course_id AND blog_id='".(int)$blog_id."'";
$result = Database::query($sql);
$blog = Database::fetch_array($result);
$visibility = $blog['visibility'];
@ -653,16 +667,16 @@ class Blog {
if($visibility == 1)
{
// Change visibility state, remove from course home.
$sql = "UPDATE $tbl_blogs SET visibility = '0' WHERE blog_id ='".(int)$blog_id."' LIMIT 1";
$sql = "UPDATE $tbl_blogs SET visibility = '0' WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."' LIMIT 1";
$result = Database::query($sql);
$sql = "DELETE FROM $tbl_tool WHERE name = '".Database::escape_string($title)."' LIMIT 1";
$sql = "DELETE FROM $tbl_tool WHERE c_id = $course_id AND name = '".Database::escape_string($title)."' LIMIT 1";
$result = Database::query($sql);
}
else
{
// Change visibility state, add to course home.
$sql = "UPDATE $tbl_blogs SET visibility = '1' WHERE blog_id ='".(int)$blog_id."' LIMIT 1";
$sql = "UPDATE $tbl_blogs SET visibility = '1' WHERE c_id = $course_id AND blog_id ='".(int)$blog_id."' LIMIT 1";
$result = Database::query($sql);
$sql = "INSERT INTO $tbl_tool (c_id, name, link, image, visibility, admin, address, added_tool, target )
@ -704,7 +718,7 @@ class Blog {
}
while($blog_post = Database::fetch_array($result)) {
// Get number of comments
$sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE blog_id = '".(int)$blog_id."' AND post_id = '" . (int)$blog_post['post_id']."'";
$sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND post_id = '" . (int)$blog_post['post_id']."'";
$tmp = Database::query($sql);
$blog_post_comments = Database::fetch_array($tmp);
@ -829,7 +843,7 @@ class Blog {
$blog_post = Database::fetch_array($result);
// Get number of comments
$sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE blog_id = '".(int)$blog_id."' AND post_id = '".(int)$post_id."'";
$sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND post_id = '".(int)$post_id."'";
$result = Database::query($sql);
$blog_post_comments = Database::fetch_array($result);
@ -913,7 +927,8 @@ class Blog {
// Check if the user has already rated this post/comment
$sql = "SELECT rating_id FROM $tbl_blogs_rating
WHERE blog_id = '".(int)$blog_id."'
WHERE c_id = $course_id AND
blog_id = '".(int)$blog_id."'
AND item_id = '".(int)$item_id."'
AND rating_type = '".Database::escape_string($type)."'
AND user_id = '".(int)$_user['user_id']."'";
@ -943,9 +958,10 @@ class Blog {
*/
public static function display_rating ($type, $blog_id, $item_id) {
$tbl_blogs_rating = Database::get_course_table(TABLE_BLOGS_RATING);
$course_id = api_get_course_int_id();
// Calculate rating
$sql = "SELECT AVG(rating) as rating FROM $tbl_blogs_rating WHERE blog_id = '".(int)$blog_id."' AND item_id = '".(int)$item_id."' AND rating_type = '".Database::escape_string($type)."' ";
$sql = "SELECT AVG(rating) as rating FROM $tbl_blogs_rating WHERE c_id = $course_id AND blog_id = '".(int)$blog_id."' AND item_id = '".(int)$item_id."' AND rating_type = '".Database::escape_string($type)."' ";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return round($result['rating'], 2);
@ -963,15 +979,15 @@ class Blog {
*/
public static function display_rating_form ($type, $blog_id, $post_id, $comment_id = NULL) {
global $_user;
// Init
$tbl_blogs_rating = Database::get_course_table(TABLE_BLOGS_RATING);
$course_id = api_get_course_int_id();
if($type == 'post')
{
// Check if the user has already rated this post
$sql = "SELECT rating_id FROM $tbl_blogs_rating
WHERE blog_id = '".(int)$blog_id."'
WHERE c_id = $course_id AND
blog_id = '".(int)$blog_id."'
AND item_id = '".(int)$post_id."'
AND rating_type = '".Database::escape_string($type)."'
AND user_id = '".(int)$_user['user_id']."'";
@ -990,7 +1006,7 @@ class Blog {
{
// Check if the user has already rated this comment
$sql = "SELECT rating_id FROM $tbl_blogs_rating
WHERE blog_id = '".(int)$blog_id ."'
WHERE c_id = $course_id AND blog_id = '".(int)$blog_id ."'
AND item_id = '".(int)$comment_id."'
AND rating_type = '".Database::escape_string($type)."'
AND user_id = '".(int)$_user['user_id']."'";
@ -1025,13 +1041,12 @@ class Blog {
$course_id = api_get_course_int_id();
// Select top level comments
$next_level = $current_level + 1;
$sql = "SELECT comments.*, user.lastname, user.firstname, task.color
$next_level = $current_level + 1;
$sql = "SELECT comments.*, user.lastname, user.firstname, task.color
FROM $tbl_blogs_comments comments
INNER JOIN $tbl_users user ON comments.author_id = user.user_id
LEFT JOIN $tbl_blogs_tasks task ON comments.task_id = task.task_id
WHERE comments.c_id = $course_id AND
task.c_id = $course_id AND
LEFT JOIN $tbl_blogs_tasks task ON comments.task_id = task.task_id AND task.c_id = $course_id
WHERE comments.c_id = $course_id AND
parent_comment_id = $current AND
comments.blog_id = '".(int)$blog_id."' AND
comments.post_id = '".(int)$post_id."'";
@ -1552,12 +1567,13 @@ class Blog {
* @author Toon Keppens
*
*/
public static function display_edit_task_form ($blog_id, $task_id) {
// Init
public static function display_edit_task_form ($blog_id, $task_id) {
$tbl_blogs_tasks = Database::get_course_table(TABLE_BLOGS_TASKS);
$course_id = api_get_course_int_id();
$colors = array('FFFFFF','FFFF99','FFCC99','FF9933','FF6699','CCFF99','CC9966','66FF00', '9966FF', 'CF3F3F', '990033','669933','0033FF','003366','000000');
$sql = "SELECT blog_id, task_id, title, description, color FROM $tbl_blogs_tasks WHERE task_id = '".(int)$task_id."'";
$sql = "SELECT blog_id, task_id, title, description, color FROM $tbl_blogs_tasks WHERE c_id = $course_id AND task_id = '".(int)$task_id."'";
$result = Database::query($sql);
$task = Database::fetch_array($result);
@ -1577,17 +1593,13 @@ class Blog {
/* edit by Kevin Van Den Haute (kevin@develop-it.be) */
$tbl_tasks_permissions = Database::get_course_table(TABLE_BLOGS_TASKS_PERMISSIONS);
$sql = "
SELECT
id,
action
FROM " . $tbl_tasks_permissions . "
WHERE task_id = '" . (int)$task_id."'";
$sql = " SELECT id, action FROM " . $tbl_tasks_permissions . "
WHERE c_id = $course_id AND task_id = '" . (int)$task_id."'";
$result = Database::query($sql);
$arrPermissions = array();
while($row = @Database::fetch_array($result))
while ($row = Database::fetch_array($result))
$arrPermissions[] = $row['action'];
echo "\t" . '<tr>' . "\n";
@ -1816,7 +1828,7 @@ class Blog {
$sql = "
SELECT user.user_id, user.firstname, user.lastname
FROM $tbl_users user
INNER JOIN $tbl_blogs_rel_user blogs_rel_user O user.user_id = blogs_rel_user.user_id
INNER JOIN $tbl_blogs_rel_user blogs_rel_user ON user.user_id = blogs_rel_user.user_id
WHERE blogs_rel_user.c_id = $course_id AND blogs_rel_user.blog_id = '".(int)$blog_id."'";
$result = Database::query($sql);
@ -2162,7 +2174,7 @@ class Blog {
//Link to register users
if($a_infosUser["user_id"] != $_SESSION['_user']['user_id'])
{
$row[] = "<a href=\"" .api_get_self()."?action=manage_members&amp;blog_id=$blog_id&amp;register=yes&amp;user_id=" . $a_infosUser["user_id"]."\">" . get_lang('Register')."</a>";
$row[] = "<a class=\"a_button orange small \" href=\"" .api_get_self()."?action=manage_members&amp;blog_id=$blog_id&amp;register=yes&amp;user_id=" . $a_infosUser["user_id"]."\">" . get_lang('Register')."</a>";
}
else
{
@ -2274,7 +2286,7 @@ class Blog {
//Link to register users
if($myrow["user_id"] != $_user['user_id']) {
$row[] = "<a href=\"" .api_get_self()."?action=manage_members&amp;blog_id=$blog_id&amp;unregister=yes&amp;user_id=" . $myrow[user_id]."\">" . get_lang('UnRegister')."</a>";
$row[] = "<a class=\"a_button gray small \" href=\"" .api_get_self()."?action=manage_members&amp;blog_id=$blog_id&amp;unregister=yes&amp;user_id=" . $myrow[user_id]."\">" . get_lang('UnRegister')."</a>";
} else {
$row[] = '';
}
@ -2316,7 +2328,7 @@ class Blog {
echo '<br />';
// Integration of patricks permissions system.
require_once(api_get_path(SYS_CODE_PATH).'permissions/blog_permissions.inc.php');
require_once api_get_path(SYS_CODE_PATH).'permissions/blog_permissions.inc.php';
}
/**

@ -15,7 +15,9 @@ $rights_blog=array("article_add","article_delete","article_edit","article_rate",
$course_tool_table = Database::get_course_table(TABLE_TOOL_LIST);
// Get all user
$blog_users = Blog::get_blog_users(Database::escape_string($_GET['blog_id']));
$blog_users = Blog::get_blog_users($_GET['blog_id']);
$course_id = api_get_course_int_id();
// Remove the blog creater because he has all the rights automatically
// and we want to keep it that way.
@ -34,9 +36,7 @@ if ($mainUserInfo['status']==1)
include_once('permissions_functions.inc.php');
include_once(api_get_path(LIBRARY_PATH) . "/groupmanager.lib.php");
// ---------------------------------------------------
// ACTIONS
// ---------------------------------------------------
if (isset($_GET['do']))
{
if ( isset($_GET['permission']) AND isset($_GET['tool']) AND ($_GET['do']=='grant' OR $_GET['do']=='revoke'))
@ -59,8 +59,7 @@ if (isset($result_message))
// ------------------------------------------------------------------
// RETRIEVING THE PERMISSIONS OF THE ROLES OF THE USER
// ------------------------------------------------------------------
if (api_get_setting('user_roles')=='true')
{
if (api_get_setting('user_roles')=='true') {
// course roles that are assigned to the user
$current_user_role_permissions_of_user=get_roles_permissions('user',$user_id);
$inherited_permissions=permission_array_merge($inherited_permissions,$current_user_role_permissions_of_user);
@ -167,12 +166,8 @@ foreach ($blog_users as $user_id => $user_name) // $blog_users contains all the
echo "</table>\n";
echo "</form><br />";
// ---------------------------------------------------
// LEGEND
// ---------------------------------------------------
echo '<strong>'.get_lang('Legend').'</strong><br />';
echo '<img src="../img/wrong.gif" /> '.get_lang('UserHasPermissionNot').'<br />';
echo '<img src="../img/checkbox_on2.gif" /> '.get_lang('UserHasPermission').'<br />';
echo '<img src="../img/checkbox_on3.gif" /> '.get_lang('UserHasPermissionByRoleGroup').'<br />';
?>
echo '<img src="../img/checkbox_on3.gif" /> '.get_lang('UserHasPermissionByRoleGroup').'<br />';

@ -22,8 +22,9 @@
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function store_permissions($content, $id)
{
function store_permissions($content, $id) {
$course_id = api_get_course_int_id();
// Which database are we using (depending on the $content parameter)
if($content=='user')
{
@ -42,7 +43,7 @@ function store_permissions($content, $id)
}
// We first delete all the existing permissions for that user/group/role
$sql="DELETE FROM $table WHERE $id_field = '".Database::escape_string($id)."'";
$sql="DELETE FROM $table WHERE c_id = $course_id AND $id_field = '".Database::escape_string($id)."'";
$result=Database::query($sql);
// looping through the post values to find the permission (containing the string permission* )
@ -51,10 +52,8 @@ function store_permissions($content, $id)
if(strstr($key,"permission*"))
{
list($brol,$tool,$action)=explode("*",$key);
$sql="INSERT INTO $table ($id_field,tool,action) VALUES ('".Database::escape_string($id)."','".Database::escape_string($tool)."','".Database::escape_string($action)."')";
$sql="INSERT INTO $table (c_id, $id_field,tool,action) VALUES ($course_id, '".Database::escape_string($id)."','".Database::escape_string($tool)."','".Database::escape_string($action)."')";
$result=Database::query($sql);
}
}
return get_lang('PermissionsStored');
@ -70,9 +69,9 @@ function store_permissions($content, $id)
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function store_one_permission($content, $action, $id, $tool,$permission)
{
function store_one_permission($content, $action, $id, $tool,$permission) {
global $rights_full;
$course_id = api_get_course_int_id();
// for some reason I don't know, he can't get to the $rights_full array, so commented the following lines out.
// check
@ -99,9 +98,8 @@ function store_one_permission($content, $action, $id, $tool,$permission)
}
// grating a right
if($action=='grant')
{
$sql="INSERT INTO $table ($id_field,tool,action) VALUES ('".Database::escape_string($id)."','".Database::escape_string($tool)."','".Database::escape_string($permission)."')";
if($action=='grant') {
$sql="INSERT INTO $table (c_id, $id_field,tool,action) VALUES ($course_id, '".Database::escape_string($id)."','".Database::escape_string($tool)."','".Database::escape_string($permission)."')";
$result=Database::query($sql);
if($result)
{
@ -110,10 +108,9 @@ function store_one_permission($content, $action, $id, $tool,$permission)
}
if($action=='revoke')
{
$sql="DELETE FROM $table WHERE $id_field = '".Database::escape_string($id)."' AND tool='".Database::escape_string($tool)."' AND action='".Database::escape_string($permission)."'";
$sql="DELETE FROM $table WHERE c_id = $course_id AND $id_field = '".Database::escape_string($id)."' AND tool='".Database::escape_string($tool)."' AND action='".Database::escape_string($permission)."'";
$result=Database::query($sql);
if($result)
{
if($result) {
$result_message=get_lang('PermissionRevoked');
}
}
@ -127,42 +124,43 @@ function store_one_permission($content, $action, $id, $tool,$permission)
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function get_permissions($content, $id)
{
function get_permissions($content, $id) {
$course_id = api_get_course_int_id();
$currentpermissions=array();
// Which database are we using (depending on the $content parameter)
$course_id_condition = " c_id = $course_id AND ";
if($content == 'user')
{
$table=Database::get_course_table(TABLE_PERMISSION_USER);
$id_field = user_id;
$id_field = 'user_id';
}
elseif($content == 'group')
{
$table=Database::get_course_table(TABLE_PERMISSION_GROUP);
$id_field = group_id;
$id_field = 'group_id';
}
elseif($content == 'role')
{
$table=Database::get_course_table(TABLE_ROLE_PERMISSION);
$id_field = role_id;
$id_field = 'role_id';
}
elseif($content == 'platform_role')
{
$table=Database::get_main_table(TABLE_ROLE_PERMISSION);
$id_field = role_id;
$id_field = 'role_id';
$course_id_condition = '';
}
elseif($content == 'task')
{
$table=Database::get_course_table(TABLE_BLOGS_TASKS_PERMISSIONS);
$id_field = task_id;
$id_field = 'task_id';
}
// finding all the permissions. We store this in a multidimensional array
// where the first dimension is the tool.
$sql="
SELECT * FROM " . $table . "
WHERE " . $id_field . "='" . Database::escape_string($id) . "'";
WHERE $course_id_condition " . $id_field . "='" . Database::escape_string($id) . "'";
$result = Database::query($sql);
while($row = Database::fetch_array($result))
@ -414,6 +412,7 @@ function display_image_matrix_for_blogs($permission_array, $user_id, $tool, $per
function display_role_list($current_course_roles, $current_platform_roles)
{
global $setting_visualisation;
$course_id = api_get_course_int_id();
$coures_roles_table=Database::get_course_table(TABLE_ROLE);
$platform_roles_table=Database::get_main_table(TABLE_ROLE);
@ -448,7 +447,7 @@ function display_role_list($current_course_roles, $current_platform_roles)
}
*/
// course roles
$sql="SELECT * FROM $coures_roles_table";
$sql="SELECT * FROM $coures_roles_table WHERE c_id = $course_id ";
$result=Database::query($sql);
while ($row=Database::fetch_array($result))
{
@ -488,8 +487,9 @@ function display_role_list($current_course_roles, $current_platform_roles)
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function get_roles($content,$id, $scope='course')
{
function get_roles($content,$id, $scope='course') {
$course_id = api_get_course_int_id();
if($content=='user')
{
$table=Database::get_course_table(TABLE_ROLE_USER);
@ -498,13 +498,13 @@ function get_roles($content,$id, $scope='course')
if($content=='group')
{
$table=Database::get_course_table(TABLE_ROLE_GROUP);
$id_field = group_id;
$id_field = 'group_id';
}
$table_role=Database::get_course_table(TABLE_ROLE);
$current_roles=array();
//$sql="SELECT role.role_id FROM $table role_group_user, $table_role role WHERE role_group_user.$id_field = '$id' AND role_group_user.role_id=role.role_id AND role_group_user.scope='".$scope."'";$sql="SELECT role.role_id FROM $table role_group_user, $table_role role WHERE role_group_user.$id_field = '$id' AND role_group_user.role_id=role.role_id AND role_group_user.scope='".$scope."'";
$sql="SELECT role_id FROM $table WHERE $id_field = '$id' AND scope='".$scope."'";
$sql="SELECT role_id FROM $table WHERE c_id = $course_id AND $id_field = '$id' AND scope='".$scope."'";
$result=Database::query($sql);
while ($row=Database::fetch_array($result))
{
@ -520,8 +520,10 @@ function get_roles($content,$id, $scope='course')
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function get_all_roles($content='course')
{
function get_all_roles($content='course') {
$course_id = api_get_course_int_id();
$course_id_condition = " WHERE c_id = $course_id ";
if($content=='course')
{
$table_role=Database::get_course_table(TABLE_ROLE);
@ -529,10 +531,11 @@ function get_all_roles($content='course')
if($content=='platform')
{
$table_role=Database::get_main_table(TABLE_ROLE);
$course_id_condition = '';
}
$current_roles=array();
$sql="SELECT * FROM $table_role";
$sql="SELECT * FROM $table_role $course_id_condition ";
$result=Database::query($sql);
while ($row=Database::fetch_array($result))
{
@ -553,18 +556,18 @@ function get_all_roles($content='course')
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
* @version 1.0
*/
function get_roles_permissions($content,$id, $scope='course')
{
function get_roles_permissions($content,$id, $scope='course') {
$course_id = api_get_course_int_id();
if($content == 'user')
{
$table=Database::get_course_table(TABLE_ROLE_USER);
$id_field = user_id;
$id_field = 'user_id';
}
if($content == 'group')
{
$table = Database::get_course_table(TABLE_ROLE_GROUP);
$id_field = group_id;
$id_field = 'group_id';
}
// course roles or platform roles
@ -573,12 +576,15 @@ function get_roles_permissions($content,$id, $scope='course')
{
$table_role = Database::get_course_table(TABLE_ROLE);
$table_role_permissions = Database::get_course_table(TABLE_ROLE_PERMISSION);
$role_condition = " role.c_id = $course_id AND role_permissions.c_id = $course_id AND ";
}
if($scope == 'platform')
{
$table_role = Database::get_main_table(TABLE_ROLE);
$table_role_permissions = Database::get_main_table(TABLE_ROLE_PERMISSION);
$role_condition = '';
}
$current_roles = array();
@ -590,6 +596,8 @@ function get_roles_permissions($content,$id, $scope='course')
" . $table_role . " role,
" . $table_role_permissions . " role_permissions
WHERE
role_group_user.c_id = $course_id AND
$role_condition
role_group_user.scope = '" . $scope . "' AND
role_group_user." . $id_field . " = '" . $id . "' AND
role_group_user.role_id = role.role_id AND
@ -612,18 +620,18 @@ function get_roles_permissions($content,$id, $scope='course')
* @author Patrick Cool <patrick.cool@ugent.be>, Ghent University
*/
function assign_role($content, $action, $id, $role_id, $scope='course')
{
function assign_role($content, $action, $id, $role_id, $scope='course') {
$course_id = api_get_course_int_id();
// Which database are we using (depending on the $content parameter)
if($content=='user')
{
$table=Database::get_course_table(TABLE_ROLE_USER);
$id_field = user_id;
$id_field = 'user_id';
}
elseif($content=='group')
{
$table=Database::get_course_table(TABLE_ROLE_GROUP);
$id_field = group_id;
$id_field = 'group_id';
}
else
{
@ -633,7 +641,7 @@ function assign_role($content, $action, $id, $role_id, $scope='course')
// grating a right
if($action=='grant')
{
$sql="INSERT INTO $table (role_id, scope, $id_field) VALUES ('".Database::escape_string($role_id)."','".Database::escape_string($scope)."','".Database::escape_string($id)."')";
$sql="INSERT INTO $table (c_id, role_id, scope, $id_field) VALUES ($course_id, '".Database::escape_string($role_id)."','".Database::escape_string($scope)."','".Database::escape_string($id)."')";
$result=Database::query($sql);
if($result)
{
@ -642,7 +650,7 @@ function assign_role($content, $action, $id, $role_id, $scope='course')
}
if($action=='revoke')
{
$sql="DELETE FROM $table WHERE $id_field = '".Database::escape_string($id)."' AND role_id='".Database::escape_string($role_id)."'";
$sql="DELETE FROM $table WHERE c_id = $course_id AND $id_field = '".Database::escape_string($id)."' AND role_id='".Database::escape_string($role_id)."'";
$result=Database::query($sql);
if($result)
{

@ -48,13 +48,9 @@ $current_user_permissions=array();
$current_user_permissions=get_permissions('user',$user_id);
// ==================================================================
// INHERITED PERMISSIONS (group permissions, user roles, group roles)
// ==================================================================
// ------------------------------------------------------------------
// RETRIEVING THE PERMISSIONS OF THE GROUPS OF THE USER
// ------------------------------------------------------------------
$groups_of_user=array();
$groups_of_user=GroupManager::get_group_ids($_course['real_id'],$user_id);
foreach ($groups_of_user as $group)
@ -70,11 +66,8 @@ foreach ($groups_of_user as $group)
}
$inherited_permissions=$inherited_group_permissions;
// ------------------------------------------------------------------
// RETRIEVING THE PERMISSIONS OF THE ROLES OF THE USER
// ------------------------------------------------------------------
if (api_get_setting('user_roles')=='true')
{
if (api_get_setting('user_roles')=='true') {
// course roles that are assigned to the user
$current_user_role_permissions_of_user=get_roles_permissions('user',$user_id);
$inherited_permissions=permission_array_merge($inherited_permissions,$current_user_role_permissions_of_user);
@ -90,9 +83,7 @@ if (api_get_setting('user_roles')=='true')
$current_user_role_permissions_of_user=get_roles_permissions('user',$user_id, 'platform');
$inherited_permissions=permission_array_merge($inherited_permissions,$current_user_role_permissions_of_user);
}
// ------------------------------------------------------------------
// RETRIEVING THE PERMISSIONS OF THE ROLES OF THE GROUPS OF THE USER
// ------------------------------------------------------------------
if (api_get_setting('group_roles')=='true')
{
// NOTE: DIT MOET NOG VERDER UITGEWERKT WORDEN

Loading…
Cancel
Save