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. 2
      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. 2
      public/main/inc/lib/login.lib.php
  24. 2
      public/main/inc/lib/message.lib.php
  25. 2
      public/main/inc/lib/sessionmanager.lib.php
  26. 2
      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. 2
      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;

@ -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;
/** /**

@ -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;
/** /**

@ -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;

@ -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;

@ -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