Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

pull/2757/head^2
Julio Montoya 7 years ago
commit ca0776ff99
  1. 1
      .travis.yml
  2. 2
      app/Migrations/Schema/V110/Version20150522222222.php
  3. 1
      documentation/changelog.html
  4. 2
      main/admin/index.php
  5. 3
      main/inc/lib/course.lib.php
  6. 27
      main/inc/lib/plugin.class.php
  7. 30
      main/inc/lib/plugin.lib.php
  8. 3
      main/inc/lib/sessionmanager.lib.php
  9. 3
      main/inc/lib/usermanager.lib.php
  10. 2
      main/install/configuration.dist.php
  11. 13
      plugin/ims_lti/ImsLtiPlugin.php
  12. 11
      plugin/studentfollowup/StudentFollowUpPlugin.php

@ -23,6 +23,7 @@ php:
- 7.0
- 7.1
- 7.2
- 7.3
env:
global:

@ -663,7 +663,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
'',
'radio',
'Session',
($value?$value:'false'),
($value?'true':'false'),
'SessionAdminPermissionsLimitTitle',
'SessionAdminPermissionsLimitComment',
null,

@ -120,6 +120,7 @@
</ul>
<h3>Possibly breaking changes</h3>
<ul aria-role="log" aria-live="off">
<li>[2018-12-12] (<a href="https://github.com/chamilo/chamilo-lms/commit/a681bf55eac1742d1e4fca865f52679286b745b8">a681bf55</a>) <a href="https://github.com/chamilo/chamilo-lms/issues/2708">GH#2708</a> Remove duplicate from limit_session_admin_role configuration setting</li>
</ul>
<h3>Notable new Features</h3>
<h4>For end-users, teachers and Chamilo admins</h4>

@ -122,7 +122,7 @@ if (api_is_platform_admin()) {
];
if (api_is_session_admin()) {
if (true === api_get_configuration_value('limit_session_admin_role')) {
if ('true' === api_get_setting('limit_session_admin_role')) {
$items = array_filter($items, function (array $item) {
$urls = ['user_list.php', 'user_add.php'];

@ -2408,6 +2408,9 @@ class CourseManager
// To prevent fK mix up on some tables
GroupManager::deleteAllGroupsFromCourse($courseId);
$app_plugin = new AppPlugin();
$app_plugin->performActionsWhenDeletingItem('course', $courseId);
// Delete the course from the database
$sql = "DELETE FROM $table_course WHERE id = $courseId";
Database::query($sql);

@ -992,4 +992,31 @@ class Plugin
return $tool;
}
/**
* Overwrite to perform some actions when deleting a user.
*
* @param int $userId
*/
public function doWhenDeletingUser($userId)
{
}
/**
* Overwrite to perform some actions when deleting a course.
*
* @param int $courseId
*/
public function doWhenDeletingCourse($courseId)
{
}
/**
* Overwrite to perform some actions when deleting a session.
*
* @param int $sessionId
*/
public function doWhenDeletingSession($sessionId)
{
}
}

@ -536,6 +536,36 @@ class AppPlugin
}
}
/**
* Trigger for Plugin::doWhenDeleting[Item] functions
*
* @param string $itemType
* @param int $itemId
*/
public function performActionsWhenDeletingItem($itemType, $itemId)
{
$pluginList = $this->getInstalledPluginListObject();
if (empty($pluginList)) {
return;
}
/** @var Plugin $pluginObj */
foreach ($pluginList as $pluginObj) {
switch ($itemType) {
case 'course':
$pluginObj->doWhenDeletingCourse($itemId);
break;
case 'session':
$pluginObj->doWhenDeletingSession($itemId);
break;
case 'user':
$pluginObj->doWhenDeletingUser($itemId);
break;
}
}
}
/**
* Add the course settings to the course settings form.
*

@ -1808,6 +1808,9 @@ class SessionManager
$sql = "UPDATE $ticket SET session_id = NULL WHERE session_id IN ($id_checked)";
Database::query($sql);
$app_plugin = new AppPlugin();
$app_plugin->performActionsWhenDeletingItem('session', $id_checked);
$sql = "DELETE FROM $tbl_session WHERE id IN ($id_checked)";
Database::query($sql);

@ -917,6 +917,9 @@ class UserManager
Database::query($sql);
}
$app_plugin = new AppPlugin();
$app_plugin->performActionsWhenDeletingItem('user', $user_id);
// Delete user from database
$sql = "DELETE FROM $table_user WHERE id = '".$user_id."'";
Database::query($sql);

@ -411,8 +411,6 @@ ALTER TABLE portfolio_category CHANGE title title LONGTEXT NOT NULL;
//$_configuration['session_admins_edit_courses_content'] = false;
// Adds roles to the system announcements (requires DB change BT#12476)
//$_configuration['system_announce_extra_roles'] = false;
// Limits the features that a session admin has access to from the main admin panel (removes users import and usergroups)
//$_configuration['limit_session_admin_role'] = false;
// Limits that a session admin has access to list users
//$_configuration['limit_session_admin_list_users'] = false;
// Course tools visibility edition in sessions

@ -543,4 +543,17 @@ class ImsLtiPlugin extends Plugin
}
}
}
/**
* Avoid conflict with foreign key when deleting a course
*
* @param int $courseId
*/
public function doWhenDeletingCourse($courseId)
{
$em = Database::getManager();
$em->createQuery('DELETE FROM ChamiloPluginBundle:ImsLti\ImsLtiTool tool WHERE tool.course = :c_id')
->execute(['c_id' => (int) $courseId]);
}
}

@ -240,4 +240,15 @@ class StudentFollowUpPlugin extends Plugin
{
return 20;
}
/**
* @param int $userId
*/
public function doWhenDeletingUser($userId)
{
$userId = (int) $userId;
Database::query("DELETE FROM sfu_post WHERE user_id = $userId");
Database::query("DELETE FROM sfu_post WHERE insert_user_id = $userId");
}
}

Loading…
Cancel
Save