Refactor code

Move UserBundle in CoreBundle
Remove fosuserbundle use native symfony 5 auth
Remove unused sonata code
pull/3262/head
Julio Montoya 5 years ago
parent fc2db7eb9f
commit a57d820968
  1. 3
      composer.json
  2. 1
      config/bundles.php
  3. 4
      config/packages/security.yaml
  4. 8
      public/index.php
  5. 2
      public/main/admin/add_drh_to_user.php
  6. 2
      public/main/admin/course_edit.php
  7. 2
      public/main/admin/user_information.php
  8. 2
      public/main/admin/user_linking_requests.php
  9. 2
      public/main/auth/profile.php
  10. 2
      public/main/auth/reset.php
  11. 2
      public/main/auth/user_mail_confirmation.php
  12. 2
      public/main/inc/ajax/message.ajax.php
  13. 2
      public/main/inc/ajax/session.ajax.php
  14. 6
      public/main/inc/ajax/user_manager.ajax.php
  15. 13
      public/main/inc/global.inc.php
  16. 6
      public/main/inc/lib/CourseChatUtils.php
  17. 4
      public/main/inc/lib/api.lib.php
  18. 4
      public/main/inc/lib/database.lib.php
  19. 2
      public/main/inc/lib/document.lib.php
  20. 6
      public/main/inc/lib/formvalidator/Element/UserAvatar.php
  21. 2
      public/main/inc/lib/formvalidator/FormValidator.class.php
  22. 2
      public/main/inc/lib/groupmanager.lib.php
  23. 22
      public/main/inc/lib/login.lib.php
  24. 48
      public/main/inc/lib/message.lib.php
  25. 2
      public/main/inc/lib/sessionmanager.lib.php
  26. 10
      public/main/inc/lib/skill.lib.php
  27. 6
      public/main/inc/lib/template.lib.php
  28. 2
      public/main/inc/lib/tracking.lib.php
  29. 18
      public/main/inc/lib/usermanager.lib.php
  30. 1
      public/main/inc/lib/userportal.lib.php
  31. 2
      public/main/inc/lib/webservices/Rest.php
  32. 2
      public/main/inc/lib/webservices/WebService.class.php
  33. 6
      public/main/install/install.lib.php
  34. 2
      public/main/lp/learnpath.class.php
  35. 2
      public/main/lp/lp_subscribe_users.php
  36. 2
      public/main/lp/lp_subscribe_users_to_category.php
  37. 2
      public/main/mySpace/works_in_session_report.php
  38. 2
      public/main/portfolio/index.php
  39. 9
      public/main/template/default/user_portal/classic_courses_without_category.html.twig
  40. 2
      public/main/template/default/user_portal/classic_session.html.twig
  41. 2
      public/main/webservices/cm_webservice.php
  42. 12
      public/main/webservices/registration.soap.php
  43. 2
      public/plugin/bbb/admin.php
  44. 2
      public/plugin/buycourses/src/buycourses.ajax.php
  45. 2
      public/plugin/buycourses/src/service_process.php
  46. 2
      public/plugin/grading_electronic/generate.php
  47. 4
      public/plugin/studentfollowup/Entity/CarePost.php
  48. 2
      public/plugin/whispeakauth/WhispeakAuthPlugin.php
  49. 4
      public/plugin/whispeakauth/ajax/record_audio.php
  50. 2
      src/CoreBundle/Component/Editor/Connector.php
  51. 11
      src/CoreBundle/Controller/AccountController.php
  52. 2
      src/CoreBundle/Controller/CourseHomeController.php
  53. 16
      src/CoreBundle/Controller/ResourceController.php
  54. 34
      src/CoreBundle/Controller/SecurityController.php
  55. 2
      src/CoreBundle/Controller/SessionController.php
  56. 4
      src/CoreBundle/Controller/UserController.php
  57. 4
      src/CoreBundle/Entity/AccessUrlRelUser.php
  58. 4
      src/CoreBundle/Entity/Course.php
  59. 4
      src/CoreBundle/Entity/CourseRelUser.php
  60. 4
      src/CoreBundle/Entity/CourseRelUserCatalogue.php
  61. 4
      src/CoreBundle/Entity/CourseRequest.php
  62. 4
      src/CoreBundle/Entity/ExtraFieldSavedSearch.php
  63. 4
      src/CoreBundle/Entity/GradebookCategory.php
  64. 144
      src/CoreBundle/Entity/Group.php
  65. 6
      src/CoreBundle/Entity/Manager/SessionManager.php
  66. 14
      src/CoreBundle/Entity/Manager/SettingsCurrentManager.php
  67. 6
      src/CoreBundle/Entity/Message.php
  68. 4
      src/CoreBundle/Entity/MessageFeedback.php
  69. 4
      src/CoreBundle/Entity/Portfolio.php
  70. 4
      src/CoreBundle/Entity/PortfolioCategory.php
  71. 4
      src/CoreBundle/Entity/Resource/ResourceComment.php
  72. 4
      src/CoreBundle/Entity/Resource/ResourceLink.php
  73. 7
      src/CoreBundle/Entity/Resource/ResourceNode.php
  74. 4
      src/CoreBundle/Entity/Session.php
  75. 4
      src/CoreBundle/Entity/SessionRelCourseRelUser.php
  76. 4
      src/CoreBundle/Entity/SessionRelUser.php
  77. 4
      src/CoreBundle/Entity/SkillRelUser.php
  78. 4
      src/CoreBundle/Entity/SkillRelUserComment.php
  79. 198
      src/CoreBundle/Entity/User.php
  80. 4
      src/CoreBundle/Entity/UsergroupRelUser.php
  81. 3
      src/CoreBundle/EventListener/LegacyListener.php
  82. 3
      src/CoreBundle/EventListener/LoginSuccessHandler.php
  83. 2
      src/CoreBundle/EventListener/OnlineListener.php
  84. 4
      src/CoreBundle/Form/ProfileFosUserType.php
  85. 4
      src/CoreBundle/Form/ProfileType.php
  86. 4
      src/CoreBundle/Form/SessionType.php
  87. 4
      src/CoreBundle/Form/Type/CourseType.php
  88. 20
      src/CoreBundle/Framework/Container.php
  89. 2
      src/CoreBundle/Menu/MenuVoter.php
  90. 2
      src/CoreBundle/Repository/CourseRepository.php
  91. 2
      src/CoreBundle/Repository/GridInterface.php
  92. 4
      src/CoreBundle/Repository/GroupRepository.php
  93. 2
      src/CoreBundle/Repository/IllustrationRepository.php
  94. 2
      src/CoreBundle/Repository/MessageRepository.php
  95. 2
      src/CoreBundle/Repository/PersonalFileRepository.php
  96. 4
      src/CoreBundle/Repository/ResourceRepository.php
  97. 2
      src/CoreBundle/Repository/SkillRepository.php
  98. 2
      src/CoreBundle/Repository/TemplatesRepository.php
  99. 2
      src/CoreBundle/Repository/TrackECourseAccessRepository.php
  100. 43
      src/CoreBundle/Repository/UserRepository.php
  101. Some files were not shown because too many files have changed in this diff Show More

@ -117,7 +117,7 @@
"paragonie/random-lib": "~2.0", "paragonie/random-lib": "~2.0",
"patchwork/utf8": "~1.3", "patchwork/utf8": "~1.3",
"pagerfanta/pagerfanta": "~2.0", "pagerfanta/pagerfanta": "~2.0",
"php": "^7.2.5", "php": "^7.3",
"php-ffmpeg/php-ffmpeg": "~0.14", "php-ffmpeg/php-ffmpeg": "~0.14",
"phpoffice/phpspreadsheet": "~1.9", "phpoffice/phpspreadsheet": "~1.9",
"phpoffice/phpword": "~0.16", "phpoffice/phpword": "~0.16",
@ -165,6 +165,7 @@
"symfony/browser-kit": "^4.0|^5.0", "symfony/browser-kit": "^4.0|^5.0",
"symfony/css-selector": "^5.0", "symfony/css-selector": "^5.0",
"symfony/debug-pack": "*", "symfony/debug-pack": "*",
"symfony/maker-bundle": "^1.15",
"symfony/phpunit-bridge": "^5.0", "symfony/phpunit-bridge": "^5.0",
"symfony/profiler-pack": "*", "symfony/profiler-pack": "*",
"symfony/test-pack": "*", "symfony/test-pack": "*",

@ -41,4 +41,5 @@ return [
Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true], Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true], ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
]; ];

@ -12,7 +12,6 @@ security:
entity: entity:
class: Chamilo\CoreBundle\Entity\User class: Chamilo\CoreBundle\Entity\User
access_control: access_control:
- {path: ^/administrator, role: ROLE_ADMIN} - {path: ^/administrator, role: ROLE_ADMIN}
- {path: ^/efconnect, role: ROLE_USER} - {path: ^/efconnect, role: ROLE_USER}
@ -65,6 +64,9 @@ security:
guard: guard:
authenticators: authenticators:
- Chamilo\CoreBundle\Security\LoginFormAuthenticator - Chamilo\CoreBundle\Security\LoginFormAuthenticator
- Chamilo\CoreBundle\Security\TokenAuthenticator
entry_point: Chamilo\CoreBundle\Security\LoginFormAuthenticator
remember_me: remember_me:
secret: '%secret%' secret: '%secret%'
lifetime: 604800 # 1 week in seconds lifetime: 604800 # 1 week in seconds

@ -9,20 +9,20 @@ require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) { if ($_SERVER['APP_DEBUG']) {
umask(0000); umask(0000);
Debug::enable(); Debug::enable();
} }
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) { if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
} }
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) { if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]); Request::setTrustedHosts([$trustedHosts]);
} }
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
//$request = Request::createFromGlobals(); $request = Request::createFromGlobals();
$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals('host_with_path_by_locale');
$response = $kernel->handle($request); $response = $kernel->handle($request);
$response->send(); $response->send();
$kernel->terminate($request, $response); $kernel->terminate($request, $response);

@ -3,7 +3,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\UserRelUser; use Chamilo\CoreBundle\Entity\UserRelUser;
use Chamilo\UserBundle\Entity\User as UserEntity; use Chamilo\CoreBundle\Entity\User as UserEntity;
$cidReset = true; $cidReset = true;

@ -5,7 +5,7 @@
use Chamilo\CoreBundle\Entity\CourseCategory; use Chamilo\CoreBundle\Entity\CourseCategory;
use Chamilo\CoreBundle\Repository\CourseCategoryRepository; use Chamilo\CoreBundle\Repository\CourseCategoryRepository;
use Chamilo\CoreBundle\Repository\CourseRepository; use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
$cidReset = true; $cidReset = true;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\UserRelUser; use Chamilo\CoreBundle\Entity\UserRelUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Script showing information about a user (name, e-mail, courses and sessions). * Script showing information about a user (name, e-mail, courses and sessions).

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\UserRelUser; use Chamilo\CoreBundle\Entity\UserRelUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
$cidReset = true; $cidReset = true;

