Refactor code

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

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

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

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

@ -9,20 +9,20 @@ require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
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);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
//$request = Request::createFromGlobals();
$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals('host_with_path_by_locale');
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

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

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

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
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).

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

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

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

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

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

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

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

@ -1,6 +1,7 @@
<?php
/* For licensing terms, see /license.txt */
use Symfony\Component\ErrorHandler\Debug;
use Chamilo\CoreBundle\Framework\Container;
use Patchwork\Utf8\Bootup;
use Symfony\Component\Dotenv\Dotenv;
@ -31,10 +32,11 @@ try {
}
$env = $_SERVER['APP_ENV'] ?? 'dev';
//Debug::enable();
$kernel = new Chamilo\Kernel($env, true);
// 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,
// and not called from a symfony controller from public/
@ -58,7 +60,8 @@ try {
exit;
}
$newBaseUrl = substr($currentBaseUrl, 0, $pos - 1);
$request->setBaseUrl($newBaseUrl);
//$request->setBaseUrl($newBaseUrl);
$context->setBaseUrl($newBaseUrl);
$container = $kernel->getContainer();
@ -96,10 +99,10 @@ try {
}
define('DEFAULT_DOCUMENT_QUOTA', $default_quota);*/
} catch (Exception $e) {
/*echo $e->getMessage(); exit;
echo $e->getMessage();
var_dump($e->getMessage());
var_dump($e->getCode());
var_dump($e->getLine());
echo $e->getTraceAsString();
exit;*/
//exit;*/
}

