diff --git a/composer.json b/composer.json index 3c357792db..3a704f8e7f 100755 --- a/composer.json +++ b/composer.json @@ -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": "*", diff --git a/config/bundles.php b/config/bundles.php index 2dcfc9726c..688992683a 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -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], ]; diff --git a/config/packages/security.yaml b/config/packages/security.yaml index b81804ee70..76c485afc1 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -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 diff --git a/public/index.php b/public/index.php index f0607c5cbe..293b74f1d6 100644 --- a/public/index.php +++ b/public/index.php @@ -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); diff --git a/public/main/admin/add_drh_to_user.php b/public/main/admin/add_drh_to_user.php index 562142d627..b04f8b745c 100644 --- a/public/main/admin/add_drh_to_user.php +++ b/public/main/admin/add_drh_to_user.php @@ -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; diff --git a/public/main/admin/course_edit.php b/public/main/admin/course_edit.php index eba50af671..7f86afc4a6 100644 --- a/public/main/admin/course_edit.php +++ b/public/main/admin/course_edit.php @@ -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; diff --git a/public/main/admin/user_information.php b/public/main/admin/user_information.php index 4463a5bf70..e09dd5a4af 100644 --- a/public/main/admin/user_information.php +++ b/public/main/admin/user_information.php @@ -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). diff --git a/public/main/admin/user_linking_requests.php b/public/main/admin/user_linking_requests.php index 3dee1d7dc7..8706d685d5 100644 --- a/public/main/admin/user_linking_requests.php +++ b/public/main/admin/user_linking_requests.php @@ -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; diff --git a/public/main/auth/profile.php b/public/main/auth/profile.php index d7399ecc1f..461e2f5b2d 100644 --- a/public/main/auth/profile.php +++ b/public/main/auth/profile.php @@ -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; /** diff --git a/public/main/auth/reset.php b/public/main/auth/reset.php index ed8d26e122..b3b0f7952d 100644 --- a/public/main/auth/reset.php +++ b/public/main/auth/reset.php @@ -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)) { diff --git a/public/main/auth/user_mail_confirmation.php b/public/main/auth/user_mail_confirmation.php index f03b26b09a..1b724fed36 100644 --- a/public/main/auth/user_mail_confirmation.php +++ b/public/main/auth/user_mail_confirmation.php @@ -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) { diff --git a/public/main/inc/ajax/message.ajax.php b/public/main/inc/ajax/message.ajax.php index d6b2e00e4d..69fa5847b7 100644 --- a/public/main/inc/ajax/message.ajax.php +++ b/public/main/inc/ajax/message.ajax.php @@ -1,7 +1,7 @@ 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;*/ } diff --git a/public/main/inc/lib/CourseChatUtils.php b/public/main/inc/lib/CourseChatUtils.php index fa8880f2dc..ad17eced2f 100644 --- a/public/main/inc/lib/CourseChatUtils.php +++ b/public/main/inc/lib/CourseChatUtils.php @@ -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 diff --git a/public/main/inc/lib/api.lib.php b/public/main/inc/lib/api.lib.php index ac9aae866c..097ceff626 100644 --- a/public/main/inc/lib/api.lib.php +++ b/public/main/inc/lib/api.lib.php @@ -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; /* diff --git a/public/main/inc/lib/database.lib.php b/public/main/inc/lib/database.lib.php index ed60f3a3b4..819c91d978 100644 --- a/public/main/inc/lib/database.lib.php +++ b/public/main/inc/lib/database.lib.php @@ -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', diff --git a/public/main/inc/lib/document.lib.php b/public/main/inc/lib/document.lib.php index 32332e55e5..f793e4b299 100644 --- a/public/main/inc/lib/document.lib.php +++ b/public/main/inc/lib/document.lib.php @@ -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; diff --git a/public/main/inc/lib/formvalidator/Element/UserAvatar.php b/public/main/inc/lib/formvalidator/Element/UserAvatar.php index c3a54c3949..1f5effd71d 100644 --- a/public/main/inc/lib/formvalidator/Element/UserAvatar.php +++ b/public/main/inc/lib/formvalidator/Element/UserAvatar.php @@ -1,12 +1,12 @@ user = !is_a($value, 'Chamilo\UserBundle\Entity\User') + $this->user = !is_a($value, 'Chamilo\CoreBundle\Entity\User') ? UserManager::getManager()->find($value) : $value; diff --git a/public/main/inc/lib/formvalidator/FormValidator.class.php b/public/main/inc/lib/formvalidator/FormValidator.class.php index 04fa3819cf..7423593f18 100644 --- a/public/main/inc/lib/formvalidator/FormValidator.class.php +++ b/public/main/inc/lib/formvalidator/FormValidator.class.php @@ -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 * diff --git a/public/main/inc/lib/groupmanager.lib.php b/public/main/inc/lib/groupmanager.lib.php index b2db11c987..fd3798fc48 100644 --- a/public/main/inc/lib/groupmanager.lib.php +++ b/public/main/inc/lib/groupmanager.lib.php @@ -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 diff --git a/public/main/inc/lib/login.lib.php b/public/main/inc/lib/login.lib.php index 12172b43c2..ee764b9f2c 100644 --- a/public/main/inc/lib/login.lib.php +++ b/public/main/inc/lib/login.lib.php @@ -1,7 +1,7 @@ ".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 diff --git a/public/main/inc/lib/sessionmanager.lib.php b/public/main/inc/lib/sessionmanager.lib.php index 023e59aca8..7196764c84 100644 --- a/public/main/inc/lib/sessionmanager.lib.php +++ b/public/main/inc/lib/sessionmanager.lib.php @@ -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; diff --git a/public/main/inc/lib/skill.lib.php b/public/main/inc/lib/skill.lib.php index df77f6cb5d..79aaf34dc3 100644 --- a/public/main/inc/lib/skill.lib.php +++ b/public/main/inc/lib/skill.lib.php @@ -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); } - }); - }); + }); + }); }); '; diff --git a/public/main/inc/lib/template.lib.php b/public/main/inc/lib/template.lib.php index c442dae745..e1c2e8c48f 100644 --- a/public/main/inc/lib/template.lib.php +++ b/public/main/inc/lib/template.lib.php @@ -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 ') diff --git a/public/main/inc/lib/tracking.lib.php b/public/main/inc/lib/tracking.lib.php index 61a336a6cb..ae6baf54cf 100644 --- a/public/main/inc/lib/tracking.lib.php +++ b/public/main/inc/lib/tracking.lib.php @@ -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; diff --git a/public/main/inc/lib/usermanager.lib.php b/public/main/inc/lib/usermanager.lib.php index 3d37d8db72..a16e79b7d2 100644 --- a/public/main/inc/lib/usermanager.lib.php +++ b/public/main/inc/lib/usermanager.lib.php @@ -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; } diff --git a/public/main/inc/lib/userportal.lib.php b/public/main/inc/lib/userportal.lib.php index 41b1eedc0b..1853040ae9 100644 --- a/public/main/inc/lib/userportal.lib.php +++ b/public/main/inc/lib/userportal.lib.php @@ -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); diff --git a/public/main/inc/lib/webservices/Rest.php b/public/main/inc/lib/webservices/Rest.php index e17103e154..54881217c2 100644 --- a/public/main/inc/lib/webservices/Rest.php +++ b/public/main/inc/lib/webservices/Rest.php @@ -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. diff --git a/public/main/inc/lib/webservices/WebService.class.php b/public/main/inc/lib/webservices/WebService.class.php index 826c475a40..508907f946 100644 --- a/public/main/inc/lib/webservices/WebService.class.php +++ b/public/main/inc/lib/webservices/WebService.class.php @@ -1,7 +1,7 @@ ['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); diff --git a/public/main/lp/learnpath.class.php b/public/main/lp/learnpath.class.php index 922134de7c..fbe1647aff 100644 --- a/public/main/lp/learnpath.class.php +++ b/public/main/lp/learnpath.class.php @@ -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; diff --git a/public/main/lp/lp_subscribe_users.php b/public/main/lp/lp_subscribe_users.php index f183d6182b..cae9f379d9 100644 --- a/public/main/lp/lp_subscribe_users.php +++ b/public/main/lp/lp_subscribe_users.php @@ -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'; diff --git a/public/main/lp/lp_subscribe_users_to_category.php b/public/main/lp/lp_subscribe_users_to_category.php index 3e1d933f61..205e4bfea3 100644 --- a/public/main/lp/lp_subscribe_users_to_category.php +++ b/public/main/lp/lp_subscribe_users_to_category.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'; diff --git a/public/main/mySpace/works_in_session_report.php b/public/main/mySpace/works_in_session_report.php index 0b293fd0a9..3a5fc08431 100644 --- a/public/main/mySpace/works_in_session_report.php +++ b/public/main/mySpace/works_in_session_report.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. diff --git a/public/main/portfolio/index.php b/public/main/portfolio/index.php index e482e06190..0639124427 100644 --- a/public/main/portfolio/index.php +++ b/public/main/portfolio/index.php @@ -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'])) { diff --git a/public/main/template/default/user_portal/classic_courses_without_category.html.twig b/public/main/template/default/user_portal/classic_courses_without_category.html.twig index 5ff6eac6a8..09a584abf1 100644 --- a/public/main/template/default/user_portal/classic_courses_without_category.html.twig +++ b/public/main/template/default/user_portal/classic_courses_without_category.html.twig @@ -45,19 +45,20 @@ {% endif %}

{% 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 %} - {{ item.title }} {{ item.code_course }} + {{ item.title }} {{ item.course_code }} {{ 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 %}

+ {% 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 %}
- {% 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 %}
diff --git a/public/main/template/default/user_portal/classic_session.html.twig b/public/main/template/default/user_portal/classic_session.html.twig index 4c79c8ee47..cca0e5acd0 100644 --- a/public/main/template/default/user_portal/classic_session.html.twig +++ b/public/main/template/default/user_portal/classic_session.html.twig @@ -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 %}
diff --git a/public/main/webservices/cm_webservice.php b/public/main/webservices/cm_webservice.php index e5a212014d..92facbbd71 100644 --- a/public/main/webservices/cm_webservice.php +++ b/public/main/webservices/cm_webservice.php @@ -1,7 +1,7 @@ 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); diff --git a/public/plugin/bbb/admin.php b/public/plugin/bbb/admin.php index 2835943790..a70d42eb39 100644 --- a/public/plugin/bbb/admin.php +++ b/public/plugin/bbb/admin.php @@ -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. diff --git a/public/plugin/buycourses/src/buycourses.ajax.php b/public/plugin/buycourses/src/buycourses.ajax.php index e538e927a8..a8d5a1adae 100644 --- a/public/plugin/buycourses/src/buycourses.ajax.php +++ b/public/plugin/buycourses/src/buycourses.ajax.php @@ -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. diff --git a/public/plugin/buycourses/src/service_process.php b/public/plugin/buycourses/src/service_process.php index 836782d057..48eba0bf65 100644 --- a/public/plugin/buycourses/src/service_process.php +++ b/public/plugin/buycourses/src/service_process.php @@ -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. diff --git a/public/plugin/grading_electronic/generate.php b/public/plugin/grading_electronic/generate.php index fe3a54061e..4e7c408611 100644 --- a/public/plugin/grading_electronic/generate.php +++ b/public/plugin/grading_electronic/generate.php @@ -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'; diff --git a/public/plugin/studentfollowup/Entity/CarePost.php b/public/plugin/studentfollowup/Entity/CarePost.php index 5e06fe72e8..c4016ac3ef 100644 --- a/public/plugin/studentfollowup/Entity/CarePost.php +++ b/public/plugin/studentfollowup/Entity/CarePost.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; diff --git a/public/plugin/whispeakauth/WhispeakAuthPlugin.php b/public/plugin/whispeakauth/WhispeakAuthPlugin.php index 57b6e5e9e4..abcb0362f9 100644 --- a/public/plugin/whispeakauth/WhispeakAuthPlugin.php +++ b/public/plugin/whispeakauth/WhispeakAuthPlugin.php @@ -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. diff --git a/public/plugin/whispeakauth/ajax/record_audio.php b/public/plugin/whispeakauth/ajax/record_audio.php index 226637444e..faeffce983 100644 --- a/public/plugin/whispeakauth/ajax/record_audio.php +++ b/public/plugin/whispeakauth/ajax/record_audio.php @@ -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()); diff --git a/src/CoreBundle/Component/Editor/Connector.php b/src/CoreBundle/Component/Editor/Connector.php index b0cab14751..ae4eb37ac6 100644 --- a/src/CoreBundle/Component/Editor/Connector.php +++ b/src/CoreBundle/Component/Editor/Connector.php @@ -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; diff --git a/src/CoreBundle/Controller/AccountController.php b/src/CoreBundle/Controller/AccountController.php index 6db4443bea..cb3c0a7b4d 100644 --- a/src/CoreBundle/Controller/AccountController.php +++ b/src/CoreBundle/Controller/AccountController.php @@ -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()]); diff --git a/src/CoreBundle/Controller/CourseHomeController.php b/src/CoreBundle/Controller/CourseHomeController.php index bab68183fb..69fe2e66bd 100644 --- a/src/CoreBundle/Controller/CourseHomeController.php +++ b/src/CoreBundle/Controller/CourseHomeController.php @@ -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(); diff --git a/src/CoreBundle/Controller/ResourceController.php b/src/CoreBundle/Controller/ResourceController.php index b8fcf3bb1e..3de4f83484 100644 --- a/src/CoreBundle/Controller/ResourceController.php +++ b/src/CoreBundle/Controller/ResourceController.php @@ -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, diff --git a/src/UserBundle/Controller/SecurityController.php b/src/CoreBundle/Controller/SecurityController.php similarity index 53% rename from src/UserBundle/Controller/SecurityController.php rename to src/CoreBundle/Controller/SecurityController.php index 790153cd66..cfd527443b 100644 --- a/src/UserBundle/Controller/SecurityController.php +++ b/src/CoreBundle/Controller/SecurityController.php @@ -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(), diff --git a/src/CoreBundle/Controller/SessionController.php b/src/CoreBundle/Controller/SessionController.php index a46c5f4486..15c8e40c7a 100644 --- a/src/CoreBundle/Controller/SessionController.php +++ b/src/CoreBundle/Controller/SessionController.php @@ -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; diff --git a/src/CoreBundle/Controller/UserController.php b/src/CoreBundle/Controller/UserController.php index bc5777909e..0d83e9acb8 100644 --- a/src/CoreBundle/Controller/UserController.php +++ b/src/CoreBundle/Controller/UserController.php @@ -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; /** diff --git a/src/CoreBundle/Entity/AccessUrlRelUser.php b/src/CoreBundle/Entity/AccessUrlRelUser.php index 7fcf1608b0..9d0cb9e147 100644 --- a/src/CoreBundle/Entity/AccessUrlRelUser.php +++ b/src/CoreBundle/Entity/AccessUrlRelUser.php @@ -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; diff --git a/src/CoreBundle/Entity/Course.php b/src/CoreBundle/Entity/Course.php index 01962d2280..5c69875064 100644 --- a/src/CoreBundle/Entity/Course.php +++ b/src/CoreBundle/Entity/Course.php @@ -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() * diff --git a/src/CoreBundle/Entity/CourseRelUser.php b/src/CoreBundle/Entity/CourseRelUser.php index 9a7369d893..ea878e9510 100644 --- a/src/CoreBundle/Entity/CourseRelUser.php +++ b/src/CoreBundle/Entity/CourseRelUser.php @@ -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; diff --git a/src/CoreBundle/Entity/CourseRelUserCatalogue.php b/src/CoreBundle/Entity/CourseRelUserCatalogue.php index 225c064b50..c9fd418c75 100644 --- a/src/CoreBundle/Entity/CourseRelUserCatalogue.php +++ b/src/CoreBundle/Entity/CourseRelUserCatalogue.php @@ -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; diff --git a/src/CoreBundle/Entity/CourseRequest.php b/src/CoreBundle/Entity/CourseRequest.php index b7cd04af25..bd1fc812d7 100644 --- a/src/CoreBundle/Entity/CourseRequest.php +++ b/src/CoreBundle/Entity/CourseRequest.php @@ -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; diff --git a/src/CoreBundle/Entity/ExtraFieldSavedSearch.php b/src/CoreBundle/Entity/ExtraFieldSavedSearch.php index 3231cf1cdf..9608cc7334 100644 --- a/src/CoreBundle/Entity/ExtraFieldSavedSearch.php +++ b/src/CoreBundle/Entity/ExtraFieldSavedSearch.php @@ -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; diff --git a/src/CoreBundle/Entity/GradebookCategory.php b/src/CoreBundle/Entity/GradebookCategory.php index 3c6f20d5d0..f101394741 100644 --- a/src/CoreBundle/Entity/GradebookCategory.php +++ b/src/CoreBundle/Entity/GradebookCategory.php @@ -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; diff --git a/src/CoreBundle/Entity/Group.php b/src/CoreBundle/Entity/Group.php new file mode 100644 index 0000000000..d700d02b93 --- /dev/null +++ b/src/CoreBundle/Entity/Group.php @@ -0,0 +1,144 @@ +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() ?: ''; + } +} diff --git a/src/CoreBundle/Entity/Manager/SessionManager.php b/src/CoreBundle/Entity/Manager/SessionManager.php index 87d2b93255..812f3907ee 100644 --- a/src/CoreBundle/Entity/Manager/SessionManager.php +++ b/src/CoreBundle/Entity/Manager/SessionManager.php @@ -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 diff --git a/src/CoreBundle/Entity/Manager/SettingsCurrentManager.php b/src/CoreBundle/Entity/Manager/SettingsCurrentManager.php deleted file mode 100644 index 8a960995e4..0000000000 --- a/src/CoreBundle/Entity/Manager/SettingsCurrentManager.php +++ /dev/null @@ -1,14 +0,0 @@ -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(); diff --git a/src/CoreBundle/Entity/UsergroupRelUser.php b/src/CoreBundle/Entity/UsergroupRelUser.php index 6e24addb63..11b4901e1d 100644 --- a/src/CoreBundle/Entity/UsergroupRelUser.php +++ b/src/CoreBundle/Entity/UsergroupRelUser.php @@ -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; diff --git a/src/CoreBundle/EventListener/LegacyListener.php b/src/CoreBundle/EventListener/LegacyListener.php index 2655532029..6d6b83eb64 100644 --- a/src/CoreBundle/EventListener/LegacyListener.php +++ b/src/CoreBundle/EventListener/LegacyListener.php @@ -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 */ diff --git a/src/CoreBundle/EventListener/LoginSuccessHandler.php b/src/CoreBundle/EventListener/LoginSuccessHandler.php index 6fddfe1ac2..a720411406 100644 --- a/src/CoreBundle/EventListener/LoginSuccessHandler.php +++ b/src/CoreBundle/EventListener/LoginSuccessHandler.php @@ -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; /** diff --git a/src/CoreBundle/EventListener/OnlineListener.php b/src/CoreBundle/EventListener/OnlineListener.php index 63eb89eac3..5dd154d732 100644 --- a/src/CoreBundle/EventListener/OnlineListener.php +++ b/src/CoreBundle/EventListener/OnlineListener.php @@ -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; diff --git a/src/UserBundle/Form/ProfileFosUserType.php b/src/CoreBundle/Form/ProfileFosUserType.php similarity index 91% rename from src/UserBundle/Form/ProfileFosUserType.php rename to src/CoreBundle/Form/ProfileFosUserType.php index 3614e82841..f5c19ec17c 100644 --- a/src/UserBundle/Form/ProfileFosUserType.php +++ b/src/CoreBundle/Form/ProfileFosUserType.php @@ -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', ] ); } diff --git a/src/UserBundle/Form/ProfileType.php b/src/CoreBundle/Form/ProfileType.php similarity index 98% rename from src/UserBundle/Form/ProfileType.php rename to src/CoreBundle/Form/ProfileType.php index badc491916..bdaea381df 100644 --- a/src/UserBundle/Form/ProfileType.php +++ b/src/CoreBundle/Form/ProfileType.php @@ -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', ] ); } diff --git a/src/CoreBundle/Form/SessionType.php b/src/CoreBundle/Form/SessionType.php index 1656f1514b..2035fea0c8 100644 --- a/src/CoreBundle/Form/SessionType.php +++ b/src/CoreBundle/Form/SessionType.php @@ -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', ] ) diff --git a/src/CoreBundle/Form/Type/CourseType.php b/src/CoreBundle/Form/Type/CourseType.php index b2499f23b9..3228dc7388 100644 --- a/src/CoreBundle/Form/Type/CourseType.php +++ b/src/CoreBundle/Form/Type/CourseType.php @@ -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', diff --git a/src/CoreBundle/Framework/Container.php b/src/CoreBundle/Framework/Container.php index 470a727b83..0c9f553ab7 100644 --- a/src/CoreBundle/Framework/Container.php +++ b/src/CoreBundle/Framework/Container.php @@ -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)); diff --git a/src/CoreBundle/Menu/MenuVoter.php b/src/CoreBundle/Menu/MenuVoter.php index 484be43321..b09ee7f2bb 100644 --- a/src/CoreBundle/Menu/MenuVoter.php +++ b/src/CoreBundle/Menu/MenuVoter.php @@ -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(); diff --git a/src/CoreBundle/Repository/CourseRepository.php b/src/CoreBundle/Repository/CourseRepository.php index cf4ed713f4..87b0ebc3ed 100644 --- a/src/CoreBundle/Repository/CourseRepository.php +++ b/src/CoreBundle/Repository/CourseRepository.php @@ -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' diff --git a/src/CoreBundle/Repository/GridInterface.php b/src/CoreBundle/Repository/GridInterface.php index 946c5eff94..251a725a64 100644 --- a/src/CoreBundle/Repository/GridInterface.php +++ b/src/CoreBundle/Repository/GridInterface.php @@ -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 diff --git a/src/UserBundle/Repository/GroupRepository.php b/src/CoreBundle/Repository/GroupRepository.php similarity index 90% rename from src/UserBundle/Repository/GroupRepository.php rename to src/CoreBundle/Repository/GroupRepository.php index c223373d28..1752a280bb 100644 --- a/src/UserBundle/Repository/GroupRepository.php +++ b/src/CoreBundle/Repository/GroupRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/IllustrationRepository.php b/src/CoreBundle/Repository/IllustrationRepository.php index d946516204..8cfaa0494d 100644 --- a/src/CoreBundle/Repository/IllustrationRepository.php +++ b/src/CoreBundle/Repository/IllustrationRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/MessageRepository.php b/src/CoreBundle/Repository/MessageRepository.php index 59fe1910fd..2f8b556452 100644 --- a/src/CoreBundle/Repository/MessageRepository.php +++ b/src/CoreBundle/Repository/MessageRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/PersonalFileRepository.php b/src/CoreBundle/Repository/PersonalFileRepository.php index 825a47c41e..145711e637 100644 --- a/src/CoreBundle/Repository/PersonalFileRepository.php +++ b/src/CoreBundle/Repository/PersonalFileRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/ResourceRepository.php b/src/CoreBundle/Repository/ResourceRepository.php index aa9877121d..dc722775cb 100644 --- a/src/CoreBundle/Repository/ResourceRepository.php +++ b/src/CoreBundle/Repository/ResourceRepository.php @@ -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); diff --git a/src/CoreBundle/Repository/SkillRepository.php b/src/CoreBundle/Repository/SkillRepository.php index c9464f9a7e..24b29de1a5 100644 --- a/src/CoreBundle/Repository/SkillRepository.php +++ b/src/CoreBundle/Repository/SkillRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/TemplatesRepository.php b/src/CoreBundle/Repository/TemplatesRepository.php index bbc4f6739c..50f462fef4 100644 --- a/src/CoreBundle/Repository/TemplatesRepository.php +++ b/src/CoreBundle/Repository/TemplatesRepository.php @@ -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; diff --git a/src/CoreBundle/Repository/TrackECourseAccessRepository.php b/src/CoreBundle/Repository/TrackECourseAccessRepository.php index 9895d3f545..13fe13849a 100644 --- a/src/CoreBundle/Repository/TrackECourseAccessRepository.php +++ b/src/CoreBundle/Repository/TrackECourseAccessRepository.php @@ -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; diff --git a/src/UserBundle/Repository/UserRepository.php b/src/CoreBundle/Repository/UserRepository.php similarity index 97% rename from src/UserBundle/Repository/UserRepository.php rename to src/CoreBundle/Repository/UserRepository.php index c8a9969682..93b005cf6a 100644 --- a/src/UserBundle/Repository/UserRepository.php +++ b/src/CoreBundle/Repository/UserRepository.php @@ -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 diff --git a/src/CoreBundle/Resources/config/repositories.yml b/src/CoreBundle/Resources/config/repositories.yml index cccd8efbcb..73c4e7aed8 100644 --- a/src/CoreBundle/Resources/config/repositories.yml +++ b/src/CoreBundle/Resources/config/repositories.yml @@ -31,8 +31,8 @@ services: arguments: $className: 'Chamilo\CoreBundle\Entity\PersonalFile' - Chamilo\UserBundle\Repository\UserRepository: + Chamilo\CoreBundle\Repository\UserRepository: arguments: - $className: 'Chamilo\UserBundle\Entity\User' + $className: 'Chamilo\CoreBundle\Entity\User' - Chamilo\UserBundle\Repository\GroupRepository: ~ + Chamilo\CoreBundle\Repository\GroupRepository: ~ diff --git a/src/CoreBundle/Resources/config/routing.yml b/src/CoreBundle/Resources/config/routing.yml deleted file mode 100644 index 1ff11e1354..0000000000 --- a/src/CoreBundle/Resources/config/routing.yml +++ /dev/null @@ -1,37 +0,0 @@ -legacy_main: - path: /main/{name} - defaults: {_controller: 'ChamiloCoreBundle:Legacy:classic'} - requirements: - name: .+ - -# Controllers -controllers: - resource: '../src/CoreBundle/Controller/' - type: annotation - -legacy_plugin: - path: /plugin/{name} - defaults: {_controller: 'ChamiloCoreBundle:Legacy:plugin'} - requirements: - name: .+ - -# web url shortcuts for legacy templates -web.ajax: - path: main/inc/ajax/ - -web.main: - path: main/ - -# Core controllers -core_admin: - resource: '@ChamiloCoreBundle/Controller/Admin' - type: annotation - prefix: /admin - -# Redirects /url/ to /url always located at the end -#remove_trailing_slash: -# path: /{url} -# defaults: {_controller: 'ChamiloCoreBundle:Redirecting:removeTrailingSlash'} -# requirements: -# url: .*/$ -# _method: GET diff --git a/src/CoreBundle/Resources/config/services.yml b/src/CoreBundle/Resources/config/services.yml index 265a26a679..213f9d2479 100644 --- a/src/CoreBundle/Resources/config/services.yml +++ b/src/CoreBundle/Resources/config/services.yml @@ -16,7 +16,7 @@ services: Chamilo\CoreBundle\: resource: '../../*' - exclude: '../../{Repository,Tool,Admin,Block,Component,Composer,DependencyInjection,EventListener,Form,Framework,Menu,Migrations,Security,Settings,ChamiloCoreBundle.php,Entity,Tests}' + exclude: '../../{Repository,Tool,Admin,Block,Component,Composer,DependencyInjection,EventListener,Form,Framework,Menu,Migrations,Settings,ChamiloCoreBundle.php,Entity,Tests}' public: true Chamilo\CoreBundle\Controller\: @@ -53,7 +53,13 @@ services: # Chamilo custom password encoder (depends on the password_encryption param) # chamilo_user.security.encoder: -# class: Chamilo\UserBundle\Security\Encoder +# class: Chamilo\CoreBundle\Security\Encoder +# bind: +# $passwordEncrypt: '%password_encryption%' + + Chamilo\CoreBundle\Security\Encoder: + arguments: + - '%password_encryption%' # Course voter checks if a user has permissions to do actions in a course chamilo_core.security.authorization.voter.course_voter: @@ -98,21 +104,21 @@ services: - {name: form.type, alias: yes_no} # # Extra field attribute services # chamilo_user.form.type.attribute_value_type: -# class: Chamilo\UserBundle\Form\Type\AttributeValueType +# class: Chamilo\CoreBundle\Form\Type\AttributeValueType # arguments: [Chamilo\CoreBundle\Entity\ExtraFieldValues, ['registration'], 'user', @sylius.repository.subject_name_attribute_value] # tags: # - {name: form.type, alias: chamilo_user_extra_field_value} ## # # chamilo_user.form.type.attribute_type: -# class: Chamilo\UserBundle\Form\Type\AttributeType +# class: Chamilo\CoreBundle\Form\Type\AttributeType # arguments: [Chamilo\CoreBundle\Entity\ExtraField, ['registration'], 'user'] ## arguments: [%sylius.attribute.attribute_types%] # tags: # - {name: form.type, alias: chamilo_user_attribute_type} # # chamilo_user.form.type.attribute_choice_type: -# class: Chamilo\UserBundle\Form\Type\AttributeTypeChoiceType +# class: Chamilo\CoreBundle\Form\Type\AttributeTypeChoiceType # arguments: [%sylius.attribute.attribute_types%] # tags: # - {name: form.type, alias: chamilo_user_attribute_choice} @@ -245,43 +251,43 @@ services: arguments: ['@router', '@security.authorization_checker', '@security.token_storage'] # Block services - chamilo_core.block.course: - class: Chamilo\CoreBundle\Block\CourseBlockService - arguments: [chamilo_core.block.course, '@templating'] - tags: - - {name: sonata.block} +# chamilo_core.block.course: +# class: Chamilo\CoreBundle\Block\CourseBlockService +# arguments: [chamilo_core.block.course, '@templating'] +# tags: +# - {name: sonata.block} - chamilo_core.block.skill: - class: Chamilo\CoreBundle\Block\SkillBlockService - arguments: [chamilo_core.block.skill, '@templating'] - tags: - - {name: sonata.block} +# chamilo_core.block.skill: +# class: Chamilo\CoreBundle\Block\SkillBlockService +# arguments: [chamilo_core.block.skill, '@templating'] +# tags: +# - {name: sonata.block} # Breadcrumb - chamilo_core.block.breadcrumb: - class: Chamilo\CoreBundle\Block\BreadcrumbBlockService - arguments: ['chamilo_core.block.breadcrumb', 'breadcrumb', '@templating', '@knp_menu.menu_provider', '@knp_menu.factory'] - tags: - - {name: sonata.block} - - {name: sonata.breadcrumb} +# chamilo_core.block.breadcrumb: +# class: Chamilo\CoreBundle\Block\BreadcrumbBlockService +# arguments: ['chamilo_core.block.breadcrumb', 'breadcrumb', '@templating', '@knp_menu.menu_provider', '@knp_menu.factory'] +# tags: +# - {name: sonata.block} +# - {name: sonata.breadcrumb} - Chamilo\CoreBundle\Block\BreadcrumbBlockService: '@chamilo_core.block.breadcrumb' +# Chamilo\CoreBundle\Block\BreadcrumbBlockService: '@chamilo_core.block.breadcrumb' - Chamilo\CoreBundle\Controller\ResourceUploadController: - autowire: false +# Chamilo\CoreBundle\Controller\ResourceUploadController: +# autowire: false # Form types - chamilo_user.registration.form.type: - class: Chamilo\UserBundle\Form\Type\RegistrationFormType - arguments: ['%fos_user.model.user.class%'] - tags: - - {name: form.type, alias: chamilo_sonata_user_registration} +# chamilo_user.registration.form.type: +# class: Chamilo\CoreBundle\Form\Type\RegistrationFormType +# arguments: ['%fos_user.model.user.class%'] +# tags: +# - {name: form.type, alias: chamilo_sonata_user_registration} - chamilo_user.profile.form.type: - class: Chamilo\UserBundle\Form\ProfileType - arguments: ['%fos_user.model.user.class%'] - tags: - - {name: form.type, alias: chamilo_sonata_user_profile} +# chamilo_user.profile.form.type: +# class: Chamilo\CoreBundle\Form\ProfileType +# arguments: ['%fos_user.model.user.class%'] +# tags: +# - {name: form.type, alias: chamilo_sonata_user_profile} Liip\ImagineBundle\Service\FilterService: alias: 'liip_imagine.service.filter' diff --git a/src/CoreBundle/Resources/config/tools.yml b/src/CoreBundle/Resources/config/tools.yml index d5cb1d7338..3499d331ff 100644 --- a/src/CoreBundle/Resources/config/tools.yml +++ b/src/CoreBundle/Resources/config/tools.yml @@ -22,7 +22,7 @@ services: courses: repository: Chamilo\CoreBundle\Repository\CourseRepository users: - repository: Chamilo\UserBundle\Repository\UserRepository + repository: Chamilo\CoreBundle\Repository\UserRepository tags: - {name: chamilo_core.tool} diff --git a/src/UserBundle/Resources/views/ChangePassword/changePassword.html.twig b/src/CoreBundle/Resources/views/ChangePassword/changePassword.html.twig similarity index 100% rename from src/UserBundle/Resources/views/ChangePassword/changePassword.html.twig rename to src/CoreBundle/Resources/views/ChangePassword/changePassword.html.twig diff --git a/src/UserBundle/Resources/views/ChangePassword/changePassword_content.html.twig b/src/CoreBundle/Resources/views/ChangePassword/changePassword_content.html.twig similarity index 100% rename from src/UserBundle/Resources/views/ChangePassword/changePassword_content.html.twig rename to src/CoreBundle/Resources/views/ChangePassword/changePassword_content.html.twig diff --git a/src/UserBundle/Resources/views/Profile/action.html.twig b/src/CoreBundle/Resources/views/Profile/action.html.twig similarity index 93% rename from src/UserBundle/Resources/views/Profile/action.html.twig rename to src/CoreBundle/Resources/views/Profile/action.html.twig index 393d11061f..e5019267d1 100644 --- a/src/UserBundle/Resources/views/Profile/action.html.twig +++ b/src/CoreBundle/Resources/views/Profile/action.html.twig @@ -29,7 +29,7 @@ file that was distributed with this source code.
- {% include 'SonataCoreBundle:FlashMessage:render.html.twig' %} +{# {% include 'SonataCoreBundle:FlashMessage:render.html.twig' %}#} {% block sonata_profile_content '' %}
diff --git a/src/UserBundle/Resources/views/Profile/edit_authentication.html.twig b/src/CoreBundle/Resources/views/Profile/edit_authentication.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Profile/edit_authentication.html.twig rename to src/CoreBundle/Resources/views/Profile/edit_authentication.html.twig diff --git a/src/UserBundle/Resources/views/Profile/edit_profile.html.twig b/src/CoreBundle/Resources/views/Profile/edit_profile.html.twig similarity index 97% rename from src/UserBundle/Resources/views/Profile/edit_profile.html.twig rename to src/CoreBundle/Resources/views/Profile/edit_profile.html.twig index aeac1ad96a..be5d8d427a 100644 --- a/src/UserBundle/Resources/views/Profile/edit_profile.html.twig +++ b/src/CoreBundle/Resources/views/Profile/edit_profile.html.twig @@ -1,4 +1,4 @@ -{% extends "ChamiloUserBundle:Profile:action.html.twig" %} +{% extends "ChamiloCoreBundle:Profile:action.html.twig" %} {% block sonata_profile_title %} {{ "title_user_account" | trans({}, 'SonataUserBundle')}} - {{ "title_user_edit_profile" | trans({}, 'SonataUserBundle')}} diff --git a/src/UserBundle/Resources/views/Profile/show.html.twig b/src/CoreBundle/Resources/views/Profile/show.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Profile/show.html.twig rename to src/CoreBundle/Resources/views/Profile/show.html.twig diff --git a/src/UserBundle/Resources/views/Registration/register_content.html.twig b/src/CoreBundle/Resources/views/Registration/register_content.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Registration/register_content.html.twig rename to src/CoreBundle/Resources/views/Registration/register_content.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/checkEmail.html.twig b/src/CoreBundle/Resources/views/Resetting/checkEmail.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/checkEmail.html.twig rename to src/CoreBundle/Resources/views/Resetting/checkEmail.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/email.txt.twig b/src/CoreBundle/Resources/views/Resetting/email.txt.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/email.txt.twig rename to src/CoreBundle/Resources/views/Resetting/email.txt.twig diff --git a/src/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig b/src/CoreBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig rename to src/CoreBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/request.html.twig b/src/CoreBundle/Resources/views/Resetting/request.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/request.html.twig rename to src/CoreBundle/Resources/views/Resetting/request.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/request_content.html.twig b/src/CoreBundle/Resources/views/Resetting/request_content.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/request_content.html.twig rename to src/CoreBundle/Resources/views/Resetting/request_content.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/reset.html.twig b/src/CoreBundle/Resources/views/Resetting/reset.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/reset.html.twig rename to src/CoreBundle/Resources/views/Resetting/reset.html.twig diff --git a/src/UserBundle/Resources/views/Resetting/reset_content.html.twig b/src/CoreBundle/Resources/views/Resetting/reset_content.html.twig similarity index 100% rename from src/UserBundle/Resources/views/Resetting/reset_content.html.twig rename to src/CoreBundle/Resources/views/Resetting/reset_content.html.twig diff --git a/src/UserBundle/Resources/views/layout.html.twig b/src/CoreBundle/Resources/views/layout.html.twig similarity index 100% rename from src/UserBundle/Resources/views/layout.html.twig rename to src/CoreBundle/Resources/views/layout.html.twig diff --git a/src/UserBundle/Resources/views/login.html.twig b/src/CoreBundle/Resources/views/login.html.twig similarity index 76% rename from src/UserBundle/Resources/views/login.html.twig rename to src/CoreBundle/Resources/views/login.html.twig index 096afb7f43..f5f68f18c6 100644 --- a/src/UserBundle/Resources/views/login.html.twig +++ b/src/CoreBundle/Resources/views/login.html.twig @@ -1,4 +1,4 @@ -{% extends "@ChamiloUser/layout.html.twig" %} +{% extends "@ChamiloCore/layout.html.twig" %} {% block fos_user_content %} {% block sonata_user_login %} @@ -15,18 +15,17 @@
- {{ form_label(form._username, 'Username' | trans , {'label_attr': {'class': 'label-input'}}) }} - {{ form_widget(form._username, {'attr': {'placeholder': 'Type your username', 'class': 'input-login'}}) }} + +
- {{ form_label(form._password, 'Password' | trans , {'label_attr': {'class': 'label-input'}})}} - {{ form_widget(form._password, {'attr': {'placeholder': 'Type your password', 'class': 'input-login'}}) }} + +
- {{ form_widget(form,{ 'attr': {'class': 'login'} }) }}
@@ -39,7 +38,6 @@
- {##} {{ 'forgotten_password'|trans({}, 'SonataUserBundle') }} diff --git a/src/UserBundle/Resources/views/login_sidebar.html.twig b/src/CoreBundle/Resources/views/login_sidebar.html.twig similarity index 100% rename from src/UserBundle/Resources/views/login_sidebar.html.twig rename to src/CoreBundle/Resources/views/login_sidebar.html.twig diff --git a/src/CoreBundle/Security/Authorization/Voter/CourseVoter.php b/src/CoreBundle/Security/Authorization/Voter/CourseVoter.php index 36721a49ad..6019e43bd1 100644 --- a/src/CoreBundle/Security/Authorization/Voter/CourseVoter.php +++ b/src/CoreBundle/Security/Authorization/Voter/CourseVoter.php @@ -6,7 +6,7 @@ namespace Chamilo\CoreBundle\Security\Authorization\Voter; use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Repository\CourseRepository; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; diff --git a/src/CoreBundle/Security/Authorization/Voter/SessionVoter.php b/src/CoreBundle/Security/Authorization/Voter/SessionVoter.php index ad0d08782a..16690a810c 100644 --- a/src/CoreBundle/Security/Authorization/Voter/SessionVoter.php +++ b/src/CoreBundle/Security/Authorization/Voter/SessionVoter.php @@ -6,7 +6,7 @@ namespace Chamilo\CoreBundle\Security\Authorization\Voter; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\CourseRepository; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; diff --git a/src/UserBundle/Security/Encoder.php b/src/CoreBundle/Security/Encoder.php similarity index 98% rename from src/UserBundle/Security/Encoder.php rename to src/CoreBundle/Security/Encoder.php index 5fe89a0807..27bd35b809 100644 --- a/src/UserBundle/Security/Encoder.php +++ b/src/CoreBundle/Security/Encoder.php @@ -2,7 +2,7 @@ /* For licensing terms, see /license.txt */ -namespace Chamilo\UserBundle\Security; +namespace Chamilo\CoreBundle\Security; use Symfony\Component\Security\Core\Encoder\BasePasswordEncoder; use Symfony\Component\Security\Core\Encoder\BCryptPasswordEncoder; diff --git a/src/UserBundle/Security/LoginFormAuthenticator.php b/src/CoreBundle/Security/LoginFormAuthenticator.php similarity index 50% rename from src/UserBundle/Security/LoginFormAuthenticator.php rename to src/CoreBundle/Security/LoginFormAuthenticator.php index 94d5261991..856b34d28c 100644 --- a/src/UserBundle/Security/LoginFormAuthenticator.php +++ b/src/CoreBundle/Security/LoginFormAuthenticator.php @@ -2,53 +2,93 @@ /* For licensing terms, see /license.txt */ -namespace Chamilo\UserBundle\Security; +namespace Chamilo\CoreBundle\Security; +use Chamilo\CoreBundle\Entity\User; use Chamilo\CoreBundle\Hook\CheckLoginCredentialsHook; use Chamilo\CoreBundle\Hook\HookFactory; -use Chamilo\UserBundle\Form\LoginType; +use Chamilo\CoreBundle\Form\LoginType; +use Chamilo\CoreBundle\Repository\UserRepository; +use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\RouterInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; +use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException; +use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException; use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserProviderInterface; +use Symfony\Component\Security\Csrf\CsrfToken; +use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator; +use Symfony\Component\Security\Guard\PasswordAuthenticatedInterface; +use Symfony\Component\Security\Http\Util\TargetPathTrait; /** * Class LoginFormAuthenticator. */ -class LoginFormAuthenticator extends AbstractFormLoginAuthenticator +class LoginFormAuthenticator extends AbstractFormLoginAuthenticator implements PasswordAuthenticatedInterface { + use TargetPathTrait; + + private const LOGIN_ROUTE = 'login'; + private $router; private $passwordEncoder; private $formFactory; private $hookFactory; + private $userRepository; + private $csrfTokenManager; + private $urlGenerator; public function __construct( + EntityManagerInterface $entityManager, + UrlGeneratorInterface $urlGenerator, RouterInterface $router, UserPasswordEncoderInterface $passwordEncoder, FormFactoryInterface $formFactory, - HookFactory $hookFactory + HookFactory $hookFactory, + UserRepository $userRepository, + CsrfTokenManagerInterface $csrfTokenManager + ) { $this->router = $router; $this->passwordEncoder = $passwordEncoder; $this->formFactory = $formFactory; //$this->settingsManager = $settingsManager; $this->hookFactory = $hookFactory; + $this->userRepository = $userRepository; + $this->csrfTokenManager = $csrfTokenManager; + $this->entityManager = $entityManager; + $this->urlGenerator = $urlGenerator; + $this->csrfTokenManager = $csrfTokenManager; + $this->passwordEncoder = $passwordEncoder; + } public function supports(Request $request): bool { - if ('/login' !== $request->getPathInfo() || 'POST' != $request->getMethod()) { - return false; - } + return self::LOGIN_ROUTE === $request->attributes->get('_route') && $request->isMethod('POST'); + } - return true; + public function getCredentials(Request $request): array + { + $credentials = [ + 'username' => $request->request->get('username'), + 'password' => $request->request->get('password'), + 'csrf_token' => $request->request->get('_csrf_token'), + ]; + $request->getSession()->set( + Security::LAST_USERNAME, + $credentials['username'] + ); + + return $credentials; } /** @@ -58,7 +98,19 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator */ public function getUser($credentials, UserProviderInterface $userProvider) { - return $userProvider->loadUserByUsername($credentials['_username']); + $token = new CsrfToken('authenticate', $credentials['csrf_token']); + if (!$this->csrfTokenManager->isTokenValid($token)) { + throw new InvalidCsrfTokenException(); + } + + $user = $this->entityManager->getRepository(User::class)->findOneBy(['username' => $credentials['username']]); + + if (!$user) { + // fail authentication with a custom error + throw new CustomUserMessageAuthenticationException('username could not be found.'); + } + + return $user; } /** @@ -68,7 +120,7 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator */ public function checkCredentials($credentials, UserInterface $user) { - if ($this->passwordEncoder->isPasswordValid($user, $credentials['_password'])) { + if ($this->passwordEncoder->isPasswordValid($user, $credentials['password'])) { return true; } @@ -83,15 +135,18 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator return $hook->notifyLoginCredentials(); } - public function onAuthenticationFailure(Request $request, AuthenticationException $exception): RedirectResponse + /** + * Used to upgrade (rehash) the user's password automatically over time. + */ + public function getPassword($credentials): ?string { - $request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); - - return new RedirectResponse($this->router->generate('login')); + return $credentials['password']; } - public function getLoginUrl(): RedirectResponse + public function onAuthenticationFailure(Request $request, AuthenticationException $exception): RedirectResponse { + $request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); + return new RedirectResponse($this->router->generate('login')); } @@ -100,25 +155,15 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator */ public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey): RedirectResponse { - return new RedirectResponse($this->router->generate('home')); - } - - public function getCredentials(Request $request): array - { - if ('/login' !== $request->getPathInfo() || !$request->isMethod('POST')) { - return false; + if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) { + return new RedirectResponse($targetPath); } - $form = $this->formFactory->create(LoginType::class); - - $form->handleRequest($request); - $data = $form->getData(); - - $request->getSession()->set( - Security::LAST_USERNAME, - $data['_username'] - ); + return new RedirectResponse($this->urlGenerator->generate('home')); + } - return $data; + public function getLoginUrl(): RedirectResponse + { + return $this->urlGenerator->generate(self::LOGIN_ROUTE); } } diff --git a/src/CoreBundle/Security/TokenAuthenticator.php b/src/CoreBundle/Security/TokenAuthenticator.php new file mode 100644 index 0000000000..31d844c3a1 --- /dev/null +++ b/src/CoreBundle/Security/TokenAuthenticator.php @@ -0,0 +1,103 @@ +em = $em; + } + + /** + * Called on every request to decide if this authenticator should be + * used for the request. Returning `false` will cause this authenticator + * to be skipped. + */ + public function supports(Request $request) + { + return $request->headers->has('X-AUTH-TOKEN'); + } + + /** + * Called on every request. Return whatever credentials you want to + * be passed to getUser() as $credentials. + */ + public function getCredentials(Request $request) + { + return $request->headers->get('X-AUTH-TOKEN'); + } + + public function getUser($credentials, UserProviderInterface $userProvider) + { + if (null === $credentials) { + // The token header was empty, authentication fails with HTTP Status + // Code 401 "Unauthorized" + return null; + } + + // if a User is returned, checkCredentials() is called + return $this->em->getRepository(User::class) + ->findOneBy(['apiToken' => $credentials]) + ; + } + + public function checkCredentials($credentials, UserInterface $user) + { + // Check credentials - e.g. make sure the password is valid. + // In case of an API token, no credential check is needed. + + // Return `true` to cause authentication success + return true; + } + + public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) + { + // on success, let the request continue + return null; + } + + public function onAuthenticationFailure(Request $request, AuthenticationException $exception) + { + $data = [ + // you may want to customize or obfuscate the message first + 'message' => strtr($exception->getMessageKey(), $exception->getMessageData()) + + // or to translate this message + // $this->translator->trans($exception->getMessageKey(), $exception->getMessageData()) + ]; + + return new JsonResponse($data, Response::HTTP_UNAUTHORIZED); + } + + /** + * Called when authentication is needed, but it's not sent + */ + public function start(Request $request, AuthenticationException $authException = null) + { + $data = [ + // you might translate this message + 'message' => 'Authentication Required' + ]; + + return new JsonResponse($data, Response::HTTP_UNAUTHORIZED); + } + + public function supportsRememberMe() + { + return false; + } +} diff --git a/src/CoreBundle/Traits/ControllerTrait.php b/src/CoreBundle/Traits/ControllerTrait.php index 12595dc87e..5175340879 100644 --- a/src/CoreBundle/Traits/ControllerTrait.php +++ b/src/CoreBundle/Traits/ControllerTrait.php @@ -18,7 +18,7 @@ trait ControllerTrait { $services = parent::getSubscribedServices(); $services['translator'] = TranslatorInterface::class; - $services['breadcrumb'] = BreadcrumbBlockService::class; + //$services['breadcrumb'] = BreadcrumbBlockService::class; $services['resource_factory'] = ResourceFactory::class; $services['glide'] = Glide::class; diff --git a/src/CoreBundle/Traits/ResourceControllerTrait.php b/src/CoreBundle/Traits/ResourceControllerTrait.php index 84b89e52c5..e676b90aa5 100644 --- a/src/CoreBundle/Traits/ResourceControllerTrait.php +++ b/src/CoreBundle/Traits/ResourceControllerTrait.php @@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceInterface; use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Repository\ResourceFactory; use Chamilo\CoreBundle\Repository\ResourceRepository; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\EntityNotFoundException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\Exception\AccessDeniedException; @@ -108,6 +108,7 @@ trait ResourceControllerTrait private function setBreadCrumb(Request $request, ResourceNode $resourceNode) { + return false; $tool = $request->get('tool'); $resourceNodeId = $request->get('id'); $routeParams = $this->getResourceParams($request); diff --git a/src/CourseBundle/Entity/CDocument.php b/src/CourseBundle/Entity/CDocument.php index e3aa84fa18..425abb5def 100644 --- a/src/CourseBundle/Entity/CDocument.php +++ b/src/CourseBundle/Entity/CDocument.php @@ -22,7 +22,8 @@ use Symfony\Component\Serializer\Annotation\Groups; * @ApiResource( * shortName="Documents", * attributes={"security"="is_granted('ROLE_ADMIN')"}, - * normalizationContext={"groups"={"document:read", "resource_node"}, "swagger_definition_name"="Read"} + * normalizationContext={"groups"={"document:read", "resource_node"}}, + * denormalizationContext={"groups"={"document:write"}} * ) * @ApiFilter(PropertyFilter::class) * @ApiFilter(SearchFilter::class, properties={"title": "partial", "course.code": "partial"}) diff --git a/src/CourseBundle/Entity/CGroupInfo.php b/src/CourseBundle/Entity/CGroupInfo.php index 580e8ec40c..0e769fb351 100644 --- a/src/CourseBundle/Entity/CGroupInfo.php +++ b/src/CourseBundle/Entity/CGroupInfo.php @@ -8,7 +8,7 @@ use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Resource\AbstractResource; use Chamilo\CoreBundle\Entity\Resource\ResourceInterface; use Chamilo\CoreBundle\Traits\CourseTrait; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Criteria; use Doctrine\ORM\Mapping as ORM; diff --git a/src/CourseBundle/Entity/CGroupRelTutor.php b/src/CourseBundle/Entity/CGroupRelTutor.php index 60d9336936..ddb7770767 100644 --- a/src/CourseBundle/Entity/CGroupRelTutor.php +++ b/src/CourseBundle/Entity/CGroupRelTutor.php @@ -4,7 +4,7 @@ namespace Chamilo\CourseBundle\Entity; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\Mapping as ORM; /** @@ -46,7 +46,7 @@ class CGroupRelTutor /** * @var User * - * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="courseGroupsAsTutor") + * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="courseGroupsAsTutor") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) */ protected $user; diff --git a/src/CourseBundle/Entity/CGroupRelUser.php b/src/CourseBundle/Entity/CGroupRelUser.php index 439a887191..c68b6633b5 100644 --- a/src/CourseBundle/Entity/CGroupRelUser.php +++ b/src/CourseBundle/Entity/CGroupRelUser.php @@ -4,7 +4,7 @@ namespace Chamilo\CourseBundle\Entity; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\Mapping as ORM; /** @@ -46,7 +46,7 @@ class CGroupRelUser /** * @var User * - * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User", inversedBy="courseGroupsAsMember") + * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User", inversedBy="courseGroupsAsMember") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) */ protected $user; diff --git a/src/CourseBundle/Entity/CLpCategory.php b/src/CourseBundle/Entity/CLpCategory.php index 2778c1107d..32ad372c7f 100644 --- a/src/CourseBundle/Entity/CLpCategory.php +++ b/src/CourseBundle/Entity/CLpCategory.php @@ -6,7 +6,7 @@ namespace Chamilo\CourseBundle\Entity; use Chamilo\CoreBundle\Entity\Resource\AbstractResource; use Chamilo\CoreBundle\Entity\Resource\ResourceInterface; -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; diff --git a/src/CourseBundle/Entity/CLpCategoryUser.php b/src/CourseBundle/Entity/CLpCategoryUser.php index e0b95e2304..fdf206955b 100644 --- a/src/CourseBundle/Entity/CLpCategoryUser.php +++ b/src/CourseBundle/Entity/CLpCategoryUser.php @@ -4,7 +4,7 @@ namespace Chamilo\CourseBundle\Entity; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\Mapping as ORM; /** @@ -33,7 +33,7 @@ class CLpCategoryUser /** * @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; diff --git a/src/CourseBundle/Entity/CTool.php b/src/CourseBundle/Entity/CTool.php index fb29399356..48733b7749 100644 --- a/src/CourseBundle/Entity/CTool.php +++ b/src/CourseBundle/Entity/CTool.php @@ -298,6 +298,6 @@ class CTool extends AbstractResource implements ResourceInterface public function getResourceName(): string { - return (string) $this->getName(); + return $this->getName(); } } diff --git a/src/CourseBundle/Event/CourseAccess.php b/src/CourseBundle/Event/CourseAccess.php index c07721f5b0..aa4086b3cf 100644 --- a/src/CourseBundle/Event/CourseAccess.php +++ b/src/CourseBundle/Event/CourseAccess.php @@ -5,7 +5,7 @@ namespace Chamilo\CourseBundle\Event; use Chamilo\CoreBundle\Entity\Course; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Symfony\Component\EventDispatcher\Event; /** diff --git a/src/CourseBundle/Event/SessionAccess.php b/src/CourseBundle/Event/SessionAccess.php index 7b96c6e1e5..0bcafae380 100644 --- a/src/CourseBundle/Event/SessionAccess.php +++ b/src/CourseBundle/Event/SessionAccess.php @@ -6,7 +6,7 @@ namespace Chamilo\CourseBundle\Event; use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Session; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Symfony\Component\EventDispatcher\Event; /** diff --git a/src/CourseBundle/EventListener/CourseListener.php b/src/CourseBundle/EventListener/CourseListener.php index e38c733232..a1ed12d6a4 100644 --- a/src/CourseBundle/EventListener/CourseListener.php +++ b/src/CourseBundle/EventListener/CourseListener.php @@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Security\Authorization\Voter\CourseVoter; use Chamilo\CoreBundle\Security\Authorization\Voter\GroupVoter; use Chamilo\CoreBundle\Security\Authorization\Voter\SessionVoter; use Chamilo\CourseBundle\Controller\CourseControllerInterface; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\EntityManager; use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\DependencyInjection\ContainerInterface; diff --git a/src/CourseBundle/Repository/CChatConversationRepository.php b/src/CourseBundle/Repository/CChatConversationRepository.php index 67ff98ac04..a857f45662 100644 --- a/src/CourseBundle/Repository/CChatConversationRepository.php +++ b/src/CourseBundle/Repository/CChatConversationRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; final class CChatConversationRepository extends ResourceRepository diff --git a/src/CourseBundle/Repository/CCourseDescriptionRepository.php b/src/CourseBundle/Repository/CCourseDescriptionRepository.php index 54722db508..3c0f45fb96 100644 --- a/src/CourseBundle/Repository/CCourseDescriptionRepository.php +++ b/src/CourseBundle/Repository/CCourseDescriptionRepository.php @@ -16,7 +16,7 @@ use Chamilo\CoreBundle\Repository\GridInterface; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CCourseDescription; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/CourseBundle/Repository/CDocumentRepository.php b/src/CourseBundle/Repository/CDocumentRepository.php index 203c430e4c..c01db7f276 100644 --- a/src/CourseBundle/Repository/CDocumentRepository.php +++ b/src/CourseBundle/Repository/CDocumentRepository.php @@ -17,7 +17,7 @@ use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CoreBundle\Repository\UploadInterface; use Chamilo\CourseBundle\Entity\CDocument; 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; diff --git a/src/CourseBundle/Repository/CForumAttachmentRepository.php b/src/CourseBundle/Repository/CForumAttachmentRepository.php index d8831ff38b..588e58de5d 100644 --- a/src/CourseBundle/Repository/CForumAttachmentRepository.php +++ b/src/CourseBundle/Repository/CForumAttachmentRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; /** diff --git a/src/CourseBundle/Repository/CForumCategoryRepository.php b/src/CourseBundle/Repository/CForumCategoryRepository.php index 3877dd1a90..ff9f8f3fa1 100644 --- a/src/CourseBundle/Repository/CForumCategoryRepository.php +++ b/src/CourseBundle/Repository/CForumCategoryRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; class CForumCategoryRepository extends ResourceRepository diff --git a/src/CourseBundle/Repository/CForumPostRepository.php b/src/CourseBundle/Repository/CForumPostRepository.php index c4be49589d..ee76514f36 100644 --- a/src/CourseBundle/Repository/CForumPostRepository.php +++ b/src/CourseBundle/Repository/CForumPostRepository.php @@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CForumPost; use Chamilo\CourseBundle\Entity\CForumThread; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; /** * Class CForumPostRepository. diff --git a/src/CourseBundle/Repository/CGlossaryRepository.php b/src/CourseBundle/Repository/CGlossaryRepository.php index f91e63971f..982165de46 100644 --- a/src/CourseBundle/Repository/CGlossaryRepository.php +++ b/src/CourseBundle/Repository/CGlossaryRepository.php @@ -16,7 +16,7 @@ use Chamilo\CoreBundle\Repository\GridInterface; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGlossary; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/CourseBundle/Repository/CLinkCategoryRepository.php b/src/CourseBundle/Repository/CLinkCategoryRepository.php index d7846a8179..be9bf1295f 100644 --- a/src/CourseBundle/Repository/CLinkCategoryRepository.php +++ b/src/CourseBundle/Repository/CLinkCategoryRepository.php @@ -15,7 +15,7 @@ use Chamilo\CoreBundle\Repository\GridInterface; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CLink; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/CourseBundle/Repository/CLinkRepository.php b/src/CourseBundle/Repository/CLinkRepository.php index 2d0171e4bf..32f465e7e1 100644 --- a/src/CourseBundle/Repository/CLinkRepository.php +++ b/src/CourseBundle/Repository/CLinkRepository.php @@ -14,7 +14,7 @@ use Chamilo\CoreBundle\Repository\GridInterface; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CLink; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/CourseBundle/Repository/CNotebookRepository.php b/src/CourseBundle/Repository/CNotebookRepository.php index e4b63a293d..d027a54efe 100644 --- a/src/CourseBundle/Repository/CNotebookRepository.php +++ b/src/CourseBundle/Repository/CNotebookRepository.php @@ -7,7 +7,7 @@ namespace Chamilo\CourseBundle\Repository; use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CourseBundle\Entity\CNotebook; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Common\Persistence\ManagerRegistry; diff --git a/src/CourseBundle/Repository/CShortcutRepository.php b/src/CourseBundle/Repository/CShortcutRepository.php index 8bc0ac9673..76d43c70fa 100644 --- a/src/CourseBundle/Repository/CShortcutRepository.php +++ b/src/CourseBundle/Repository/CShortcutRepository.php @@ -11,7 +11,7 @@ use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; use Chamilo\CourseBundle\Entity\CShortcut; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/CourseBundle/Repository/CStudentPublicationRepository.php b/src/CourseBundle/Repository/CStudentPublicationRepository.php index e9e7a4219b..e6084f85e2 100644 --- a/src/CourseBundle/Repository/CStudentPublicationRepository.php +++ b/src/CourseBundle/Repository/CStudentPublicationRepository.php @@ -7,7 +7,7 @@ namespace Chamilo\CourseBundle\Repository; use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\Query\Expr\Join; /** diff --git a/src/CourseBundle/Repository/CThematicAdvanceRepository.php b/src/CourseBundle/Repository/CThematicAdvanceRepository.php index bb22d5f9a5..d966bfec9a 100644 --- a/src/CourseBundle/Repository/CThematicAdvanceRepository.php +++ b/src/CourseBundle/Repository/CThematicAdvanceRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; final class CThematicAdvanceRepository extends ResourceRepository diff --git a/src/CourseBundle/Repository/CThematicPlanRepository.php b/src/CourseBundle/Repository/CThematicPlanRepository.php index 894c99e96c..d477891300 100644 --- a/src/CourseBundle/Repository/CThematicPlanRepository.php +++ b/src/CourseBundle/Repository/CThematicPlanRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; final class CThematicPlanRepository extends ResourceRepository diff --git a/src/CourseBundle/Repository/CThematicRepository.php b/src/CourseBundle/Repository/CThematicRepository.php index 4fb3ac13c1..e073576a5a 100644 --- a/src/CourseBundle/Repository/CThematicRepository.php +++ b/src/CourseBundle/Repository/CThematicRepository.php @@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; final class CThematicRepository extends ResourceRepository diff --git a/src/CourseBundle/Repository/CToolRepository.php b/src/CourseBundle/Repository/CToolRepository.php index 70e47db9ca..9b27b68996 100644 --- a/src/CourseBundle/Repository/CToolRepository.php +++ b/src/CourseBundle/Repository/CToolRepository.php @@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\Resource\ResourceNode; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Repository\ResourceRepository; use Chamilo\CourseBundle\Entity\CGroupInfo; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\QueryBuilder; final class CToolRepository extends ResourceRepository diff --git a/src/CourseBundle/Resources/config/routing.yml b/src/CourseBundle/Resources/config/routing.yml deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/GraphQlBundle/Controller/GraphQlController.php b/src/GraphQlBundle/Controller/GraphQlController.php index be00ce7bcf..30994bf348 100644 --- a/src/GraphQlBundle/Controller/GraphQlController.php +++ b/src/GraphQlBundle/Controller/GraphQlController.php @@ -4,7 +4,7 @@ namespace Chamilo\GraphQlBundle\Controller; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Firebase\JWT\JWT; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; diff --git a/src/GraphQlBundle/Map/EnumMap.php b/src/GraphQlBundle/Map/EnumMap.php index 5fde1e3b8d..c25b715d25 100644 --- a/src/GraphQlBundle/Map/EnumMap.php +++ b/src/GraphQlBundle/Map/EnumMap.php @@ -5,7 +5,7 @@ namespace Chamilo\GraphQlBundle\Map; use Chamilo\GraphQlBundle\Traits\GraphQLTrait; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Overblog\GraphQLBundle\Resolver\ResolverMap; use Symfony\Component\DependencyInjection\ContainerAwareInterface; diff --git a/src/GraphQlBundle/Map/MutationMap.php b/src/GraphQlBundle/Map/MutationMap.php index 2f645af99e..79f147985a 100644 --- a/src/GraphQlBundle/Map/MutationMap.php +++ b/src/GraphQlBundle/Map/MutationMap.php @@ -10,7 +10,7 @@ use Chamilo\CourseBundle\Entity\CForumPost; use Chamilo\CourseBundle\Entity\CForumThread; use Chamilo\CourseBundle\Entity\CNotebook; use Chamilo\GraphQlBundle\Traits\GraphQLTrait; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use GraphQL\Type\Definition\ResolveInfo; use Overblog\GraphQLBundle\Definition\Argument; use Overblog\GraphQLBundle\Error\UserError; @@ -46,7 +46,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface protected function resolveAuthenticate(Argument $args) { /** @var User $user */ - $user = $this->em->getRepository('ChamiloUserBundle:User')->findOneBy(['username' => $args['username']]); + $user = $this->em->getRepository('ChamiloCoreBundle:User')->findOneBy(['username' => $args['username']]); if (!$user) { throw new UserError($this->translator->trans('User not found.')); @@ -72,7 +72,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface { $this->checkAuthorization(); - $usersRepo = $this->em->getRepository('ChamiloUserBundle:User'); + $usersRepo = $this->em->getRepository('ChamiloCoreBundle:User'); $users = $usersRepo->findUsersToSendMessage($this->currentUser->getId()); $receivers = array_filter( $args['receivers'], @@ -312,7 +312,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface \UserManager::create_extra_field($args['itemId']['name'], \ExtraField::FIELD_TYPE_TEXT, $args['itemId']['name'], ''); \UserManager::update_extra_field_value($userId, $args['itemId']['name'], $args['itemId']['value']); - return $this->em->find('ChamiloUserBundle:User', $userId); + return $this->em->find('ChamiloCoreBundle:User', $userId); } /** @@ -329,7 +329,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface } /** @var User $user */ - $user = $this->em->find('ChamiloUserBundle:User', $args['user']); + $user = $this->em->find('ChamiloCoreBundle:User', $args['user']); /** @var Course $course */ $course = $this->em->find('ChamiloCoreBundle:Course', $args['course']); @@ -622,7 +622,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface } /** @var User $user */ - $user = $this->em->find('ChamiloUserBundle:User', $userId); + $user = $this->em->find('ChamiloCoreBundle:User', $userId); \UserManager::update_user( $userId, @@ -642,7 +642,7 @@ class MutationMap extends ResolverMap implements ContainerAwareInterface $this->em->clear($user); - return $this->em->find('ChamiloUserBundle:User', $userId); + return $this->em->find('ChamiloCoreBundle:User', $userId); } protected function resolveDeleteCourse(Argument $args): bool diff --git a/src/GraphQlBundle/Map/QueryMap.php b/src/GraphQlBundle/Map/QueryMap.php index 07f34151b7..b56b8d321d 100644 --- a/src/GraphQlBundle/Map/QueryMap.php +++ b/src/GraphQlBundle/Map/QueryMap.php @@ -18,7 +18,7 @@ use Chamilo\CourseBundle\Entity\CLpCategory; use Chamilo\CourseBundle\Entity\CNotebook; use Chamilo\CourseBundle\Entity\CTool; use Chamilo\GraphQlBundle\Traits\GraphQLTrait; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use GraphQL\Type\Definition\ResolveInfo; use Overblog\GraphQLBundle\Definition\Argument; use Overblog\GraphQLBundle\Error\UserError; @@ -237,7 +237,7 @@ class QueryMap extends ResolverMap implements ContainerAwareInterface return $thread->getThreadTitle(); }, 'userPoster' => function (CForumThread $thread) { - $userRepo = $this->em->getRepository('ChamiloUserBundle:User'); + $userRepo = $this->em->getRepository('ChamiloCoreBundle:User'); return $userRepo->find($thread->getThreadPosterId()); }, @@ -273,7 +273,7 @@ class QueryMap extends ResolverMap implements ContainerAwareInterface return $post->getPostText(); }, 'userPoster' => function (CForumPost $post) { - $userRepo = $this->em->getRepository('ChamiloUserBundle:User'); + $userRepo = $this->em->getRepository('ChamiloCoreBundle:User'); return $userRepo->find($post->getPosterId()); }, diff --git a/src/GraphQlBundle/Resolver/UserResolver.php b/src/GraphQlBundle/Resolver/UserResolver.php index d99be69157..e733cfc02b 100644 --- a/src/GraphQlBundle/Resolver/UserResolver.php +++ b/src/GraphQlBundle/Resolver/UserResolver.php @@ -6,7 +6,7 @@ namespace Chamilo\GraphQlBundle\Resolver; use Chamilo\CoreBundle\Entity\Course; use Chamilo\GraphQlBundle\Traits\GraphQLTrait; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\Common\Collections\ArrayCollection; use Overblog\GraphQLBundle\Definition\Argument; use Symfony\Component\DependencyInjection\ContainerAwareInterface; @@ -55,7 +55,7 @@ class UserResolver implements ContainerAwareInterface return []; } - $usersRepo = $this->em->getRepository('ChamiloUserBundle:User'); + $usersRepo = $this->em->getRepository('ChamiloCoreBundle:User'); return $usersRepo->findUsersToSendMessage($user->getId(), $args['filter']); } diff --git a/src/GraphQlBundle/Traits/GraphQLTrait.php b/src/GraphQlBundle/Traits/GraphQLTrait.php index 38cbac5052..e8edea6e9f 100644 --- a/src/GraphQlBundle/Traits/GraphQLTrait.php +++ b/src/GraphQlBundle/Traits/GraphQLTrait.php @@ -8,7 +8,7 @@ use Chamilo\CoreBundle\Entity\AccessUrl; use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Session; use Chamilo\SettingsBundle\Manager\SettingsManager; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\EntityManager; use Firebase\JWT\JWT; use Overblog\GraphQLBundle\Error\UserError; @@ -84,7 +84,7 @@ trait GraphQLTrait try { /** @var User $user */ - $user = $this->em->find('ChamiloUserBundle:User', $tokenData['user']); + $user = $this->em->find('ChamiloCoreBundle:User', $tokenData['user']); } catch (\Exception $e) { $user = null; } diff --git a/src/LtiBundle/Component/OutcomeDeleteRequest.php b/src/LtiBundle/Component/OutcomeDeleteRequest.php index c8ecbb1a18..6c08245a3e 100644 --- a/src/LtiBundle/Component/OutcomeDeleteRequest.php +++ b/src/LtiBundle/Component/OutcomeDeleteRequest.php @@ -5,7 +5,7 @@ namespace Chamilo\LtiBundle\Component; use Chamilo\CoreBundle\Entity\GradebookEvaluation; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; /** * Class OutcomeDeleteRequest. @@ -42,7 +42,7 @@ class OutcomeDeleteRequest extends OutcomeRequest /** @var GradebookEvaluation $evaluation */ $evaluation = $this->entityManager->find('ChamiloCoreBundle:GradebookEvaluation', $sourcedParts['e']); /** @var User $user */ - $user = $this->entityManager->find('ChamiloUserBundle:User', $sourcedParts['u']); + $user = $this->entityManager->find('ChamiloCoreBundle:User', $sourcedParts['u']); if (empty($evaluation) || empty($user)) { $this->statusInfo diff --git a/src/LtiBundle/Component/OutcomeReadRequest.php b/src/LtiBundle/Component/OutcomeReadRequest.php index 93a7447442..79c3e906e5 100644 --- a/src/LtiBundle/Component/OutcomeReadRequest.php +++ b/src/LtiBundle/Component/OutcomeReadRequest.php @@ -5,7 +5,7 @@ namespace Chamilo\LtiBundle\Component; use Chamilo\CoreBundle\Entity\GradebookEvaluation; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; /** * Class OutcomeReadRequest. @@ -42,7 +42,7 @@ class OutcomeReadRequest extends OutcomeRequest /** @var GradebookEvaluation $evaluation */ $evaluation = $this->entityManager->find('ChamiloCoreBundle:GradebookEvaluation', $sourcedParts['e']); /** @var User $user */ - $user = $this->entityManager->find('ChamiloUserBundle:User', $sourcedParts['u']); + $user = $this->entityManager->find('ChamiloCoreBundle:User', $sourcedParts['u']); if (empty($evaluation) || empty($user)) { $this->statusInfo diff --git a/src/LtiBundle/Component/OutcomeReplaceRequest.php b/src/LtiBundle/Component/OutcomeReplaceRequest.php index c4df7a1377..9fdefe9100 100644 --- a/src/LtiBundle/Component/OutcomeReplaceRequest.php +++ b/src/LtiBundle/Component/OutcomeReplaceRequest.php @@ -5,7 +5,7 @@ namespace Chamilo\LtiBundle\Component; use Chamilo\CoreBundle\Entity\GradebookEvaluation; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; /** * Class OutcomeReplaceRequest. @@ -61,7 +61,7 @@ class OutcomeReplaceRequest extends OutcomeRequest /** @var GradebookEvaluation $evaluation */ $evaluation = $this->entityManager->find('ChamiloCoreBundle:GradebookEvaluation', $sourcedParts['e']); /** @var User $user */ - $user = $this->entityManager->find('ChamiloUserBundle:User', $sourcedParts['u']); + $user = $this->entityManager->find('ChamiloCoreBundle:User', $sourcedParts['u']); if (empty($evaluation) || empty($user)) { $this->statusInfo diff --git a/src/LtiBundle/Controller/CourseController.php b/src/LtiBundle/Controller/CourseController.php index 0fbbf5c901..f344df5031 100644 --- a/src/LtiBundle/Controller/CourseController.php +++ b/src/LtiBundle/Controller/CourseController.php @@ -11,7 +11,7 @@ use Chamilo\CourseBundle\Entity\CTool; use Chamilo\LtiBundle\Entity\ExternalTool; use Chamilo\LtiBundle\Form\ExternalToolType; use Chamilo\LtiBundle\Util\Utils; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/LtiBundle/Util/Utils.php b/src/LtiBundle/Util/Utils.php index b332b3a9b2..ce0d68a517 100644 --- a/src/LtiBundle/Util/Utils.php +++ b/src/LtiBundle/Util/Utils.php @@ -6,7 +6,7 @@ namespace Chamilo\LtiBundle\Util; use Chamilo\LtiBundle\Entity\ExternalTool; use Chamilo\SettingsBundle\Manager\SettingsManager; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; /** * Class Utils. diff --git a/src/SkillBundle/Entity/SkillRelItemRelUser.php b/src/SkillBundle/Entity/SkillRelItemRelUser.php index 05c8451577..46b7c3e53f 100644 --- a/src/SkillBundle/Entity/SkillRelItemRelUser.php +++ b/src/SkillBundle/Entity/SkillRelItemRelUser.php @@ -4,7 +4,7 @@ namespace Chamilo\SkillBundle\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 SkillRelItemRelUser /** * @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", nullable=false) */ protected $user; diff --git a/src/ThemeBundle/Event/ShowUserEvent.php b/src/ThemeBundle/Event/ShowUserEvent.php deleted file mode 100644 index 469274d9df..0000000000 --- a/src/ThemeBundle/Event/ShowUserEvent.php +++ /dev/null @@ -1,41 +0,0 @@ -user = $user; - - return $this; - } - - /** - * @return \Chamilo\ThemeBundle\Model\UserInterface - */ - public function getUser() - { - return $this->user; - } -} diff --git a/src/ThemeBundle/Model/MessageInterface.php b/src/ThemeBundle/Model/MessageInterface.php deleted file mode 100644 index 1bec3997c0..0000000000 --- a/src/ThemeBundle/Model/MessageInterface.php +++ /dev/null @@ -1,38 +0,0 @@ -to = $to; - $this->subject = $subject; - $this->sentAt = $sentAt ?: new \DateTime(); - $this->from = $from; - } - - /** - * Set the sender. - * - * @param \Chamilo\ThemeBundle\Model\UserInterface $from - * - * @return $this - */ - public function setFrom(UserInterface $from) - { - $this->from = $from; - - return $this; - } - - /** - * Get the Sender. - * - * @return \Chamilo\ThemeBundle\Model\UserInterface - */ - public function getFrom() - { - return $this->from; - } - - /** - * Set the date sent. - * - * @return $this - */ - public function setSentAt(\DateTime $sentAt) - { - $this->sentAt = $sentAt; - - return $this; - } - - /** - * Get the date sent. - * - * @return \DateTime - */ - public function getSentAt() - { - return $this->sentAt; - } - - /** - * Set the subject. - * - * @param string $subject - * - * @return $this - */ - public function setSubject($subject) - { - $this->subject = $subject; - - return $this; - } - - /** - * Get the subject. - * - * @return string - */ - public function getSubject() - { - return $this->subject; - } - - /** - * Set the recipient. - * - * @param \Chamilo\ThemeBundle\Model\UserInterface $to - * - * @return $this - */ - public function setTo(UserInterface $to) - { - $this->to = $to; - - return $this; - } - - /** - * Get the recipient. - * - * @return \Chamilo\ThemeBundle\Model\UserInterface - */ - public function getTo() - { - return $this->to; - } - - /** - * Get the identifier. - * - * @return string - */ - public function getIdentifier() - { - return $this->getSubject(); - } -} diff --git a/src/ThemeBundle/Model/NotificationInterface.php b/src/ThemeBundle/Model/NotificationInterface.php deleted file mode 100644 index 3168bfdbf2..0000000000 --- a/src/ThemeBundle/Model/NotificationInterface.php +++ /dev/null @@ -1,19 +0,0 @@ -message = $message; - $this->type = $type; - $this->icon = $icon; - } - - /** - * @return $this - */ - public function setMessage($message) - { - $this->message = $message; - - return $this; - } - - public function getMessage() - { - return $this->message; - } - - /** - * @return $this - */ - public function setType($type) - { - $this->type = $type; - - return $this; - } - - public function getType() - { - return $this->type; - } - - /** - * @param string $icon - * - * @return $this - */ - public function setIcon($icon) - { - $this->icon = $icon; - - return $this; - } - - /** - * @return string - */ - public function getIcon() - { - return $this->icon; - } - - public function getIdentifier() - { - return $this->message; - } -} diff --git a/src/ThemeBundle/Model/TaskInterface.php b/src/ThemeBundle/Model/TaskInterface.php deleted file mode 100644 index 05b872fbae..0000000000 --- a/src/ThemeBundle/Model/TaskInterface.php +++ /dev/null @@ -1,19 +0,0 @@ -color = $color; - $this->progress = $progress; - $this->title = $title; - } - - /** - * @param string $color - * - * @return $this - */ - public function setColor($color) - { - $this->color = $color; - - return $this; - } - - /** - * @return string - */ - public function getColor() - { - return $this->color; - } - - /** - * @return $this - */ - public function setProgress($progress) - { - $this->progress = $progress; - - return $this; - } - - public function getProgress() - { - return $this->progress; - } - - /** - * @return $this - */ - public function setTitle($title) - { - $this->title = $title; - - return $this; - } - - public function getTitle() - { - return $this->title; - } - - public function getIdentifier() - { - return $this->title; - } -} diff --git a/src/ThemeBundle/Model/UserInterface.php b/src/ThemeBundle/Model/UserInterface.php deleted file mode 100644 index c0c2077f21..0000000000 --- a/src/ThemeBundle/Model/UserInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -avatar = $avatar; - $this->isOnline = $isOnline; - $this->memberSince = $memberSince ?: new \DateTime(); - $this->username = $username; - } - - /** - * @param string $avatar - * - * @return $this - */ - public function setAvatar($avatar) - { - $this->avatar = $avatar; - - return $this; - } - - /** - * @return string - */ - public function getAvatar() - { - return $this->avatar; - } - - /** - * @param bool $isOnline - * - * @return $this - */ - public function setIsOnline($isOnline) - { - $this->isOnline = $isOnline; - - return $this; - } - - /** - * @return bool - */ - public function getIsOnline() - { - return $this->isOnline; - } - - /** - * @return $this - */ - public function setMemberSince(\DateTime $memberSince) - { - $this->memberSince = $memberSince; - - return $this; - } - - /** - * @return \DateTime - */ - public function getMemberSince() - { - return $this->memberSince; - } - - /** - * @param string $username - * - * @return $this - */ - public function setUsername($username) - { - $this->username = $username; - - return $this; - } - - /** - * @return string - */ - public function getUsername() - { - return $this->username; - } - - /** - * @return bool - */ - public function isOnline() - { - return $this->getIsOnline(); - } - - public function getIdentifier() - { - return str_replace(' ', '-', $this->getUsername()); - } -} diff --git a/src/ThemeBundle/Resources/views/Course/home.html.twig b/src/ThemeBundle/Resources/views/Course/home.html.twig index 088199e21a..c0900718d3 100644 --- a/src/ThemeBundle/Resources/views/Course/home.html.twig +++ b/src/ThemeBundle/Resources/views/Course/home.html.twig @@ -82,9 +82,9 @@
diff --git a/src/ThemeBundle/Resources/views/FlashMessage/render.html.twig b/src/ThemeBundle/Resources/views/FlashMessage/render.html.twig index effb561b70..50b3782442 100644 --- a/src/ThemeBundle/Resources/views/FlashMessage/render.html.twig +++ b/src/ThemeBundle/Resources/views/FlashMessage/render.html.twig @@ -4,20 +4,20 @@ {{ flash_messages }} {# new flash messages when using controller #} -{% for type in sonata_flashmessages_types() %} - {% set domain = domain is defined ? domain : null %} - {% for message in sonata_flashmessages_get(type, domain) %} -
- - {{ message|raw }} -
- {% endfor %} -{% endfor %} +{#{% for type in sonata_flashmessages_types() %}#} +{# {% set domain = domain is defined ? domain : null %}#} +{# {% for message in sonata_flashmessages_get(type, domain) %}#} +{#
#} +{#
#} +{# {% endfor %}#} +{#{% endfor %}#} {% endautoescape %} diff --git a/src/ThemeBundle/Resources/views/Index/index.html.twig b/src/ThemeBundle/Resources/views/Index/index.html.twig index 7f74787d92..b53a893bb8 100644 --- a/src/ThemeBundle/Resources/views/Index/index.html.twig +++ b/src/ThemeBundle/Resources/views/Index/index.html.twig @@ -12,7 +12,7 @@
- {{ render(controller('Chamilo\\PageBundle\\Controller\\PageController::renderPageAction', {'slug': 'welcome'} )) }} +{# {{ render(controller('Chamilo\\PageBundle\\Controller\\PageController::renderPageAction', {'slug': 'welcome'} )) }}#}
@@ -24,7 +24,7 @@
{% if chamilo_settings_get('display.show_hot_courses') == 'true' %} {# See CourseBlockService.php #} - {{ sonata_block_render({'type': 'chamilo_core.block.course'}) }} +{# {{ sonata_block_render({'type': 'chamilo_core.block.course'}) }}#} {% endif %}
diff --git a/src/ThemeBundle/Resources/views/Index/userportal.html.twig b/src/ThemeBundle/Resources/views/Index/userportal.html.twig index 46a0bac498..c351795418 100644 --- a/src/ThemeBundle/Resources/views/Index/userportal.html.twig +++ b/src/ThemeBundle/Resources/views/Index/userportal.html.twig @@ -1,21 +1,20 @@ {% block page_content %} {% autoescape false %} - {% if plugin_content_top %}
{{ plugin_content_top }}
{% endif %} - {{ sniff_notification }} +{# {{ sniff_notification }}#} - {% if home_welcome %} + {% if home_welcome is defined %}
{{ home_welcome }}
{% endif %} - {% if home_include %} + {% if home_include is defined %}
{{ home_include }}
@@ -25,7 +24,7 @@ {# include 'layout/page_body.tpl'|get_template #} {% endblock %} - {% if welcome_to_course_block %} + {% if welcome_to_course_block is defined %}
{{ welcome_to_course_block }}
@@ -39,20 +38,20 @@ {% endif %} {% endblock %} - {% if announcements_block %} + {% if announcements_block is defined %}
{{ announcements_block }}
{% endif %} - {% if course_category_block %} + {% if course_category_block is defined %}
{{ course_category_block }}
{% endif %} {# % include 'layout/hot_courses.tpl'|get_template #} {# include 'session/sessions_current.tpl'|get_template #} - {% if plugin_content_bottom %} + {% if plugin_content_bottom is defined %}
{{ plugin_content_bottom }}
diff --git a/src/ThemeBundle/Resources/views/Layout/base-layout.html.twig b/src/ThemeBundle/Resources/views/Layout/base-layout.html.twig index cd3e5b9c75..33343693ce 100644 --- a/src/ThemeBundle/Resources/views/Layout/base-layout.html.twig +++ b/src/ThemeBundle/Resources/views/Layout/base-layout.html.twig @@ -17,7 +17,7 @@ {% endblock %}
- {{ "Powered by %s" |trans | format(_s.software_name) }} +{# {{ "Powered by %s" |trans | format(_s.software_name) }}#} {{ "Chamilo"| trans }} © {{ "now"|date("Y") }}
diff --git a/src/ThemeBundle/Resources/views/Layout/head.html.twig b/src/ThemeBundle/Resources/views/Layout/head.html.twig index 94bbbd6559..85c680761a 100644 --- a/src/ThemeBundle/Resources/views/Layout/head.html.twig +++ b/src/ThemeBundle/Resources/views/Layout/head.html.twig @@ -1,6 +1,6 @@ {# Check settings to add more metadata in app/config/sonata/sonata_seo.yml #} -{{ sonata_seo_metadatas() }} +{#{{ sonata_seo_metadatas() }}#} @@ -25,21 +25,29 @@ {% set profile_link = '' %} {% set message_link = '' %} -{# Files app.css is generated from "assets/css/app.scss" file using the file webpack.config.js #} - -{% if theme %} - -{% endif %} - +{% block stylesheets %} + {# Files app.css is generated from "assets/css/app.scss" file using the file webpack.config.js #} + +{# {{ encore_entry_link_tags('app') }}#} + {% if theme %} + + {% endif %} + + {{ encore_entry_link_tags('resource') }} +{% endblock %} + {# app.js is generated using the file webpack.config.js and using yarn read /assets/README.md for more info #} - +{##} - +{##} {# Add third party js libraries that can't be loaded using webpack #} {##} {# Check chamilo_js key in assetic.yml #} {% block javascripts %} + {{ encore_entry_script_tags('app') }} + {{ encore_entry_script_tags('resource') }} + {% block chamilo_header_js %} {# Loading legacy js using the $htmlHeadXtra array #} {% autoescape false %} diff --git a/src/ThemeBundle/Resources/views/Layout/layout_one_col.html.twig b/src/ThemeBundle/Resources/views/Layout/layout_one_col.html.twig index 25e1d59723..1eeeee1e0e 100644 --- a/src/ThemeBundle/Resources/views/Layout/layout_one_col.html.twig +++ b/src/ThemeBundle/Resources/views/Layout/layout_one_col.html.twig @@ -36,7 +36,7 @@ {% endblock %}
- {% if introduction != '' %} + {% if introduction is defined %} {{ introduction }} {% endif %} diff --git a/src/ThemeBundle/Resources/views/Layout/sidebar.html.twig b/src/ThemeBundle/Resources/views/Layout/sidebar.html.twig index 4d613b19a8..fc17716c02 100644 --- a/src/ThemeBundle/Resources/views/Layout/sidebar.html.twig +++ b/src/ThemeBundle/Resources/views/Layout/sidebar.html.twig @@ -2,8 +2,8 @@ {% if app.environment != 'test' %} {% endif %} diff --git a/src/ThemeBundle/Resources/views/Macros/image.html.twig b/src/ThemeBundle/Resources/views/Macros/image.html.twig index 86ac0406a9..51b8118938 100644 --- a/src/ThemeBundle/Resources/views/Macros/image.html.twig +++ b/src/ThemeBundle/Resources/views/Macros/image.html.twig @@ -9,7 +9,7 @@ {% endmacro %} {% macro avatar_from_media(media, alt, class) %} - {% if media %} - {% thumbnail media, 'small' with {'class': 'img-circle'} %} - {% endif %} +{# {% if media %}#} +{# {% thumbnail media, 'small' with {'class': 'img-circle'} %}#} +{# {% endif %}#} {% endmacro %} diff --git a/src/ThemeBundle/Resources/views/Resource/index.html.twig b/src/ThemeBundle/Resources/views/Resource/index.html.twig index 9a45cc5ac3..c432f84b82 100644 --- a/src/ThemeBundle/Resources/views/Resource/index.html.twig +++ b/src/ThemeBundle/Resources/views/Resource/index.html.twig @@ -116,7 +116,7 @@
{% include '@ChamiloTheme/Resource/toolbar.html.twig' %} - {% include '@ChamiloTheme/Resource/grid.html.twig' %} +{# {% include '@ChamiloTheme/Resource/grid.html.twig' %}#}
diff --git a/src/ThemeBundle/Resources/views/Resource/info_ajax.html.twig b/src/ThemeBundle/Resources/views/Resource/info_ajax.html.twig index 17f716a610..f5e1e9a418 100644 --- a/src/ThemeBundle/Resources/views/Resource/info_ajax.html.twig +++ b/src/ThemeBundle/Resources/views/Resource/info_ajax.html.twig @@ -1,5 +1,12 @@ {% block content %} {% autoescape false %} +{#
#} +{#
#} + +
+ +
+ +
{% if resource.resourceNode.resourceFile %}
{{ 'Size' | trans }}
{{ resource.resourceNode.resourceFile.size | format_file_size }}
{% endif %} -
{{ 'Created at' | trans }}
-
{{ resource.resourceNode.createdAt | date_to_time_ago }}
+
+ moment('{{ resource.resourceNode.createdAt | date("Y-m-d H:i:s") }}').fromNow(); + {{ resource.resourceNode.createdAt | date_to_time_ago }} +
{{ 'Updated at' | trans }}
{{ resource.resourceNode.updatedAt | date_to_time_ago }}
{{ 'Author' | trans }}
-
{{ resource.resourceNode.creator }}
+{#
{{ resource.resourceNode.creator }}
#} {# Show where the file was added#} - {% if resource.resourceNode.resourceLinks %} -
{{'Added in' | trans }}
-
- {% for link in resource.resourceNode.resourceLinks %} -

- Course: {{ link.course }} {% if link.session %} - Session: {{ link.session }} {% endif %} - Visibility: {{ link.visibilityName | trans }} -

- {% endfor %} -
- {% endif %} +{# {% if resource.resourceNode.resourceLinks %}#} +{#
{{'Added in' | trans }}
#} +{#
#} +{# {% for link in resource.resourceNode.resourceLinks %}#} +{#

#} +{# Course: {{ link.course }} {% if link.session %} - Session: {{ link.session }} {% endif %} - Visibility: {{ link.visibilityName | trans }}#} +{#

#} +{# {% endfor %}#} +{#
#} +{# {% endif %}#}
{% if resource.resourceNode.resourceFile %} diff --git a/src/ThemeBundle/Resources/views/Resource/toolbar.html.twig b/src/ThemeBundle/Resources/views/Resource/toolbar.html.twig index 261898cb43..06f75b7857 100644 --- a/src/ThemeBundle/Resources/views/Resource/toolbar.html.twig +++ b/src/ThemeBundle/Resources/views/Resource/toolbar.html.twig @@ -13,7 +13,7 @@ -{# {% if resource_settings.allowDownloadAll %}#} -{# #} -{# #} -{# #} -{# {% endif %}#} -{# var selectId = "{{ grid.hash }}[{{ constant('APY\\DataGridBundle\\Grid\\Grid::REQUEST_QUERY_MASS_ACTION') }}]";#} + {% if resource_settings.allowToSaveEditorToResourceFile %} diff --git a/src/ThemeBundle/Resources/views/Sidebar/login.html.twig b/src/ThemeBundle/Resources/views/Sidebar/login.html.twig index a006ac941d..da123d3428 100644 --- a/src/ThemeBundle/Resources/views/Sidebar/login.html.twig +++ b/src/ThemeBundle/Resources/views/Sidebar/login.html.twig @@ -1,4 +1,4 @@ {#{% include '@ChamiloTheme/Admin/switcher_links.html.twig' %}#} -{#{{ render(controller('ChamiloUserBundle:Security:loginSideBar')) }}#} +{#{{ render(controller('ChamiloCoreBundle:Security:loginSideBar')) }}#} {#{{ mopa_bootstrap_menu('ChamiloCoreBundle:LeftMenuBuilder:loginMenu', {'automenu': 'pills', 'stacked':true}) }}#} diff --git a/src/TicketBundle/Entity/AssignedLog.php b/src/TicketBundle/Entity/AssignedLog.php index 9bf1022d3c..a84be65ab6 100644 --- a/src/TicketBundle/Entity/AssignedLog.php +++ b/src/TicketBundle/Entity/AssignedLog.php @@ -4,7 +4,7 @@ namespace Chamilo\TicketBundle\Entity; -use Chamilo\UserBundle\Entity\User; +use Chamilo\CoreBundle\Entity\User; use Doctrine\ORM\Mapping as ORM; /** @@ -37,7 +37,7 @@ class AssignedLog /** * @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; diff --git a/src/TicketBundle/Entity/CategoryRelUser.php b/src/TicketBundle/Entity/CategoryRelUser.php index b8dc691a61..96f6548f99 100644 --- a/src/TicketBundle/Entity/CategoryRelUser.php +++ b/src/TicketBundle/Entity/CategoryRelUser.php @@ -34,7 +34,7 @@ class CategoryRelUser /** * @var Category * - * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") + * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\User") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") */ protected $user; diff --git a/src/UserBundle/Entity/Group.php b/src/UserBundle/Entity/Group.php deleted file mode 100644 index 9fa4f8a3a1..0000000000 --- a/src/UserBundle/Entity/Group.php +++ /dev/null @@ -1,71 +0,0 @@ -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; - } -} diff --git a/src/UserBundle/Form/LoginType.php b/src/UserBundle/Form/LoginType.php deleted file mode 100644 index 426e07cad3..0000000000 --- a/src/UserBundle/Form/LoginType.php +++ /dev/null @@ -1,20 +0,0 @@ -add('_username') - ->add('_password', PasswordType::class) - ; - } -}