@ -3,7 +3,7 @@
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Hook\HookUpdateUser; use Chamilo\CoreBundle\Hook\HookUpdateUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
/** /**

@ -35,7 +35,7 @@ if ($form->validate()) {
$password = $values['pass1']; $password = $values['pass1'];
$token = $values['token']; $token = $values['token'];
/** @var \Chamilo\UserBundle\Entity\User $user */ /** @var \Chamilo\CoreBundle\Entity\User $user */
$user = UserManager::getManager()->findUserByConfirmationToken($token); $user = UserManager::getManager()->findUserByConfirmationToken($token);
if ($user) { if ($user) {
if (!$user->isPasswordRequestNonExpired($ttl)) { if (!$user->isPasswordRequestNonExpired($ttl)) {

@ -9,7 +9,7 @@ if (!ctype_alnum($token)) {
$token = ''; $token = '';
} }
/** @var \Chamilo\UserBundle\Entity\User $user */ /** @var \Chamilo\CoreBundle\Entity\User $user */
$user = UserManager::getManager()->findUserByConfirmationToken($token); $user = UserManager::getManager()->findUserByConfirmationToken($token);
if ($user) { if ($user) {

@ -1,7 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
$_dont_save_user_course_access = true; $_dont_save_user_course_access = true;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Responses to AJAX calls. * Responses to AJAX calls.

@ -1,7 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
@ -171,8 +171,8 @@ switch ($action) {
if (!empty($user_id)) { if (!empty($user_id)) {
$user_table = Database::get_main_table(TABLE_MAIN_USER); $user_table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "UPDATE $user_table $sql = "UPDATE $user_table
SET active = '".$status."' SET active = '".$status."'
WHERE user_id = '".$user_id."'"; WHERE user_id = '".$user_id."'";
$result = Database::query($sql); $result = Database::query($sql);

@ -1,6 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Symfony\Component\ErrorHandler\Debug;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Patchwork\Utf8\Bootup; use Patchwork\Utf8\Bootup;
use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\Dotenv\Dotenv;
@ -31,10 +32,11 @@ try {
} }
$env = $_SERVER['APP_ENV'] ?? 'dev'; $env = $_SERVER['APP_ENV'] ?? 'dev';
//Debug::enable();
$kernel = new Chamilo\Kernel($env, true); $kernel = new Chamilo\Kernel($env, true);
// Loading Request from Sonata. In order to use Sonata Pages Bundle. // Loading Request from Sonata. In order to use Sonata Pages Bundle.
$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals('host_with_path_by_locale'); $request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
//$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals('host_with_path_by_locale');
// This 'load_legacy' variable is needed to know that symfony is loaded using old style legacy mode, // This 'load_legacy' variable is needed to know that symfony is loaded using old style legacy mode,
// and not called from a symfony controller from public/ // and not called from a symfony controller from public/
@ -58,7 +60,8 @@ try {
exit; exit;
} }
$newBaseUrl = substr($currentBaseUrl, 0, $pos - 1); $newBaseUrl = substr($currentBaseUrl, 0, $pos - 1);
$request->setBaseUrl($newBaseUrl);
//$request->setBaseUrl($newBaseUrl);
$context->setBaseUrl($newBaseUrl); $context->setBaseUrl($newBaseUrl);
$container = $kernel->getContainer(); $container = $kernel->getContainer();
@ -96,10 +99,10 @@ try {
} }
define('DEFAULT_DOCUMENT_QUOTA', $default_quota);*/ define('DEFAULT_DOCUMENT_QUOTA', $default_quota);*/
} catch (Exception $e) { } catch (Exception $e) {
/*echo $e->getMessage(); exit; echo $e->getMessage();
var_dump($e->getMessage()); var_dump($e->getMessage());
var_dump($e->getCode()); var_dump($e->getCode());
var_dump($e->getLine()); var_dump($e->getLine());
echo $e->getTraceAsString(); echo $e->getTraceAsString();
exit;*/ //exit;*/
} }

@ -11,7 +11,7 @@ use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CChatConnected; use Chamilo\CourseBundle\Entity\CChatConnected;
use Chamilo\CourseBundle\Entity\CChatConversation; use Chamilo\CourseBundle\Entity\CChatConversation;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Michelf\MarkdownExtra; use Michelf\MarkdownExtra;
@ -632,7 +632,7 @@ class CourseChatUtils
if ($this->groupId) { if ($this->groupId) {
$students = $em $students = $em
->createQuery( ->createQuery(
'SELECT u FROM ChamiloUserBundle:User u 'SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelUser gru INNER JOIN ChamiloCourseBundle:CGroupRelUser gru
WITH u.id = gru.userId AND gru.cId = :course WITH u.id = gru.userId AND gru.cId = :course
WHERE u.id != :user AND gru.groupId = :group WHERE u.id != :user AND gru.groupId = :group
@ -642,7 +642,7 @@ class CourseChatUtils
->getResult(); ->getResult();
$tutors = $em $tutors = $em
->createQuery( ->createQuery(
'SELECT u FROM ChamiloUserBundle:User u 'SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelTutor grt INNER JOIN ChamiloCourseBundle:CGroupRelTutor grt
WITH u.id = grt.userId AND grt.cId = :course WITH u.id = grt.userId AND grt.cId = :course
WHERE u.id != :user AND grt.groupId = :group WHERE u.id != :user AND grt.groupId = :group

@ -7,7 +7,7 @@ use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Entity\SettingsCurrent; use Chamilo\CoreBundle\Entity\SettingsCurrent;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\Finder;
@ -1541,10 +1541,8 @@ function api_get_user_info(
// Make sure user_id is safe // Make sure user_id is safe
$user_id = (int) $user_id; $user_id = (int) $user_id;
$user = false; $user = false;
if (empty($user_id)) { if (empty($user_id)) {
$userFromSession = Session::read('_user'); $userFromSession = Session::read('_user');
if (isset($userFromSession) && !empty($userFromSession)) { if (isset($userFromSession) && !empty($userFromSession)) {
return $userFromSession; return $userFromSession;
/* /*

@ -35,7 +35,7 @@ class Database
$config->setAutoGenerateProxyClasses(true); $config->setAutoGenerateProxyClasses(true);
$config->setEntityNamespaces( $config->setEntityNamespaces(
[ [
'ChamiloUserBundle' => 'Chamilo\UserBundle\Entity', 'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity',
'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity', 'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity',
'ChamiloCourseBundle' => 'Chamilo\CourseBundle\Entity', 'ChamiloCourseBundle' => 'Chamilo\CourseBundle\Entity',
'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity', 'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity',
@ -650,7 +650,7 @@ class Database
//$path.'src/Chamilo/MediaBundle/Entity', //$path.'src/Chamilo/MediaBundle/Entity',
//$path.'src/Chamilo/PageBundle/Entity', //$path.'src/Chamilo/PageBundle/Entity',
$path.'src/Chamilo/CoreBundle/Entity', $path.'src/Chamilo/CoreBundle/Entity',
$path.'src/Chamilo/UserBundle/Entity', //$path.'src/Chamilo/UserBundle/Entity',
$path.'src/Chamilo/CourseBundle/Entity', $path.'src/Chamilo/CourseBundle/Entity',
$path.'src/Chamilo/TicketBundle/Entity', $path.'src/Chamilo/TicketBundle/Entity',
$path.'src/Chamilo/SkillBundle/Entity', $path.'src/Chamilo/SkillBundle/Entity',

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceLink;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CDocument; use Chamilo\CourseBundle\Entity\CDocument;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;

@ -1,12 +1,12 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Class UserAvatar * Class UserAvatar
* FormValidator element to add an user avatar wrapping a hidden input with its user ID * FormValidator element to add an user avatar wrapping a hidden input with its user ID
* Is necessary set an instance of Chamilo\UserBundle\Entity\User as value. The exported value is the user ID. * Is necessary set an instance of Chamilo\CoreBundle\Entity\User as value. The exported value is the user ID.
*/ */
class UserAvatar extends HTML_QuickForm_input class UserAvatar extends HTML_QuickForm_input
{ {
@ -44,7 +44,7 @@ class UserAvatar extends HTML_QuickForm_input
*/ */
public function setValue($value) public function setValue($value)
{ {
$this->user = !is_a($value, 'Chamilo\UserBundle\Entity\User') $this->user = !is_a($value, 'Chamilo\CoreBundle\Entity\User')
? UserManager::getManager()->find($value) ? UserManager::getManager()->find($value)
: $value; : $value;

@ -1592,7 +1592,7 @@ EOT;
/** /**
* Add an element with user ID and avatar to the form. * Add an element with user ID and avatar to the form.
* It needs a Chamilo\UserBundle\Entity\User as value. The exported value is the Chamilo\UserBundle\Entity\User ID. * It needs a Chamilo\CoreBundle\Entity\User as value. The exported value is the Chamilo\CoreBundle\Entity\User ID.
* *
* @see \UserAvatar * @see \UserAvatar
* *

@ -1337,7 +1337,7 @@ class GroupManager
$em = Database::getManager(); $em = Database::getManager();
$subscriptions = $em $subscriptions = $em
->createQuery(" ->createQuery("
SELECT u.id FROM ChamiloUserBundle:User u SELECT u.id FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelUser gu INNER JOIN ChamiloCourseBundle:CGroupRelUser gu
WITH u.id = gu.userId WITH u.id = gu.userId
INNER JOIN ChamiloCourseBundle:CGroupInfo g INNER JOIN ChamiloCourseBundle:CGroupInfo g

@ -1,7 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
/** /**
@ -391,17 +391,17 @@ class Login
} }
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$query = "SELECT $query = "SELECT
user_id AS uid, user_id AS uid,
lastname AS lastName, lastname AS lastName,
firstname AS firstName, firstname AS firstName,
username AS loginName, username AS loginName,
password, password,
email, email,
status AS status, status AS status,
official_code, official_code,
phone, phone,
picture_uri, picture_uri,
creator_id, creator_id,
auth_source auth_source
FROM $tbl_user FROM $tbl_user

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\Message; use Chamilo\CoreBundle\Entity\Message;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
/** /**
@ -62,7 +62,7 @@ class MessageManager
$sql = "SELECT COUNT(id) as number_messages $sql = "SELECT COUNT(id) as number_messages
FROM $table FROM $table
WHERE WHERE
$conditions $conditions
"; ";
$result = Database::query($sql); $result = Database::query($sql);
@ -182,10 +182,10 @@ class MessageManager
} }
$table = Database::get_main_table(TABLE_MESSAGE); $table = Database::get_main_table(TABLE_MESSAGE);
$sql = "SELECT $sql = "SELECT
id as col0, id as col0,
title as col1, title as col1,
send_date as col2, send_date as col2,
msg_status as col3, msg_status as col3,
user_sender_id user_sender_id
FROM $table FROM $table
@ -338,9 +338,9 @@ class MessageManager
if (!empty($aboutUserInfo)) { if (!empty($aboutUserInfo)) {
$table = Database::get_main_table(TABLE_MESSAGE); $table = Database::get_main_table(TABLE_MESSAGE);
$sql = 'SELECT id FROM '.$table.' $sql = 'SELECT id FROM '.$table.'
WHERE WHERE
user_receiver_id = '.$aboutUserInfo['id'].' AND user_receiver_id = '.$aboutUserInfo['id'].' AND
msg_status = '.MESSAGE_STATUS_CONVERSATION.' msg_status = '.MESSAGE_STATUS_CONVERSATION.'
'; ';
$result = Database::query($sql); $result = Database::query($sql);
$messages = []; $messages = [];
@ -417,12 +417,12 @@ class MessageManager
$message = Database::escape_string($message); $message = Database::escape_string($message);
$sql = "SELECT * FROM $table $sql = "SELECT * FROM $table
WHERE WHERE
user_sender_id = $senderId AND user_sender_id = $senderId AND
user_receiver_id = $receiverId AND user_receiver_id = $receiverId AND
title = '$subject' AND title = '$subject' AND
content = '$message' AND content = '$message' AND
(msg_status = ".MESSAGE_STATUS_UNREAD." OR msg_status = ".MESSAGE_STATUS_NEW.") (msg_status = ".MESSAGE_STATUS_UNREAD." OR msg_status = ".MESSAGE_STATUS_NEW.")
"; ";
$result = Database::query($sql); $result = Database::query($sql);
@ -852,8 +852,8 @@ class MessageManager
} }
$sql = "SELECT * FROM $table $sql = "SELECT * FROM $table
WHERE WHERE
id = $id AND id = $id AND
user_receiver_id = $user_receiver_id AND user_receiver_id = $user_receiver_id AND
msg_status <> ".MESSAGE_STATUS_OUTBOX; msg_status <> ".MESSAGE_STATUS_OUTBOX;
$rs = Database::query($sql); $rs = Database::query($sql);
@ -862,10 +862,10 @@ class MessageManager
// Delete attachment file. // Delete attachment file.
self::delete_message_attachment_file($id, $user_receiver_id); self::delete_message_attachment_file($id, $user_receiver_id);
// Soft delete message. // Soft delete message.
$query = "UPDATE $table $query = "UPDATE $table
SET msg_status = ".MESSAGE_STATUS_DELETED." SET msg_status = ".MESSAGE_STATUS_DELETED."
WHERE WHERE
id = $id AND id = $id AND
user_receiver_id = $user_receiver_id "; user_receiver_id = $user_receiver_id ";
Database::query($query); Database::query($query);
@ -1044,7 +1044,7 @@ class MessageManager
$path_message_attach = $path_user_info['dir'].'message_attachments/'; $path_message_attach = $path_user_info['dir'].'message_attachments/';
if (is_file($path_message_attach.$path)) { if (is_file($path_message_attach.$path)) {
if (rename($path_message_attach.$path, $path_message_attach.$new_path)) { if (rename($path_message_attach.$path, $path_message_attach.$new_path)) {
$sql = "UPDATE $table_message_attach $sql = "UPDATE $table_message_attach
SET path = '$new_path' SET path = '$new_path'
WHERE id = $attach_id "; WHERE id = $attach_id ";
Database::query($sql); Database::query($sql);
@ -1353,8 +1353,8 @@ class MessageManager
} }
$query = "SELECT * FROM $table $query = "SELECT * FROM $table
WHERE WHERE
id = $messageId AND id = $messageId AND
$userCondition $userCondition
msg_status = $status"; msg_status = $status";
$result = Database::query($query); $result = Database::query($query);
@ -2091,8 +2091,8 @@ class MessageManager
$table = Database::get_main_table(TABLE_MESSAGE); $table = Database::get_main_table(TABLE_MESSAGE);
$messageId = (int) $messageId; $messageId = (int) $messageId;
$sql = "SELECT * FROM $table $sql = "SELECT * FROM $table
WHERE WHERE
id = '$messageId' AND id = '$messageId' AND
msg_status <> '".MESSAGE_STATUS_DELETED."' "; msg_status <> '".MESSAGE_STATUS_DELETED."' ";
$res = Database::query($sql); $res = Database::query($sql);
$item = []; $item = [];
@ -2719,7 +2719,7 @@ class MessageManager
return []; return [];
} }
$sql = "SELECT DISTINCT * $sql = "SELECT DISTINCT *
FROM $messagesTable FROM $messagesTable
WHERE WHERE
(user_receiver_id = $userId AND user_sender_id = $otherUserId) OR (user_receiver_id = $userId AND user_sender_id = $otherUserId) OR
@ -2916,7 +2916,7 @@ class MessageManager
} }
$table = Database::get_main_table(TABLE_MESSAGE); $table = Database::get_main_table(TABLE_MESSAGE);
$sql = "SELECT COUNT(id) as count $sql = "SELECT COUNT(id) as count
FROM $table FROM $table
WHERE WHERE
user_receiver_id = $userId AND user_receiver_id = $userId AND

@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\SessionRelCourse;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Entity\SessionRelUser; use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\CoreBundle\Repository\SequenceRepository; use Chamilo\CoreBundle\Repository\SequenceRepository;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ExtraField as ExtraFieldModel; use ExtraField as ExtraFieldModel;
use Monolog\Logger; use Monolog\Logger;

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\Skill as SkillEntity;
use Chamilo\CoreBundle\Entity\SkillRelUser as SkillRelUserEntity; use Chamilo\CoreBundle\Entity\SkillRelUser as SkillRelUserEntity;
use Chamilo\SkillBundle\Entity\SkillRelCourse; use Chamilo\SkillBundle\Entity\SkillRelCourse;
use Chamilo\SkillBundle\Entity\SkillRelItem; use Chamilo\SkillBundle\Entity\SkillRelItem;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Fhaculty\Graph\Graph; use Fhaculty\Graph\Graph;
use Fhaculty\Graph\Vertex; use Fhaculty\Graph\Vertex;
@ -257,7 +257,7 @@ class SkillRelSkill extends Model
public function getDirectParents($skillId) public function getDirectParents($skillId)
{ {
$skillId = (int) $skillId; $skillId = (int) $skillId;
$sql = 'SELECT parent_id as skill_id $sql = 'SELECT parent_id as skill_id
FROM '.$this->table.' FROM '.$this->table.'
WHERE skill_id = '.$skillId; WHERE skill_id = '.$skillId;
$result = Database::query($sql); $result = Database::query($sql);
@ -1825,7 +1825,7 @@ class Skill extends Model
public function getUserSkillRanking($user_id) public function getUserSkillRanking($user_id)
{ {
$user_id = (int) $user_id; $user_id = (int) $user_id;
$sql = "SELECT count(skill_id) count $sql = "SELECT count(skill_id) count
FROM {$this->table} s FROM {$this->table} s
INNER JOIN {$this->table_skill_rel_user} su INNER JOIN {$this->table_skill_rel_user} su
ON (s.id = su.skill_id) ON (s.id = su.skill_id)
@ -2571,8 +2571,8 @@ class Skill extends Model
success: function(result) { success: function(result) {
$("#" +skillId+ ".user_skill").html(result); $("#" +skillId+ ".user_skill").html(result);
} }
}); });
}); });
}); });
</script> </script>
'; ';

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
/** /**
@ -965,7 +965,7 @@ class Template
$em = Database::getManager(); $em = Database::getManager();
$tutors = $em $tutors = $em
->createQuery(' ->createQuery('
SELECT u FROM ChamiloUserBundle:User u SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCoreBundle:SessionRelCourseRelUser scu WITH u.id = scu.user INNER JOIN ChamiloCoreBundle:SessionRelCourseRelUser scu WITH u.id = scu.user
WHERE scu.status = :teacher_status AND scu.session = :session AND scu.course = :course WHERE scu.status = :teacher_status AND scu.session = :session AND scu.course = :course
') ')
@ -996,7 +996,7 @@ class Template
$em = Database::getManager(); $em = Database::getManager();
$teachers = $em $teachers = $em
->createQuery(' ->createQuery('
SELECT u FROM ChamiloUserBundle:User u SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCoreBundle:CourseRelUser cu WITH u.id = cu.user INNER JOIN ChamiloCoreBundle:CourseRelUser cu WITH u.id = cu.user
WHERE cu.status = :teacher_status AND cu.course = :course WHERE cu.status = :teacher_status AND cu.course = :course
') ')

@ -5,7 +5,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField; use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField;
use Chamilo\CoreBundle\Entity\Session as SessionEntity; use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
use CpChart\Cache as pCache; use CpChart\Cache as pCache;
use CpChart\Data as pData; use CpChart\Data as pData;

@ -8,8 +8,8 @@ use Chamilo\CoreBundle\Entity\SkillRelUserComment;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Hook\HookCreateUser; use Chamilo\CoreBundle\Hook\HookCreateUser;
use Chamilo\CoreBundle\Hook\HookUpdateUser; use Chamilo\CoreBundle\Hook\HookUpdateUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Chamilo\UserBundle\Repository\UserRepository; use Chamilo\CoreBundle\Repository\UserRepository;
use ChamiloSession as Session; use ChamiloSession as Session;
/** /**
@ -56,7 +56,7 @@ class UserManager
*/ */
public static function getRepository() public static function getRepository()
{ {
return Container::$container->get('Chamilo\UserBundle\Repository\UserRepository'); return Container::$container->get('Chamilo\CoreBundle\Repository\UserRepository');
} }
/** /**
@ -102,7 +102,7 @@ class UserManager
*/ */
public static function isPasswordValid($encoded, $raw, $salt) public static function isPasswordValid($encoded, $raw, $salt)
{ {
$encoder = new \Chamilo\UserBundle\Security\Encoder(self::getPasswordEncryption()); $encoder = new \Chamilo\CoreBundle\Security\Encoder(self::getPasswordEncryption());
$validPassword = $encoder->isPasswordValid($encoded, $raw, $salt); $validPassword = $encoder->isPasswordValid($encoded, $raw, $salt);
return $validPassword; return $validPassword;
@ -371,7 +371,7 @@ class UserManager
INVITEE => 'INVITEE', INVITEE => 'INVITEE',
]; ];
$group = Container::$container->get('Chamilo\UserBundle\Repository\GroupRepository')->findOneBy(['code' => $statusToGroup[$status]]); $group = Container::$container->get('Chamilo\CoreBundle\Repository\GroupRepository')->findOneBy(['code' => $statusToGroup[$status]]);
if ($group) { if ($group) {
$user->addGroup($group); $user->addGroup($group);
$userManager->updateUser($user); $userManager->updateUser($user);
@ -1197,7 +1197,7 @@ class UserManager
INVITEE => 'INVITEE', INVITEE => 'INVITEE',
]; ];
$group = Container::$container->get('Chamilo\UserBundle\Repository\GroupRepository')->findOneBy(['code' => $statusToGroup[$status]]); $group = Container::$container->get('Chamilo\CoreBundle\Repository\GroupRepository')->findOneBy(['code' => $statusToGroup[$status]]);
if ($group) { if ($group) {
$user->addGroup($group); $user->addGroup($group);
} }
@ -5368,7 +5368,7 @@ class UserManager
Database::query($sql); Database::query($sql);
} }
$group = Container::$container->get('Chamilo\UserBundle\Repository\GroupRepository')->findOneBy(['code' => 'ADMIN']); $group = Container::$container->get('Chamilo\CoreBundle\Repository\GroupRepository')->findOneBy(['code' => 'ADMIN']);
if ($group) { if ($group) {
$user->addGroup($group); $user->addGroup($group);
} }
@ -6604,10 +6604,10 @@ SQL;
{ {
$encryption = self::getPasswordEncryption(); $encryption = self::getPasswordEncryption();
$encoders = [ $encoders = [
'Chamilo\\UserBundle\\Entity\\User' => new \Chamilo\UserBundle\Security\Encoder($encryption), 'Chamilo\\CoreBundle\\Entity\\User' => new \Chamilo\CoreBundle\Security\Encoder($encryption),
]; ];
$encoderFactory = new EncoderFactory($encoders); $encoderFactory = new \Symfony\Component\Security\Core\Encoder\EncoderFactory($encoders);
return $encoderFactory; return $encoderFactory;
} }

@ -1714,7 +1714,6 @@ class IndexManager
isset($session_box['duration']) ? $session_box['duration'] : null isset($session_box['duration']) ? $session_box['duration'] : null
); );
} }
$this->tpl->assign('session', $sessionParams); $this->tpl->assign('session', $sessionParams);
$this->tpl->assign('show_tutor', ('true' === api_get_setting('show_session_coach') ? true : false)); $this->tpl->assign('show_tutor', ('true' === api_get_setting('show_session_coach') ? true : false));
$this->tpl->assign('gamification_mode', $gameModeIsActive); $this->tpl->assign('gamification_mode', $gameModeIsActive);

@ -8,7 +8,7 @@ use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CLpCategory; use Chamilo\CourseBundle\Entity\CLpCategory;
use Chamilo\CourseBundle\Entity\CNotebook; use Chamilo\CourseBundle\Entity\CNotebook;
use Chamilo\CourseBundle\Repository\CNotebookRepository; use Chamilo\CourseBundle\Repository\CNotebookRepository;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Class RestApi. * Class RestApi.

@ -1,7 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Base class for Web Services. * Base class for Web Services.

@ -9,7 +9,7 @@ use Chamilo\CoreBundle\ToolChain;
use Chamilo\TicketBundle\Entity\Category as TicketCategory; use Chamilo\TicketBundle\Entity\Category as TicketCategory;
use Chamilo\TicketBundle\Entity\Priority as TicketPriority; use Chamilo\TicketBundle\Entity\Priority as TicketPriority;
use Chamilo\TicketBundle\Entity\Project as TicketProject; use Chamilo\TicketBundle\Entity\Project as TicketProject;
use Chamilo\UserBundle\Entity\Group; use Chamilo\CoreBundle\Entity\Group;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Sonata\PageBundle\Entity\PageManager; use Sonata\PageBundle\Entity\PageManager;
use Symfony\Component\DependencyInjection\Container as SymfonyContainer; use Symfony\Component\DependencyInjection\Container as SymfonyContainer;
@ -2894,7 +2894,7 @@ function installGroups($container, $manager)
'roles' => ['ROLE_INVITEE'], 'roles' => ['ROLE_INVITEE'],
], ],
]; ];
$repo = $manager->getRepository('ChamiloUserBundle:Group'); $repo = $manager->getRepository('ChamiloCoreBundle:Group');
foreach ($groups as $groupData) { foreach ($groups as $groupData) {
$criteria = ['code' => $groupData['code']]; $criteria = ['code' => $groupData['code']];
$groupExists = $repo->findOneBy($criteria); $groupExists = $repo->findOneBy($criteria);
@ -3313,7 +3313,7 @@ function finishInstallationWithContainer(
); );
error_log('Adding access url as a node'); error_log('Adding access url as a node');
$userManager = $container->get('Chamilo\UserBundle\Repository\UserRepository'); $userManager = $container->get('Chamilo\CoreBundle\Repository\UserRepository');
$urlRepo = $container->get('Chamilo\CoreBundle\Repository\AccessUrlRepository'); $urlRepo = $container->get('Chamilo\CoreBundle\Repository\AccessUrlRepository');
$accessUrl = $urlRepo->find(1); $accessUrl = $urlRepo->find(1);

@ -18,7 +18,7 @@ use Chamilo\CourseBundle\Entity\CQuiz;
use Chamilo\CourseBundle\Entity\CShortcut; use Chamilo\CourseBundle\Entity\CShortcut;
use Chamilo\CourseBundle\Entity\CStudentPublication; use Chamilo\CourseBundle\Entity\CStudentPublication;
use Chamilo\CourseBundle\Entity\CTool; use Chamilo\CourseBundle\Entity\CTool;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session; use ChamiloSession as Session;
use Gedmo\Sortable\Entity\Repository\SortableRepository; use Gedmo\Sortable\Entity\Repository\SortableRepository;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;

@ -5,7 +5,7 @@
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Repository\CourseRepository; use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
require_once __DIR__.'/../inc/global.inc.php'; require_once __DIR__.'/../inc/global.inc.php';

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CLpCategory; use Chamilo\CourseBundle\Entity\CLpCategory;
use Chamilo\CourseBundle\Entity\CLpCategoryUser; use Chamilo\CourseBundle\Entity\CLpCategoryUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
require_once __DIR__.'/../inc/global.inc.php'; require_once __DIR__.'/../inc/global.inc.php';

@ -3,7 +3,7 @@
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Courses reporting. * Courses reporting.

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Portfolio; use Chamilo\CoreBundle\Entity\Portfolio;
use Chamilo\CoreBundle\Entity\PortfolioCategory; use Chamilo\CoreBundle\Entity\PortfolioCategory;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
// Make sure we void the course context if we are in the social network section // Make sure we void the course context if we are in the social network section
if (empty($_GET['cidReq'])) { if (empty($_GET['cidReq'])) {

@ -45,19 +45,20 @@
{% endif %} {% endif %}
<h4 class="course-items-title"> <h4 class="course-items-title">
{% if item.visibility == constant('COURSE_VISIBILITY_CLOSED') and not item.current_user_is_teacher %} {% if item.visibility == constant('COURSE_VISIBILITY_CLOSED') and not item.current_user_is_teacher %}
{{ item.title }} {{ item.code_course }} {{ item.title }} {{ item.course_code }}
{% else %} {% else %}
<a href="{{ item.link }}"> <a href="{{ item.link }}">
{{ item.title }} {{ item.code_course }} {{ item.title }} {{ item.course_code }}
</a> </a>
{{ item.notifications }} {{ item.notifications }}
{% if item.is_special_course %} {% if item.is_special_course is defined and item.is_special_course %}
{{ 'klipper.png' | img(22, 'CourseAutoRegister'|get_lang ) }} {{ 'klipper.png' | img(22, 'CourseAutoRegister'|get_lang ) }}
{% endif %} {% endif %}
{% endif %} {% endif %}
</h4> </h4>
<div class="course-items-session"> <div class="course-items-session">
<div class="list-teachers"> <div class="list-teachers">
{% set counter = 0 %}
{% if item.teachers|length > 0 %} {% if item.teachers|length > 0 %}
{{ 'teacher.png' | img(16, 'Professor'|get_lang ) }} {{ 'teacher.png' | img(16, 'Professor'|get_lang ) }}
{% for teacher in item.teachers %} {% for teacher in item.teachers %}
@ -70,7 +71,7 @@
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div> </div>
{% if item.student_info %} {% if item.student_info is defined and item.student_info %}
{% if item.student_info.progress is not null or item.student_info.score is not null or item.student_info.certificate is not null %} {% if item.student_info.progress is not null or item.student_info.score is not null or item.student_info.certificate is not null %}
<div class="course-student-info"> <div class="course-student-info">
<div class="student-info"> <div class="student-info">

@ -1,4 +1,4 @@
{% set session_image = 'window_list.png'|img(32, row.title) %} {% set session_image = 'window_list.png'|img(32, '') %}
{% autoescape false %} {% autoescape false %}
{% for row in session %} {% for row in session %}
<div class="panel panel-default"> <div class="panel panel-default">

@ -1,7 +1,7 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
require_once __DIR__.'/../inc/global.inc.php'; require_once __DIR__.'/../inc/global.inc.php';

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField; use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Hook\HookWSRegistration; use Chamilo\CoreBundle\Hook\HookWSRegistration;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
require_once __DIR__.'/../inc/global.inc.php'; require_once __DIR__.'/../inc/global.inc.php';
$debug = true; $debug = true;
@ -867,7 +867,7 @@ function WSCreateUsersPasswordCrypted($params)
$count_row = Database::num_rows($res); $count_row = Database::num_rows($res);
if ($count_row > 0) { if ($count_row > 0) {
// Check if user is not active. // Check if user is not active.
$sql = "SELECT user_id FROM $table_user $sql = "SELECT user_id FROM $table_user
WHERE user_id ='".$row[1]."' AND active= '0'"; WHERE user_id ='".$row[1]."' AND active= '0'";
$resu = Database::query($sql); $resu = Database::query($sql);
$r_check_user = Database::fetch_row($resu); $r_check_user = Database::fetch_row($resu);
@ -1389,7 +1389,7 @@ function WSCreateUserPasswordCrypted($params)
phone='".Database::escape_string($phone)."', phone='".Database::escape_string($phone)."',
expiration_date='".Database::escape_string($expiration_date)."', expiration_date='".Database::escape_string($expiration_date)."',
active='1', active='1',
hr_dept_id=".intval($hr_dept_id)." hr_dept_id=".intval($hr_dept_id)."
WHERE user_id='".$r_check_user[0]."'"; WHERE user_id='".$r_check_user[0]."'";
Database::query($sql); Database::query($sql);
@ -1459,7 +1459,7 @@ function WSCreateUserPasswordCrypted($params)
phone = '".Database::escape_string($phone)."', phone = '".Database::escape_string($phone)."',
language = '".Database::escape_string($language)."', language = '".Database::escape_string($language)."',
registration_date = '".api_get_utc_datetime()."', registration_date = '".api_get_utc_datetime()."',
roles = 'a:0:{}', roles = 'a:0:{}',
".$queryExpirationDate." ".$queryExpirationDate."
hr_dept_id = '".Database::escape_string($hr_dept_id)."', hr_dept_id = '".Database::escape_string($hr_dept_id)."',
active = '".Database::escape_string($active)."'"; active = '".Database::escape_string($active)."'";
@ -2139,7 +2139,7 @@ function WSEditUserWithPicture($params)
} }
// Check whether username already exits. // Check whether username already exits.
$sql = "SELECT username FROM $table_user $sql = "SELECT username FROM $table_user
WHERE username = '$username' AND id <> $user_id"; WHERE username = '$username' AND id <> $user_id";
$res_un = Database::query($sql); $res_un = Database::query($sql);
$r_username = Database::fetch_row($res_un); $r_username = Database::fetch_row($res_un);
@ -4768,7 +4768,7 @@ function WSSubscribeUserToCourseSimple($params)
error_log('Try to register: user_id= '.$user_id.' to course: '.$course_data['code']); error_log('Try to register: user_id= '.$user_id.' to course: '.$course_data['code']);
} }
if (!CourseManager::subscribeUser($user_id, $course_data['code'], $status, 0, false, false)) { if (!CourseManager::subscribeUser($user_id, $course_data['code'], $status, 0, false, false)) {
$result = 'User was not registered possible reasons: User already registered to the course, $result = 'User was not registered possible reasons: User already registered to the course,
Course visibility doesnt allow user subscriptions '; Course visibility doesnt allow user subscriptions ';
if ($debug) { if ($debug) {
error_log($result); error_log($result);

@ -2,7 +2,7 @@
/* For license terms, see /license.txt */ /* For license terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* This script initiates a video conference session, calling the BigBlueButton API. * This script initiates a video conference session, calling the BigBlueButton API.

@ -5,7 +5,7 @@
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CLp; use Chamilo\CourseBundle\Entity\CLp;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Responses to AJAX calls. * Responses to AJAX calls.

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Process payments for the Buy Courses plugin. * Process payments for the Buy Courses plugin.

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\CourseRelUser; use Chamilo\CoreBundle\Entity\CourseRelUser;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelUser; use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
require_once '../../main/inc/global.inc.php'; require_once '../../main/inc/global.inc.php';

@ -85,13 +85,13 @@ class CarePost
protected $attachment; protected $attachment;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", cascade={"persist"})
* @ORM\JoinColumn(name="insert_user_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="insert_user_id", referencedColumnName="id", nullable=false)
*/ */
private $insertUser; private $insertUser;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/ */
private $user; private $user;

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\ExtraField; use Chamilo\CoreBundle\Entity\ExtraField;
use Chamilo\CoreBundle\Entity\ExtraFieldValues; use Chamilo\CoreBundle\Entity\ExtraFieldValues;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
/** /**
* Class WhispeakAuthPlugin. * Class WhispeakAuthPlugin.

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use FFMpeg\FFMpeg; use FFMpeg\FFMpeg;
use FFMpeg\Format\Audio\Wav; use FFMpeg\Format\Audio\Wav;
@ -37,7 +37,7 @@ $plugin->protectTool(false);
if ($isAuthentify) { if ($isAuthentify) {
$em = Database::getManager(); $em = Database::getManager();
/** @var User|null $user */ /** @var User|null $user */
$user = $em->getRepository('ChamiloUserBundle:User')->findOneBy(['username' => $_POST['username']]); $user = $em->getRepository('ChamiloCoreBundle:User')->findOneBy(['username' => $_POST['username']]);
} else { } else {
/** @var User $user */ /** @var User $user */
$user = api_get_user_entity(api_get_user_id()); $user = api_get_user_entity(api_get_user_id());

@ -7,7 +7,7 @@ namespace Chamilo\CoreBundle\Component\Editor;
use Chamilo\CoreBundle\Component\Editor\Driver\Driver; use Chamilo\CoreBundle\Component\Editor\Driver\Driver;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Symfony\Component\Routing\Router; use Symfony\Component\Routing\Router;
use Symfony\Component\Routing\RouterInterface; use Symfony\Component\Routing\RouterInterface;

@ -5,13 +5,13 @@
namespace Chamilo\CoreBundle\Controller; namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Repository\IllustrationRepository; use Chamilo\CoreBundle\Repository\IllustrationRepository;
use Chamilo\CoreBundle\Repository\UserRepository;
use Chamilo\CoreBundle\Traits\ControllerTrait; use Chamilo\CoreBundle\Traits\ControllerTrait;
use Chamilo\ThemeBundle\Model\UserInterface; use Chamilo\CoreBundle\Form\ProfileType;
use Chamilo\UserBundle\Form\ProfileType;
use FOS\UserBundle\Model\UserManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
/** /**
* Class UserController. * Class UserController.
@ -41,10 +41,11 @@ class AccountController extends BaseController
/** /**
* @Route("/edit", methods={"GET", "POST"}, name="chamilo_core_account_edit") * @Route("/edit", methods={"GET", "POST"}, name="chamilo_core_account_edit")
*/ */
public function editAction(Request $request, UserManagerInterface $userManager, IllustrationRepository $illustrationRepository) public function editAction(Request $request, UserRepository $userRepository, IllustrationRepository $illustrationRepository)
{ {
$user = $this->getUser(); $user = $this->getUser();
//UserManagerInterface $userManager,
if (!is_object($user) || !$user instanceof UserInterface) { if (!is_object($user) || !$user instanceof UserInterface) {
throw $this->createAccessDeniedException('This user does not have access to this section'); throw $this->createAccessDeniedException('This user does not have access to this section');
} }
@ -63,7 +64,7 @@ class AccountController extends BaseController
$em->flush(); $em->flush();
} }
$userManager->updateUser($user); $userRepository->updateUser($user);
$this->addFlash('success', $this->trans('Updated')); $this->addFlash('success', $this->trans('Updated'));
$url = $this->generateUrl('chamilo_core_account_home', ['username' => $user->getUsername()]); $url = $this->generateUrl('chamilo_core_account_home', ['username' => $user->getUsername()]);

@ -192,8 +192,6 @@ class CourseHomeController extends ToolBaseController
api_remove_in_gradebook(); api_remove_in_gradebook();
\Exercise::cleanSessionVariables(); \Exercise::cleanSessionVariables();
//\DocumentManager::removeGeneratedAudioTempFile();
$shortcutQuery = $shortcutRepository->getResources($this->getUser(), $course->getResourceNode(), $course); $shortcutQuery = $shortcutRepository->getResources($this->getUser(), $course->getResourceNode(), $course);
$shortcuts = $shortcutQuery->getQuery()->getResult(); $shortcuts = $shortcutQuery->getQuery()->getResult();

@ -75,26 +75,19 @@ class ResourceController extends AbstractResourceController implements CourseCon
$repository = $this->getRepositoryFromRequest($request); $repository = $this->getRepositoryFromRequest($request);
$settings = $repository->getResourceSettings(); $settings = $repository->getResourceSettings();
$grid = $this->getGrid( /*$grid = $this->getGrid(
$request, $request,
$repository, $repository,
$grid, $grid,
$parentResourceNode->getId(), $parentResourceNode->getId(),
'chamilo_core_resource_index' 'chamilo_core_resource_index'
);
/*$breadcrumb = $this->getBreadCrumb();
$breadcrumb->addChild(
$this->trans($tool),
[
'uri' => '#',
]
);*/ );*/
// The base resource node is the course. // The base resource node is the course.
$id = $parentResourceNode->getId(); $id = $parentResourceNode->getId();
return $grid->getGridResponse( //return $grid->getGridResponse(
return $this->render(
$repository->getTemplates()->getFromAction(__FUNCTION__), $repository->getTemplates()->getFromAction(__FUNCTION__),
[ [
'tool' => $tool, 'tool' => $tool,
@ -437,7 +430,8 @@ class ResourceController extends AbstractResourceController implements CourseCon
$this->setBreadCrumb($request, $parentResourceNode); $this->setBreadCrumb($request, $parentResourceNode);
return $grid->getGridResponse( //return $grid->getGridResponse(
return $this->render(
$repository->getTemplates()->getFromAction(__FUNCTION__), $repository->getTemplates()->getFromAction(__FUNCTION__),
[ [
'parent_id' => $resourceNodeId, 'parent_id' => $resourceNodeId,

@ -2,9 +2,9 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Controller; namespace Chamilo\CoreBundle\Controller;
use Chamilo\UserBundle\Form\LoginType; use Chamilo\CoreBundle\Form\LoginType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
@ -15,34 +15,20 @@ use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
*/ */
class SecurityController extends AbstractController class SecurityController extends AbstractController
{ {
/**
* @var AuthenticationUtils
*/
private $authenticationUtils;
/**
* SecurityController constructor.
*/
public function __construct(AuthenticationUtils $authenticationUtils)
{
$this->authenticationUtils = $authenticationUtils;
}
/** /**
* @Route("/login", name="login") * @Route("/login", name="login")
* *
* @return Response
*/ */
public function loginAction() public function login(AuthenticationUtils $authenticationUtils): Response
{ {
$helper = $this->authenticationUtils; $error = $authenticationUtils->getLastAuthenticationError();
$error = $helper->getLastAuthenticationError(); $lastUsername = $authenticationUtils->getLastUsername();
$form = $this->createForm(LoginType::class, ['_username' => $helper->getLastUsername()]); //$form = $this->createForm(LoginType::class, ['_username' => $lastUsername]);
return $this->render('@ChamiloUser/login.html.twig', [ return $this->render('@ChamiloCore/login.html.twig', [
'last_username' => $helper->getLastUsername(), 'last_username' => $lastUsername,
'error' => $error, 'error' => $error,
'form' => $form->createView(), //'form' => $form->createView(),
]); ]);
} }
@ -57,7 +43,7 @@ class SecurityController extends AbstractController
$form = $this->createForm(LoginType::class, ['_username' => $helper->getLastUsername()]); $form = $this->createForm(LoginType::class, ['_username' => $helper->getLastUsername()]);
return $this->render('@ChamiloUser/login_sidebar.html.twig', [ return $this->render('@ChamiloCore/login_sidebar.html.twig', [
'last_username' => $helper->getLastUsername(), 'last_username' => $helper->getLastUsername(),
'error' => '', // error will be printed in the /login page 'error' => '', // error will be printed in the /login page
'form' => $form->createView(), 'form' => $form->createView(),

@ -11,7 +11,7 @@ use Chamilo\CoreBundle\Entity\SessionRelCourse;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Repository\SequenceRepository; use Chamilo\CoreBundle\Repository\SequenceRepository;
use Chamilo\CourseBundle\Entity\CCourseDescription; use Chamilo\CourseBundle\Entity\CCourseDescription;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use CoursesController; use CoursesController;
use Essence\Essence; use Essence\Essence;
use ExtraFieldValue; use ExtraFieldValue;

@ -5,8 +5,8 @@
namespace Chamilo\CoreBundle\Controller; namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Repository\IllustrationRepository; use Chamilo\CoreBundle\Repository\IllustrationRepository;
use Chamilo\ThemeBundle\Model\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
use Chamilo\UserBundle\Repository\UserRepository; use Chamilo\CoreBundle\Repository\UserRepository;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
/** /**

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -32,7 +32,7 @@ class AccessUrlRelUser
protected $id; protected $id;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="portals") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="portals")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
*/ */
protected $user; protected $user;

@ -12,7 +12,7 @@ use Chamilo\CoreBundle\Entity\Resource\AbstractResource;
use Chamilo\CoreBundle\Entity\Resource\ResourceInterface; use Chamilo\CoreBundle\Entity\Resource\ResourceInterface;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CTool; use Chamilo\CourseBundle\Entity\CTool;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -64,7 +64,7 @@ class Course extends AbstractResource implements ResourceInterface
protected $id; protected $id;
/** /**
* @var string the course title * @var string The course title.
* @Groups({"course:read", "course:write", "list"}) * @Groups({"course:read", "course:write", "list"})
* @Assert\NotBlank() * @Assert\NotBlank()
* *

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\Groups;
@ -35,7 +35,7 @@ class CourseRelUser
/** /**
* Groups({"course_rel_user:read", "course_rel_user:write"}). * Groups({"course_rel_user:read", "course_rel_user:write"}).
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="courses", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="courses", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -32,7 +32,7 @@ class CourseRelUserCatalogue
protected $id; protected $id;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="courses", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="courses", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -20,7 +20,7 @@ class CourseRequest
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity; use Gedmo\Timestampable\Traits\TimestampableEntity;
@ -38,7 +38,7 @@ class ExtraFieldSavedSearch
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -44,7 +44,7 @@ class GradebookCategory
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="gradeBookCategories") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="gradeBookCategories")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -0,0 +1,144 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="fos_group")
*/
class Group
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
* @ORM\Column(name="name", type="string", length=255, nullable=false, unique=true)
*/
protected $name;
/**
* @var array
* @ORM\Column(name="roles", type="array")
*/
protected $roles;
/**
* @ORM\ManyToMany(targetEntity="Chamilo\CoreBundle\Entity\User", mappedBy="groups")
*/
protected $users;
/**
* @var string
*
* @ORM\Column(name="code", type="string", length=40, nullable=false, unique=true)
*/
protected $code;
public function __construct($name, $roles = array())
{
$this->name = $name;
$this->roles = $roles;
}
public function addRole($role)
{
if (!$this->hasRole($role)) {
$this->roles[] = strtoupper($role);
}
return $this;
}
public function hasRole($role)
{
return in_array(strtoupper($role), $this->roles, true);
}
public function getRoles()
{
return $this->roles;
}
public function removeRole($role)
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
$this->roles = array_values($this->roles);
}
return $this;
}
/**
* @param string $name
*
* @return Group
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* @param array $roles
*
* @return Group
*/
public function setRoles(array $roles)
{
$this->roles = $roles;
return $this;
}
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
public function getUsers()
{
return $this->users;
}
/**
* @return string
*/
public function getCode()
{
return $this->code;
}
/**
* @param string $code
*
* @return Group
*/
public function setCode($code)
{
$this->code = $code;
return $this;
}
public function __toString()
{
return $this->getName() ?: '';
}
}

@ -7,13 +7,11 @@ namespace Chamilo\CoreBundle\Entity\Manager;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelUser; use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Sonata\Doctrine\Entity\BaseEntityManager;
/** /**
* Class SessionManager. * Class SessionManager.
*/ */
class SessionManager extends BaseEntityManager class SessionManager
{ {
/** /**
* @return Session * @return Session

@ -1,14 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Entity\Manager;
use Sonata\Doctrine\Entity\BaseEntityManager;
/**
* Class SettingsCurrentRepository.
*/
class SettingsCurrentManager extends BaseEntityManager
{
}

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -37,7 +37,7 @@ class Message
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="sentMessages") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="sentMessages")
* @ORM\JoinColumn(name="user_sender_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="user_sender_id", referencedColumnName="id", nullable=false)
*/ */
protected $userSender; protected $userSender;
@ -45,7 +45,7 @@ class Message
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="receivedMessages") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="receivedMessages")
* @ORM\JoinColumn(name="user_receiver_id", referencedColumnName="id", nullable=true) * @ORM\JoinColumn(name="user_receiver_id", referencedColumnName="id", nullable=true)
*/ */
protected $userReceiver; protected $userReceiver;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Index; use Doctrine\ORM\Mapping\Index;
use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\Mapping\Annotation as Gedmo;
@ -42,7 +42,7 @@ class MessageFeedback
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false, onDelete="CASCADE") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -48,7 +48,7 @@ class Portfolio
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
@ -49,7 +49,7 @@ class PortfolioCategory
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false, onDelete="CASCADE") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/ */
protected $user; protected $user;

@ -6,7 +6,7 @@ namespace Chamilo\CoreBundle\Entity\Resource;
use ApiPlatform\Core\Annotation\ApiResource; use ApiPlatform\Core\Annotation\ApiResource;
use Chamilo\CoreBundle\Traits\TimestampableAgoTrait; use Chamilo\CoreBundle\Traits\TimestampableAgoTrait;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\Mapping\Annotation as Gedmo;
@ -49,7 +49,7 @@ class ResourceComment
* @var User * @var User
* *
* @Groups({"comment:read"}) * @Groups({"comment:read"})
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id", onDelete="SET NULL") * @ORM\JoinColumn(name="author_id", referencedColumnName="id", onDelete="SET NULL")
*/ */
protected $author; protected $author;

@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\Usergroup; use Chamilo\CoreBundle\Entity\Usergroup;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -53,7 +53,7 @@ class ResourceLink
protected $session; protected $session;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true) * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/ */
protected $user; protected $user;

@ -9,7 +9,7 @@ use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter; use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Traits\TimestampableAgoTrait; use Chamilo\CoreBundle\Traits\TimestampableAgoTrait;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -25,7 +25,8 @@ use Symfony\Component\Validator\Constraints as Assert;
* @ApiResource( * @ApiResource(
* attributes={"security"="is_granted('ROLE_ADMIN')"}, * attributes={"security"="is_granted('ROLE_ADMIN')"},
* collectionOperations={"get"}, * collectionOperations={"get"},
* normalizationContext={"groups"={"resource_node:read", "document:read"}} * normalizationContext={"groups"={"resource_node:read", "document:read"}},
* denormalizationContext={"groups"={"resource_node:write", "document:write"}}
* ) * )
* @ApiFilter(PropertyFilter::class) * @ApiFilter(PropertyFilter::class)
* @ORM\Entity(repositoryClass="Chamilo\CoreBundle\Repository\ResourceNodeRepository") * @ORM\Entity(repositoryClass="Chamilo\CoreBundle\Repository\ResourceNodeRepository")
@ -93,7 +94,7 @@ class ResourceNode
* @Assert\Valid() * @Assert\Valid()
* @Groups({"resource_node:read", "document:read"}) * @Groups({"resource_node:read", "document:read"})
* @ORM\ManyToOne( * @ORM\ManyToOne(
* targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="resourceNodes" * targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="resourceNodes"
* ) * )
* @ORM\JoinColumn(name="creator_id", referencedColumnName="id", nullable=true, onDelete="CASCADE") * @ORM\JoinColumn(name="creator_id", referencedColumnName="id", nullable=true, onDelete="CASCADE")
*/ */

@ -8,7 +8,7 @@ use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource; use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter; use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use Chamilo\CourseBundle\Entity\CStudentPublication; use Chamilo\CourseBundle\Entity\CStudentPublication;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
@ -250,7 +250,7 @@ class Session
protected $status; protected $status;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="sessionAsGeneralCoach") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="sessionAsGeneralCoach")
* @ORM\JoinColumn(name="id_coach", referencedColumnName="id") * @ORM\JoinColumn(name="id_coach", referencedColumnName="id")
*/ */
protected $generalCoach; protected $generalCoach;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -41,7 +41,7 @@ class SessionRelCourseRelUser
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="sessionCourseSubscriptions", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="sessionCourseSubscriptions", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -41,7 +41,7 @@ class SessionRelUser
protected $session; protected $session;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="sessions", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="sessions", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\SkillBundle\Entity\Level; use Chamilo\SkillBundle\Entity\Level;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -54,7 +54,7 @@ class SkillRelUser
protected $validationStatus; protected $validationStatus;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="achievedSkills", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="achievedSkills", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/ */
protected $user; protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -36,7 +36,7 @@ class SkillRelUserComment
protected $skillRelUser; protected $skillRelUser;
/** /**
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="commentedUserSkills") * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="commentedUserSkills")
* @ORM\JoinColumn(name="feedback_giver_id", referencedColumnName="id") * @ORM\JoinColumn(name="feedback_giver_id", referencedColumnName="id")
*/ */
protected $feedbackGiver; protected $feedbackGiver;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Annotation\ApiFilter; use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource; use ApiPlatform\Core\Annotation\ApiResource;
@ -14,25 +14,32 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Skill; use Chamilo\CoreBundle\Entity\Skill;
use Chamilo\CoreBundle\Entity\UsergroupRelUser; use Chamilo\CoreBundle\Entity\UsergroupRelUser;
use Chamilo\ThemeBundle\Model\UserInterface as ThemeUser;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Event\LifecycleEventArgs; use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Sonata\UserBundle\Entity\BaseUser; use FOS\UserBundle\Model\GroupInterface;
use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\EquatableInterface; use Symfony\Component\Security\Core\User\EquatableInterface;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Security\Core\User\UserInterface;
/** /**
* @ApiResource( * @ApiResource(
* attributes={"security"="is_granted('ROLE_ADMIN')"}, * attributes={"security"="is_granted('ROLE_ADMIN')"},
* normalizationContext={"groups"={"user:read"}}, * normalizationContext={"groups"={"user:read"}},
* denormalizationContext={"groups"={"user:write"}}, * denormalizationContext={"groups"={"user:write"}},
* collectionOperations={"get"},
* itemOperations={
* "get"={},
* "put"={},
* "delete"={},
* }
* ) * )
* *
* @ApiFilter(SearchFilter::class, properties={"username": "partial", "firstname" : "partial"}) * @ApiFilter(SearchFilter::class, properties={"username": "partial", "firstname" : "partial"})
@ -84,7 +91,7 @@ use Symfony\Component\Validator\Mapping\ClassMetadata;
* ) * )
* }) * })
*/ */
class User extends BaseUser implements ThemeUser, EquatableInterface //implements ParticipantInterface, ThemeUser class User implements UserInterface, EquatableInterface
{ {
public const COURSE_MANAGER = 1; public const COURSE_MANAGER = 1;
public const TEACHER = 1; public const TEACHER = 1;
@ -102,35 +109,44 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
*/ */
protected $id; protected $id;
/**
* @ORM\Column(type="string", unique=true, nullable=true)
*/
private $apiToken;
/** /**
* @var string * @var string
* @Groups({"user:read", "user:write"}) * @Groups({"user:read", "user:write"})
* @ORM\Column(name="firstname", type="string", length=60, nullable=true, unique=false)
*/ */
protected $firstname; protected $firstname;
/** /**
* @var string * @var string
* @Groups({"user:read", "user:write"}) * @Groups({"user:read", "user:write"})
* @ORM\Column(name="lastname", type="string", length=60, nullable=true, unique=false)
*/ */
protected $lastname; protected $lastname;
/** /**
* @var string * @var string
* @Groups({"user:read", "user:write"}) * @Groups({"user:read", "user:write"})
* @Assert\NotBlank() * @ORM\Column(name="locale", type="string", length=8, nullable=true, unique=false)
*/ */
protected $username; protected $locale;
/** /**
* @var string * @var string
* @Groups({"user:read", "user:write"}) * @Groups({"user:read", "user:write"})
* @Assert\NotBlank() * @Assert\NotBlank()
* @Assert\Email() * @ORM\Column(name="username", type="string", length=100, nullable=false, unique=true)
*/ */
protected $email; protected $username;
/** /**
* @var string * @var string
* @ORM\Column(name="password", type="string", length=255, nullable=false, unique=false)
*/ */
protected $password; protected $password;
@ -146,20 +162,32 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
* *
* @ORM\Column(name="username_canonical", type="string", length=100, nullable=false) * @ORM\Column(name="username_canonical", type="string", length=100, nullable=false)
*/ */
//protected $usernameCanonical; protected $usernameCanonical;
/**
* @var string
*
* @ORM\Column(name="timezone", type="string", length=64)
*/
protected $timezone;
/** /**
* @var string * @var string
* @ORM\Column(name="email_canonical", type="string", length=100, nullable=false, unique=false) * @ORM\Column(name="email_canonical", type="string", length=100, nullable=false, unique=false)
*/ */
//protected $emailCanonical; protected $emailCanonical;
/** /**
* @var string * @var string
* *
* @var string
* @Groups({"user:read", "user:write"})
* @Assert\NotBlank()
* @Assert\Email()
*
* @ORM\Column(name="email", type="string", length=100, nullable=false, unique=false) * @ORM\Column(name="email", type="string", length=100, nullable=false, unique=false)
*/ */
//protected $email; protected $email;
/** /**
* @var bool * @var bool
@ -173,7 +201,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
* *
* @ORM\Column(name="enabled", type="boolean") * @ORM\Column(name="enabled", type="boolean")
*/ */
//protected $enabled; protected $enabled;
/** /**
* @var bool * @var bool
@ -208,7 +236,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
* *
* @ORM\Column(name="phone", type="string", length=30, nullable=true, unique=false) * @ORM\Column(name="phone", type="string", length=30, nullable=true, unique=false)
*/ */
//protected $phone; protected $phone;
/** /**
* @var string * @var string
@ -225,14 +253,14 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
/** /**
* @ORM\Column(type="string", length=255) * @ORM\Column(type="string", length=255)
*/ */
//protected $salt; protected $salt;
/** /**
* @var \DateTime * @var \DateTime
* *
* @ORM\Column(name="last_login", type="datetime", nullable=true, unique=false) * @ORM\Column(name="last_login", type="datetime", nullable=true, unique=false)
*/ */
//protected $lastLogin; protected $lastLogin;
/** /**
* Random string sent to the user email address in order to verify it. * Random string sent to the user email address in order to verify it.
@ -240,14 +268,14 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
* @var string * @var string
* @ORM\Column(name="confirmation_token", type="string", length=255, nullable=true) * @ORM\Column(name="confirmation_token", type="string", length=255, nullable=true)
*/ */
//protected $confirmationToken; protected $confirmationToken;
/** /**
* @var \DateTime * @var \DateTime
* *
* @ORM\Column(name="password_requested_at", type="datetime", nullable=true, unique=false) * @ORM\Column(name="password_requested_at", type="datetime", nullable=true, unique=false)
*/ */
//protected $passwordRequestedAt; protected $passwordRequestedAt;
/** /**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\CourseRelUser", mappedBy="user", orphanRemoval=true) * @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\CourseRelUser", mappedBy="user", orphanRemoval=true)
@ -272,7 +300,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
/** /**
* @ORM\Column(type="array") * @ORM\Column(type="array")
*/ */
//protected $roles; protected $roles;
/** /**
* @var bool * @var bool
@ -287,7 +315,8 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
//protected $jurySubscriptions; //protected $jurySubscriptions;
/** /**
* @ORM\ManyToMany(targetEntity="Chamilo\UserBundle\Entity\Group", inversedBy="users") * @var Group[]
* @ORM\ManyToMany(targetEntity="Chamilo\CoreBundle\Entity\Group", inversedBy="users")
* @ORM\JoinTable( * @ORM\JoinTable(
* name="fos_user_user_group", * name="fos_user_user_group",
* joinColumns={ * joinColumns={
@ -542,6 +571,18 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
*/ */
protected $receivedMessages; protected $receivedMessages;
/**
* @var \DateTime
* @ORM\Column(name="created_at", type="datetime", nullable=true, unique=false)
*/
protected $createdAt;
/**
* @var \DateTime
* @ORM\Column(name="updated_at", type="datetime", nullable=true, unique=false)
*/
protected $updatedAt;
/** /**
* Constructor. * Constructor.
*/ */
@ -560,6 +601,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
$this->portals = new ArrayCollection(); $this->portals = new ArrayCollection();
$this->dropBoxSentFiles = new ArrayCollection(); $this->dropBoxSentFiles = new ArrayCollection();
$this->dropBoxReceivedFiles = new ArrayCollection(); $this->dropBoxReceivedFiles = new ArrayCollection();
$this->groups = new ArrayCollection();
//$this->extraFields = new ArrayCollection(); //$this->extraFields = new ArrayCollection();
//$this->userId = 0; //$this->userId = 0;
//$this->createdAt = new \DateTime(); //$this->createdAt = new \DateTime();
@ -819,14 +861,6 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return 1 == $this->getActive(); return 1 == $this->getActive();
} }
/**
* @return ArrayCollection
*/
/*public function getRolesObj()
{
return $this->roles;
}*/
/** /**
* Set salt. * Set salt.
* *
@ -1587,6 +1621,15 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return $this; return $this;
} }
public function addGroup($group)
{
if (!$this->getGroups()->contains($group)) {
$this->getGroups()->add($group);
}
return $this;
}
/** /**
* Sets the user groups. * Sets the user groups.
* *
@ -1611,6 +1654,11 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return sprintf('%s %s', $this->getFirstname(), $this->getLastname()); return sprintf('%s %s', $this->getFirstname(), $this->getLastname());
} }
public function getGroups()
{
return $this->groups;
}
/** /**
* Returns the user roles. * Returns the user roles.
* *
@ -1625,7 +1673,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
} }
// we need to make sure to have at least one role // we need to make sure to have at least one role
$roles[] = static::ROLE_DEFAULT; $roles[] = 'ROLE_USER';
return array_unique($roles); return array_unique($roles);
} }
@ -1966,6 +2014,98 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return $this->courseGroupsAsMember->matching($criteria); return $this->courseGroupsAsMember->matching($criteria);
} }
public function getFirstname(){
}
public function getLastname(){
}
public function eraseCredentials()
{
$this->plainPassword = null;
}
public function hasRole($role)
{
return in_array(strtoupper($role), $this->getRoles(), true);
}
public function isSuperAdmin()
{
return $this->hasRole('ROLE_SUPER_ADMIN');
}
public function isUser(UserInterface $user = null)
{
return null !== $user && $this->getId() === $user->getId();
}
public function removeRole($role)
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
$this->roles = array_values($this->roles);
}
return $this;
}
public function getUsernameCanonical()
{
return $this->usernameCanonical;
}
public function getEmailCanonical()
{
return $this->emailCanonical;
}
public function getPlainPassword()
{
return $this->plainPassword;
}
/**
* @param string $timezone
*
* @return User
*/
public function setTimezone($timezone)
{
$this->timezone = $timezone;
return $this;
}
/**
* @return string
*/
public function getTimezone()
{
return $this->timezone;
}
/**
* @param string $locale
*
* @return User
*/
public function setLocale($locale)
{
$this->locale = $locale;
return $this;
}
/**
* @return string
*/
public function getLocale()
{
return $this->locale;
}
public function getCourseGroupsAsTutorFromCourse(Course $course): ArrayCollection public function getCourseGroupsAsTutorFromCourse(Course $course): ArrayCollection
{ {
$criteria = Criteria::create(); $criteria = Criteria::create();

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
@ -33,7 +33,7 @@ class UsergroupRelUser
/** /**
* @var User * @var User
* *
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="classes", cascade={"persist"}) * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="classes", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/ */
protected $user; protected $user;

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\EventListener; namespace Chamilo\CoreBundle\EventListener;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Framework\Container;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\DependencyInjection\ContainerAwareTrait;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent; use Symfony\Component\HttpKernel\Event\ControllerEvent;
@ -49,6 +49,7 @@ class LegacyListener
$twig = $container->get('twig'); $twig = $container->get('twig');
$token = $container->get('security.token_storage')->getToken(); $token = $container->get('security.token_storage')->getToken();
$userObject = null; $userObject = null;
if (null !== $token) { if (null !== $token) {
/** @var User $userObject */ /** @var User $userObject */

@ -5,11 +5,10 @@
namespace Chamilo\CoreBundle\EventListener; namespace Chamilo\CoreBundle\EventListener;
use Chamilo\SettingsBundle\Manager\SettingsManager; use Chamilo\SettingsBundle\Manager\SettingsManager;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
/** /**

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\EventListener; namespace Chamilo\CoreBundle\EventListener;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent; use Symfony\Component\HttpKernel\Event\ControllerEvent;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Form; namespace Chamilo\CoreBundle\Form;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
@ -36,7 +36,7 @@ class ProfileFosUserType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\UserBundle\Entity\User', 'data_class' => 'Chamilo\CoreBundle\Entity\User',
] ]
); );
} }

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Form; namespace Chamilo\CoreBundle\Form;
use Chamilo\CoreBundle\Form\Type\IllustrationType; use Chamilo\CoreBundle\Form\Type\IllustrationType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
@ -170,7 +170,7 @@ class ProfileType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\UserBundle\Entity\User', 'data_class' => 'Chamilo\CoreBundle\Entity\User',
] ]
); );
} }

@ -19,7 +19,7 @@ class SessionType extends AbstractType
'general_coach', 'general_coach',
'entity', 'entity',
[ [
'class' => 'ChamiloUserBundle:User', 'class' => 'ChamiloCoreBundle:User',
'property' => 'username', 'property' => 'username',
] ]
) )
@ -27,7 +27,7 @@ class SessionType extends AbstractType
'session_admin_id', 'session_admin_id',
'entity', 'entity',
[ [
'class' => 'ChamiloUserBundle:User', 'class' => 'ChamiloCoreBundle:User',
'property' => 'username', 'property' => 'username',
] ]
) )

@ -45,11 +45,11 @@ class CourseType extends AbstractType
['required' => false] ['required' => false]
) )
/* ->add('general_coach', 'entity', array( /* ->add('general_coach', 'entity', array(
'class' => 'ChamiloUserBundle:User', 'class' => 'ChamiloCoreBundle:User',
'property' => 'username', 'property' => 'username',
)) ))
->add('session_admin_id', 'entity', array( ->add('session_admin_id', 'entity', array(
'class' => 'ChamiloUserBundle:User', 'class' => 'ChamiloCoreBundle:User',
'property' => 'username', 'property' => 'username',
)) ))
->add('visibility', 'choice', ->add('visibility', 'choice',

@ -37,9 +37,7 @@ use Chamilo\CourseBundle\Repository\CStudentPublicationCommentRepository;
use Chamilo\CourseBundle\Repository\CStudentPublicationRepository; use Chamilo\CourseBundle\Repository\CStudentPublicationRepository;
use Chamilo\PageBundle\Entity\Page; use Chamilo\PageBundle\Entity\Page;
use Chamilo\SettingsBundle\Manager\SettingsManager; use Chamilo\SettingsBundle\Manager\SettingsManager;
use Chamilo\UserBundle\Repository\UserRepository; use Chamilo\CoreBundle\Repository\UserRepository;
use Sonata\PageBundle\Entity\SiteManager;
use Sonata\UserBundle\Entity\UserManager;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\Session;
@ -169,7 +167,7 @@ class Container
*/ */
public static function getTemplating() public static function getTemplating()
{ {
return self::$container->get('templating'); return self::$container->get('twig');
} }
/** /**
@ -479,7 +477,7 @@ class Container
*/ */
public static function getUserRepository() public static function getUserRepository()
{ {
return self::$container->get('Chamilo\UserBundle\Repository\UserRepository'); return self::$container->get('Chamilo\CoreBundle\Repository\UserRepository');
} }
/** /**
@ -545,14 +543,6 @@ class Container
self::$userManager = $manager; self::$userManager = $manager;
} }
/**
* @return SiteManager
*/
public static function getSiteManager()
{
return self::$siteManager;
}
/** /**
* @param UserManager $manager * @param UserManager $manager
*/ */
@ -622,8 +612,8 @@ class Container
\Database::setManager($em); \Database::setManager($em);
\CourseManager::setEntityManager($em); \CourseManager::setEntityManager($em);
//self::setSettingsManager($container->get('chamilo.settings.manager')); //self::setSettingsManager($container->get('chamilo.settings.manager'));
self::setUserManager($container->get('fos_user.user_manager')); //self::setUserManager($container->get('fos_user.user_manager'));
self::setSiteManager($container->get('sonata.page.manager.site')); //self::setSiteManager($container->get('sonata.page.manager.site'));
\CourseManager::setCourseSettingsManager($container->get('Chamilo\CourseBundle\Manager\SettingsManager')); \CourseManager::setCourseSettingsManager($container->get('Chamilo\CourseBundle\Manager\SettingsManager'));
// Setting course tool chain (in order to create tools to a course) // Setting course tool chain (in order to create tools to a course)
\CourseManager::setToolList($container->get(ToolChain::class)); \CourseManager::setToolList($container->get(ToolChain::class));

@ -26,7 +26,7 @@ class MenuVoter implements VoterInterface
/** /**
* @return bool|null * @return bool|null
*/ */
public function matchItem(ItemInterface $item) public function matchItem(ItemInterface $item): ?bool
{ {
$request = $this->requestStack->getCurrentRequest(); $request = $this->requestStack->getCurrentRequest();
$currentUri = $item->getUri(); $currentUri = $item->getUri();

@ -81,7 +81,7 @@ class CourseRepository extends ResourceRepository
// Selecting courses for users. // Selecting courses for users.
$queryBuilder->innerJoin('c.users', 'subscriptions'); $queryBuilder->innerJoin('c.users', 'subscriptions');
$queryBuilder->innerJoin( $queryBuilder->innerJoin(
'ChamiloUserBundle:User', 'ChamiloCoreBundle:User',
'user', 'user',
Join::WITH, Join::WITH,
'subscriptions.user = user.id' 'subscriptions.user = user.id'

@ -11,7 +11,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
interface GridInterface interface GridInterface

@ -2,9 +2,9 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Repository; namespace Chamilo\CoreBundle\Repository;
use Chamilo\UserBundle\Entity\Group; use Chamilo\CoreBundle\Entity\Group;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;

@ -14,7 +14,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Form\Resource\IllustrationType; use Chamilo\CoreBundle\Form\Resource\IllustrationType;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\Repository; namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Message; use Chamilo\CoreBundle\Entity\Message;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry;

@ -12,7 +12,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Form\Resource\PersonalFileType; use Chamilo\CoreBundle\Form\Resource\PersonalFileType;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;

@ -22,7 +22,7 @@ use Chamilo\CoreBundle\Security\Authorization\Voter\ResourceNodeVoter;
use Chamilo\CoreBundle\ToolChain; use Chamilo\CoreBundle\ToolChain;
use Chamilo\CourseBundle\Entity\CDocument; use Chamilo\CourseBundle\Entity\CDocument;
use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Cocur\Slugify\SlugifyInterface; use Cocur\Slugify\SlugifyInterface;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
@ -418,7 +418,7 @@ class ResourceRepository extends BaseEntityRepository
$em = $this->getEntityManager(); $em = $this->getEntityManager();
if (!empty($userList)) { if (!empty($userList)) {
$userRepo = $em->getRepository('ChamiloUserBundle:User'); $userRepo = $em->getRepository('ChamiloCoreBundle:User');
foreach ($userList as $userId) { foreach ($userList as $userId) {
$toUser = $userRepo->find($userId); $toUser = $userRepo->find($userId);
$resourceLink = $this->addResourceNodeToUser($resourceNode, $toUser); $resourceLink = $this->addResourceNodeToUser($resourceNode, $toUser);

@ -7,7 +7,7 @@ namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\Skill; use Chamilo\CoreBundle\Entity\Skill;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;

@ -6,7 +6,7 @@ namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Templates; use Chamilo\CoreBundle\Entity\Templates;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\Repository; namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\TrackECourseAccess; use Chamilo\CoreBundle\Entity\TrackECourseAccess;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\Common\Persistence\ManagerRegistry;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Repository; namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\AccessUrl; use Chamilo\CoreBundle\Entity\AccessUrl;
use Chamilo\CoreBundle\Entity\AccessUrlRelUser; use Chamilo\CoreBundle\Entity\AccessUrlRelUser;
@ -46,10 +46,13 @@ use Chamilo\CourseBundle\Entity\CStudentPublicationComment;
use Chamilo\CourseBundle\Entity\CSurveyAnswer; use Chamilo\CourseBundle\Entity\CSurveyAnswer;
use Chamilo\CourseBundle\Entity\CWiki; use Chamilo\CourseBundle\Entity\CWiki;
use Chamilo\TicketBundle\Entity\Ticket; use Chamilo\TicketBundle\Entity\Ticket;
use Chamilo\UserBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException; use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer; use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
@ -61,8 +64,28 @@ use Symfony\Component\Serializer\Serializer;
* All functions that query the database (selects) * All functions that query the database (selects)
* Functions should return query builders. * Functions should return query builders.
*/ */
class UserRepository extends ResourceRepository class UserRepository extends ResourceRepository implements UserLoaderInterface, PasswordUpgraderInterface
{ {
public function loadUserByUsername($username)
{
return $this->findBy(['username' => $username]);
}
public function updateUser($user)
{
$this->getEntityManager()->persist($user);
$this->getEntityManager()->flush();
}
public function upgradePassword(UserInterface $user, string $newEncodedPassword): void
{
// this code is only an example; the exact code will depend on
// your own application needs
$user->setPassword($newEncodedPassword);
$this->getEntityManager()->flush($user);
}
public function getRootUser(): User public function getRootUser(): User
{ {
$qb = $this->getRepository()->createQueryBuilder('u'); $qb = $this->getRepository()->createQueryBuilder('u');
@ -167,7 +190,7 @@ class UserRepository extends ResourceRepository
// Selecting user info // Selecting user info
$qb->select('DISTINCT b'); $qb->select('DISTINCT b');
$qb->from('Chamilo\UserBundle\Entity\User', 'b'); $qb->from('Chamilo\CoreBundle\Entity\User', 'b');
// Selecting courses for users // Selecting courses for users
//$qb->innerJoin('u.courses', 'c'); //$qb->innerJoin('u.courses', 'c');
@ -194,7 +217,7 @@ class UserRepository extends ResourceRepository
$queryBuilder->select('c'); $queryBuilder->select('c');
// Loading User. // Loading User.
//$qb->from('Chamilo\UserBundle\Entity\User', 'u'); //$qb->from('Chamilo\CoreBundle\Entity\User', 'u');
// Selecting course // Selecting course
$queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c'); $queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c');
@ -324,7 +347,7 @@ class UserRepository extends ResourceRepository
$queryBuilder->select('c'); $queryBuilder->select('c');
// Loading User. // Loading User.
//$qb->from('Chamilo\UserBundle\Entity\User', 'u'); //$qb->from('Chamilo\CoreBundle\Entity\User', 'u');
// Selecting course // Selecting course
$queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c'); $queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c');
@ -486,7 +509,7 @@ class UserRepository extends ResourceRepository
// All users // All users
if ('true' === $allowSendMessageToAllUsers || api_is_platform_admin()) { if ('true' === $allowSendMessageToAllUsers || api_is_platform_admin()) {
$dql = "SELECT DISTINCT U $dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U FROM ChamiloCoreBundle:User U
LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R
WITH U = R.user WITH U = R.user
WHERE WHERE
@ -497,7 +520,7 @@ class UserRepository extends ResourceRepository
} else { } else {
$dql = 'SELECT DISTINCT U $dql = 'SELECT DISTINCT U
FROM ChamiloCoreBundle:AccessUrlRelUser R, ChamiloCoreBundle:UserRelUser UF FROM ChamiloCoreBundle:AccessUrlRelUser R, ChamiloCoreBundle:UserRelUser UF
INNER JOIN ChamiloUserBundle:User AS U INNER JOIN ChamiloCoreBundle:User AS U
WITH UF.friendUserId = U WITH UF.friendUserId = U
WHERE WHERE
U.active = 1 AND U.active = 1 AND
@ -514,7 +537,7 @@ class UserRepository extends ResourceRepository
) { ) {
if ('true' === $allowSendMessageToAllUsers) { if ('true' === $allowSendMessageToAllUsers) {
$dql = "SELECT DISTINCT U $dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U FROM ChamiloCoreBundle:User U
LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R
WITH U = R.user WITH U = R.user
WHERE WHERE
@ -527,7 +550,7 @@ class UserRepository extends ResourceRepository
$online_time = time() - $time_limit * 60; $online_time = time() - $time_limit * 60;
$limit_date = api_get_utc_datetime($online_time); $limit_date = api_get_utc_datetime($online_time);
$dql = "SELECT DISTINCT U $dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U FROM ChamiloCoreBundle:User U
INNER JOIN ChamiloCoreBundle:TrackEOnline T INNER JOIN ChamiloCoreBundle:TrackEOnline T
WITH U.id = T.loginUserId WITH U.id = T.loginUserId
WHERE WHERE

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save