@ -11,7 +11,7 @@ use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CChatConnected;
use Chamilo\CourseBundle\Entity\CChatConversation;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
use Michelf\MarkdownExtra;
@ -632,7 +632,7 @@ class CourseChatUtils
if ($this->groupId) {
$students = $em
->createQuery(
'SELECT u FROM ChamiloUserBundle:User u
'SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelUser gru
WITH u.id = gru.userId AND gru.cId = :course
WHERE u.id != :user AND gru.groupId = :group
@ -642,7 +642,7 @@ class CourseChatUtils
->getResult();
$tutors = $em
->createQuery(
'SELECT u FROM ChamiloUserBundle:User u
'SELECT u FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelTutor grt
WITH u.id = grt.userId AND grt.cId = :course
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\Framework\Container;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use ChamiloSession as Session;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Finder\Finder;
@ -1541,10 +1541,8 @@ function api_get_user_info(
// Make sure user_id is safe
$user_id = (int) $user_id;
$user = false;
if (empty($user_id)) {
$userFromSession = Session::read('_user');
if (isset($userFromSession) && !empty($userFromSession)) {
return $userFromSession;
/*

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

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

@ -1,12 +1,12 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
/**
* Class UserAvatar
* 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
{
@ -44,7 +44,7 @@ class UserAvatar extends HTML_QuickForm_input
*/
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)
: $value;

@ -1592,7 +1592,7 @@ EOT;
/**
* 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
*

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

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

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

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

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

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

@ -8,8 +8,8 @@ use Chamilo\CoreBundle\Entity\SkillRelUserComment;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Hook\HookCreateUser;
use Chamilo\CoreBundle\Hook\HookUpdateUser;
use Chamilo\UserBundle\Entity\User;
use Chamilo\UserBundle\Repository\UserRepository;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\UserRepository;
use ChamiloSession as Session;
/**
@ -56,7 +56,7 @@ class UserManager
*/
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)
{
$encoder = new \Chamilo\UserBundle\Security\Encoder(self::getPasswordEncryption());
$encoder = new \Chamilo\CoreBundle\Security\Encoder(self::getPasswordEncryption());
$validPassword = $encoder->isPasswordValid($encoded, $raw, $salt);
return $validPassword;
@ -371,7 +371,7 @@ class UserManager
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) {
$user->addGroup($group);
$userManager->updateUser($user);
@ -1197,7 +1197,7 @@ class UserManager
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) {
$user->addGroup($group);
}
@ -5368,7 +5368,7 @@ class UserManager
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) {
$user->addGroup($group);
}
@ -6604,10 +6604,10 @@ SQL;
{
$encryption = self::getPasswordEncryption();
$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;
}

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

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

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

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

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

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

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

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

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Portfolio;
use Chamilo\CoreBundle\Entity\PortfolioCategory;
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
if (empty($_GET['cidReq'])) {

@ -45,19 +45,20 @@
{% endif %}
<h4 class="course-items-title">
{% 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 %}
<a href="{{ item.link }}">
{{ item.title }} {{ item.code_course }}
{{ item.title }} {{ item.course_code }}
</a>
{{ 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 ) }}
{% endif %}
{% endif %}
</h4>
<div class="course-items-session">
<div class="list-teachers">
{% set counter = 0 %}
{% if item.teachers|length > 0 %}
{{ 'teacher.png' | img(16, 'Professor'|get_lang ) }}
{% for teacher in item.teachers %}
@ -70,7 +71,7 @@
{% endfor %}
{% endif %}
</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 %}
<div class="course-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 %}
{% for row in session %}
<div class="panel panel-default">

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

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

@ -2,7 +2,7 @@
/* 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.

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

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
/**
* 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\Session;
use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\Criteria;
require_once '../../main/inc/global.inc.php';

@ -85,13 +85,13 @@ class CarePost
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)
*/
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)
*/
private $user;

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

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use FFMpeg\FFMpeg;
use FFMpeg\Format\Audio\Wav;
@ -37,7 +37,7 @@ $plugin->protectTool(false);
if ($isAuthentify) {
$em = Database::getManager();
/** @var User|null $user */
$user = $em->getRepository('ChamiloUserBundle:User')->findOneBy(['username' => $_POST['username']]);
$user = $em->getRepository('ChamiloCoreBundle:User')->findOneBy(['username' => $_POST['username']]);
} else {
/** @var User $user */
$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\Entity\Course;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Routing\Router;
use Symfony\Component\Routing\RouterInterface;

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

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

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

@ -2,9 +2,9 @@
/* 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\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
@ -15,34 +15,20 @@ use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
*/
class SecurityController extends AbstractController
{
/**
* @var AuthenticationUtils
*/
private $authenticationUtils;
/**
* SecurityController constructor.
*/
public function __construct(AuthenticationUtils $authenticationUtils)
{
$this->authenticationUtils = $authenticationUtils;
}
/**
* @Route("/login", name="login")
*
* @return Response
*/
public function loginAction()
public function login(AuthenticationUtils $authenticationUtils): Response
{
$helper = $this->authenticationUtils;
$error = $helper->getLastAuthenticationError();
$form = $this->createForm(LoginType::class, ['_username' => $helper->getLastUsername()]);
$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();
//$form = $this->createForm(LoginType::class, ['_username' => $lastUsername]);
return $this->render('@ChamiloUser/login.html.twig', [
'last_username' => $helper->getLastUsername(),
return $this->render('@ChamiloCore/login.html.twig', [
'last_username' => $lastUsername,
'error' => $error,
'form' => $form->createView(),
//'form' => $form->createView(),
]);
}
@ -57,7 +43,7 @@ class SecurityController extends AbstractController
$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(),
'error' => '', // error will be printed in the /login page
'form' => $form->createView(),

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

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

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -32,7 +32,7 @@ class AccessUrlRelUser
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")
*/
protected $user;

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

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
@ -35,7 +35,7 @@ class CourseRelUser
/**
* 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")
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -32,7 +32,7 @@ class CourseRelUserCatalogue
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")
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -20,7 +20,7 @@ class CourseRequest
/**
* @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")
*/
protected $user;

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

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -44,7 +44,7 @@ class GradebookCategory
/**
* @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")
*/
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\Session;
use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\UserBundle\Entity\User;
use Sonata\Doctrine\Entity\BaseEntityManager;
use Chamilo\CoreBundle\Entity\User;
/**
* Class SessionManager.
*/
class SessionManager extends BaseEntityManager
class SessionManager
{
/**
* @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;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
@ -37,7 +37,7 @@ class Message
/**
* @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)
*/
protected $userSender;
@ -45,7 +45,7 @@ class Message
/**
* @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)
*/
protected $userReceiver;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Index;
use Gedmo\Mapping\Annotation as Gedmo;
@ -42,7 +42,7 @@ class MessageFeedback
/**
* @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")
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -48,7 +48,7 @@ class Portfolio
/**
* @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)
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
@ -49,7 +49,7 @@ class PortfolioCategory
/**
* @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")
*/
protected $user;

@ -6,7 +6,7 @@ namespace Chamilo\CoreBundle\Entity\Resource;
use ApiPlatform\Core\Annotation\ApiResource;
use Chamilo\CoreBundle\Traits\TimestampableAgoTrait;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
@ -49,7 +49,7 @@ class ResourceComment
* @var User
*
* @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")
*/
protected $author;

@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\Usergroup;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
@ -53,7 +53,7 @@ class ResourceLink
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)
*/
protected $user;

@ -9,7 +9,7 @@ use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Traits\TimestampableAgoTrait;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
@ -25,7 +25,8 @@ use Symfony\Component\Validator\Constraints as Assert;
* @ApiResource(
* attributes={"security"="is_granted('ROLE_ADMIN')"},
* 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)
* @ORM\Entity(repositoryClass="Chamilo\CoreBundle\Repository\ResourceNodeRepository")
@ -93,7 +94,7 @@ class ResourceNode
* @Assert\Valid()
* @Groups({"resource_node:read", "document:read"})
* @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")
*/

@ -8,7 +8,7 @@ use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use Chamilo\CourseBundle\Entity\CStudentPublication;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
@ -250,7 +250,7 @@ class Session
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")
*/
protected $generalCoach;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -41,7 +41,7 @@ class SessionRelCourseRelUser
/**
* @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)
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -41,7 +41,7 @@ class SessionRelUser
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")
*/
protected $user;

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\SkillBundle\Entity\Level;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
@ -54,7 +54,7 @@ class SkillRelUser
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)
*/
protected $user;

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -36,7 +36,7 @@ class SkillRelUserComment
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")
*/
protected $feedbackGiver;

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Entity;
namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
@ -14,25 +14,32 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Skill;
use Chamilo\CoreBundle\Entity\UsergroupRelUser;
use Chamilo\ThemeBundle\Model\UserInterface as ThemeUser;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Event\LifecycleEventArgs;
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\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\Validator\Constraints as Assert;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @ApiResource(
* attributes={"security"="is_granted('ROLE_ADMIN')"},
* normalizationContext={"groups"={"user:read"}},
* denormalizationContext={"groups"={"user:write"}},
* collectionOperations={"get"},
* itemOperations={
* "get"={},
* "put"={},
* "delete"={},
* }
* )
*
* @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 TEACHER = 1;
@ -102,35 +109,44 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
*/
protected $id;
/**
* @ORM\Column(type="string", unique=true, nullable=true)
*/
private $apiToken;
/**
* @var string
* @Groups({"user:read", "user:write"})
* @ORM\Column(name="firstname", type="string", length=60, nullable=true, unique=false)
*/
protected $firstname;
/**
* @var string
* @Groups({"user:read", "user:write"})
* @ORM\Column(name="lastname", type="string", length=60, nullable=true, unique=false)
*/
protected $lastname;
/**
* @var string
* @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
* @Groups({"user:read", "user:write"})
* @Assert\NotBlank()
* @Assert\Email()
* @ORM\Column(name="username", type="string", length=100, nullable=false, unique=true)
*/
protected $email;
protected $username;
/**
* @var string
* @ORM\Column(name="password", type="string", length=255, nullable=false, unique=false)
*/
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)
*/
//protected $usernameCanonical;
protected $usernameCanonical;
/**
* @var string
*
* @ORM\Column(name="timezone", type="string", length=64)
*/
protected $timezone;
/**
* @var string
* @ORM\Column(name="email_canonical", type="string", length=100, nullable=false, unique=false)
*/
//protected $emailCanonical;
protected $emailCanonical;
/**
* @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)
*/
//protected $email;
protected $email;
/**
* @var bool
@ -173,7 +201,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
*
* @ORM\Column(name="enabled", type="boolean")
*/
//protected $enabled;
protected $enabled;
/**
* @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)
*/
//protected $phone;
protected $phone;
/**
* @var string
@ -225,14 +253,14 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
/**
* @ORM\Column(type="string", length=255)
*/
//protected $salt;
protected $salt;
/**
* @var \DateTime
*
* @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.
@ -240,14 +268,14 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
* @var string
* @ORM\Column(name="confirmation_token", type="string", length=255, nullable=true)
*/
//protected $confirmationToken;
protected $confirmationToken;
/**
* @var \DateTime
*
* @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)
@ -272,7 +300,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
/**
* @ORM\Column(type="array")
*/
//protected $roles;
protected $roles;
/**
* @var bool
@ -287,7 +315,8 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
//protected $jurySubscriptions;
/**
* @ORM\ManyToMany(targetEntity="Chamilo\UserBundle\Entity\Group", inversedBy="users")
* @var Group[]
* @ORM\ManyToMany(targetEntity="Chamilo\CoreBundle\Entity\Group", inversedBy="users")
* @ORM\JoinTable(
* name="fos_user_user_group",
* joinColumns={
@ -542,6 +571,18 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
*/
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.
*/
@ -560,6 +601,7 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
$this->portals = new ArrayCollection();
$this->dropBoxSentFiles = new ArrayCollection();
$this->dropBoxReceivedFiles = new ArrayCollection();
$this->groups = new ArrayCollection();
//$this->extraFields = new ArrayCollection();
//$this->userId = 0;
//$this->createdAt = new \DateTime();
@ -819,14 +861,6 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return 1 == $this->getActive();
}
/**
* @return ArrayCollection
*/
/*public function getRolesObj()
{
return $this->roles;
}*/
/**
* Set salt.
*
@ -1587,6 +1621,15 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return $this;
}
public function addGroup($group)
{
if (!$this->getGroups()->contains($group)) {
$this->getGroups()->add($group);
}
return $this;
}
/**
* Sets the user groups.
*
@ -1611,6 +1654,11 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
return sprintf('%s %s', $this->getFirstname(), $this->getLastname());
}
public function getGroups()
{
return $this->groups;
}
/**
* 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
$roles[] = static::ROLE_DEFAULT;
$roles[] = 'ROLE_USER';
return array_unique($roles);
}
@ -1966,6 +2014,98 @@ class User extends BaseUser implements ThemeUser, EquatableInterface //implement
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
{
$criteria = Criteria::create();

@ -4,7 +4,7 @@
namespace Chamilo\CoreBundle\Entity;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
@ -33,7 +33,7 @@ class UsergroupRelUser
/**
* @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")
*/
protected $user;

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

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

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

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

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

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

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

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

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

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

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

@ -2,9 +2,9 @@
/* 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\EntityRepository;

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

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

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

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

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

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

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

@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
namespace Chamilo\UserBundle\Repository;
namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\AccessUrl;
use Chamilo\CoreBundle\Entity\AccessUrlRelUser;
@ -46,10 +46,13 @@ use Chamilo\CourseBundle\Entity\CStudentPublicationComment;
use Chamilo\CourseBundle\Entity\CSurveyAnswer;
use Chamilo\CourseBundle\Entity\CWiki;
use Chamilo\TicketBundle\Entity\Ticket;
use Chamilo\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Common\Collections\Criteria;
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\User\PasswordUpgraderInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
@ -61,8 +64,28 @@ use Symfony\Component\Serializer\Serializer;
* All functions that query the database (selects)
* 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
{
$qb = $this->getRepository()->createQueryBuilder('u');
@ -167,7 +190,7 @@ class UserRepository extends ResourceRepository
// Selecting user info
$qb->select('DISTINCT b');
$qb->from('Chamilo\UserBundle\Entity\User', 'b');
$qb->from('Chamilo\CoreBundle\Entity\User', 'b');
// Selecting courses for users
//$qb->innerJoin('u.courses', 'c');
@ -194,7 +217,7 @@ class UserRepository extends ResourceRepository
$queryBuilder->select('c');
// Loading User.
//$qb->from('Chamilo\UserBundle\Entity\User', 'u');
//$qb->from('Chamilo\CoreBundle\Entity\User', 'u');
// Selecting course
$queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c');
@ -324,7 +347,7 @@ class UserRepository extends ResourceRepository
$queryBuilder->select('c');
// Loading User.
//$qb->from('Chamilo\UserBundle\Entity\User', 'u');
//$qb->from('Chamilo\CoreBundle\Entity\User', 'u');
// Selecting course
$queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c');
@ -486,7 +509,7 @@ class UserRepository extends ResourceRepository
// All users
if ('true' === $allowSendMessageToAllUsers || api_is_platform_admin()) {
$dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U
FROM ChamiloCoreBundle:User U
LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R
WITH U = R.user
WHERE
@ -497,7 +520,7 @@ class UserRepository extends ResourceRepository
} else {
$dql = 'SELECT DISTINCT U
FROM ChamiloCoreBundle:AccessUrlRelUser R, ChamiloCoreBundle:UserRelUser UF
INNER JOIN ChamiloUserBundle:User AS U
INNER JOIN ChamiloCoreBundle:User AS U
WITH UF.friendUserId = U
WHERE
U.active = 1 AND
@ -514,7 +537,7 @@ class UserRepository extends ResourceRepository
) {
if ('true' === $allowSendMessageToAllUsers) {
$dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U
FROM ChamiloCoreBundle:User U
LEFT JOIN ChamiloCoreBundle:AccessUrlRelUser R
WITH U = R.user
WHERE
@ -527,7 +550,7 @@ class UserRepository extends ResourceRepository
$online_time = time() - $time_limit * 60;
$limit_date = api_get_utc_datetime($online_time);
$dql = "SELECT DISTINCT U
FROM ChamiloUserBundle:User U
FROM ChamiloCoreBundle:User U
INNER JOIN ChamiloCoreBundle:TrackEOnline T
WITH U.id = T.loginUserId
WHERE

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

Loading…
Cancel
Save