Remove CourseManager use CourseRepository

pull/3016/head
Julio Montoya 7 years ago
parent eedd1bf54a
commit ff6347b849
  1. 5
      main/inc/lib/api.lib.php
  2. 15
      main/inc/lib/course.lib.php
  3. 4
      src/CoreBundle/Entity/Course.php
  4. 21
      src/CoreBundle/Entity/Listener/CourseListener.php
  5. 41
      src/CoreBundle/Entity/Manager/CourseManager.php
  6. 16
      src/CoreBundle/Framework/Container.php
  7. 1
      src/CoreBundle/Repository/ResourceRepository.php
  8. 10
      src/CoreBundle/Resources/config/services.yml
  9. 2
      src/CoreBundle/Resources/config/tools.yml
  10. 5
      src/CoreBundle/Security/Authorization/Voter/CourseVoter.php
  11. 3
      src/CoreBundle/Security/Authorization/Voter/GroupVoter.php
  12. 2
      src/CoreBundle/Security/Authorization/Voter/ResourceNodeVoter.php
  13. 3
      src/CoreBundle/Security/Authorization/Voter/SessionVoter.php
  14. 2
      src/CourseBundle/Entity/CDocument.php
  15. 2
      src/CourseBundle/EventListener/CourseListener.php
  16. 2
      src/CourseBundle/Resources/config/services.yml

@ -1,6 +1,7 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\AccessUrl;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Entity\SettingsCurrent;
@ -2145,7 +2146,7 @@ function api_get_group_entity($id = 0)
/**
* @param int $id
*
* @return \Chamilo\CoreBundle\Entity\AccessUrl
* @return AccessUrl
*/
function api_get_url_entity($id = 0)
{
@ -2153,7 +2154,7 @@ function api_get_url_entity($id = 0)
$id = api_get_current_access_url_id();
}
return Database::getManager()->getRepository('ChamiloCoreBundle:AccessUrl')->find($id);
return Container::getAccessUrlRepository()->find($id);
}
/**

@ -4,6 +4,7 @@
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\CoreBundle\ToolChain;
use Chamilo\CoreBundle\Hook\HookCreateCourse;
use Chamilo\CourseBundle\Component\CourseCopy\CourseBuilder;
@ -54,14 +55,6 @@ class CourseManager
return self::$em;
}
/**
* @param $manager
*/
public static function setCourseManager($manager)
{
self::$manager = $manager;
}
/**
* @return SettingsManager
*/
@ -79,11 +72,13 @@ class CourseManager
}
/**
* @return Chamilo\CoreBundle\Entity\Manager\CourseManager
* @deprecated
*
* @return CourseRepository
*/
public static function getManager()
{
return self::$manager;
return Container::getCourseRepository();
}
/**

@ -1066,7 +1066,7 @@ class Course extends AbstractResource implements ResourceInterface
*/
public function setSubscribe($subscribe)
{
$this->subscribe = boolval($subscribe);
$this->subscribe = (bool) $subscribe;
return $this;
}
@ -1090,7 +1090,7 @@ class Course extends AbstractResource implements ResourceInterface
*/
public function setUnsubscribe($unsubscribe)
{
$this->unsubscribe = boolval($unsubscribe);
$this->unsubscribe = (bool) $unsubscribe;
return $this;
}

@ -14,6 +14,7 @@ use Doctrine\ORM\Event\LifecycleEventArgs;
/**
* Class CourseListener.
* Course entity listener, when a course is created/edited and when the tool chain is loaded.
* @todo check hosting course limits
*/
class CourseListener
{
@ -50,10 +51,11 @@ class CourseListener
{
/** @var AccessUrlRelCourse $urlRelCourse */
if ($course) {
$urlRelCourse = $course->getUrls()->first();
$url = $urlRelCourse->getUrl();
$repo = $args->getEntityManager()->getRepository('ChamiloCoreBundle:Course');
$this->checkLimit($repo, $course, $url);
/*$urlRelCourse = $course->getUrls()->first();
$url = $urlRelCourse->getUrl();*/
//$url = $course->getCurrentUrl();
//$repo = $args->getEntityManager()->getRepository('ChamiloCoreBundle:Course');
///$this->checkLimit($repo, $course, $url);
$this->toolChain->addToolsInCourse($course, $this->settingsManager);
}
}
@ -69,17 +71,10 @@ class CourseListener
public function preUpdate(Course $course, LifecycleEventArgs $args)
{
if ($course) {
$url = $course->getCurrentUrl();
/*$url = $course->getCurrentUrl();
$repo = $args->getEntityManager()->getRepository('ChamiloCoreBundle:Course');
$this->checkLimit($repo, $course, $url);
$this->checkLimit($repo, $course, $url);*/
}
/*if ($eventArgs->getEntity() instanceof User) {
if ($eventArgs->hasChangedField('name') && $eventArgs->getNewValue('name') == 'Alice') {
$eventArgs->setNewValue('name', 'Bob');
}
}*/
}
/**

@ -1,41 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Entity\Manager;
use Chamilo\CoreBundle\Entity\Course;
use Sonata\CoreBundle\Model\BaseEntityManager;
/**
* Class CourseManager.
*/
class CourseManager extends BaseEntityManager
{
/**
* @return Course
*/
public function createCourse()
{
return $this->create();
}
/**
* @param string $code
*
* @return mixed
*/
public function findOneByCode($code)
{
return $this->getRepository()->findOneByCode($code);
}
/**
* @param string $name
*
* @return mixed
*/
public function findOneByTitle($name)
{
return $this->getRepository()->findOneByTitle($name);
}
}

@ -22,13 +22,10 @@ use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
use Symfony\Component\Security\Core\Role\RoleHierarchy;
use Symfony\Contracts\Translation\TranslatorInterface;
use Zend\EventManager\EventInterface;
/**
* Class Container
* This class is a way to access Symfony2 services in legacy Chamilo code.
*
* @package Chamilo\CoreBundle\Framework
*/
class Container
{
@ -215,6 +212,9 @@ class Container
return self::$container->get('request_stack');
}
/**
* @param $request
*/
public static function setRequest($request)
{
self::$request = $request;
@ -368,6 +368,14 @@ class Container
return self::$container->get('Chamilo\CoreBundle\Repository\AccessUrlRepository');
}
/**
* @return AccessUrlRepository
*/
public static function getCourseRepository()
{
return self::$container->get('Chamilo\CoreBundle\Repository\CourseRepository');
}
/**
* @param $manager UserManager
*/
@ -458,8 +466,6 @@ class Container
self::setSiteManager($container->get('sonata.page.manager.site'));
\CourseManager::setCourseSettingsManager($container->get('chamilo_course.settings.manager'));
\CourseManager::setCourseManager($container->get('chamilo_core.entity.manager.course_manager'));
// Setting course tool chain (in order to create tools to a course)
\CourseManager::setToolList($container->get('chamilo_core.tool_chain'));

@ -121,7 +121,6 @@ class ResourceRepository extends EntityRepository
$resourceType = $em->getRepository('ChamiloCoreBundle:Resource\ResourceType')->findOneBy(
['name' => $resource->getToolName()]
);
$resourceNode
->setName($resource->getResourceName())
->setCreator($creator)

@ -1,6 +1,6 @@
# Settings parameters that will be used in the 'services' section
parameters:
chamilo_core.entity.manager.course_manager.class: Chamilo\CoreBundle\Entity\Manager\CourseManager
chamilo_core.entity.course: Chamilo\CoreBundle\Entity\Course
chamilo_core.entity.manager.session_manager.class: Chamilo\CoreBundle\Entity\Manager\SessionManager
@ -55,10 +55,6 @@ services:
- {name: knp_menu.voter}
# Entity managers
chamilo_core.entity.manager.course_manager:
class: '%chamilo_core.entity.manager.course_manager.class%'
arguments: ['%chamilo_core.entity.course%', '@doctrine']
chamilo_core.entity.manager.session_manager:
class: '%chamilo_core.entity.manager.session_manager.class%'
arguments: ['%chamilo_core.entity.session%', '@doctrine']
@ -78,7 +74,7 @@ services:
class: Chamilo\CoreBundle\Security\Authorization\Voter\CourseVoter
arguments:
- '@doctrine.orm.entity_manager'
- '@chamilo_core.entity.manager.course_manager'
- '@Chamilo\CoreBundle\Repository\CourseRepository'
- '@security.authorization_checker'
- '@service_container'
public: false
@ -92,7 +88,7 @@ services:
class: Chamilo\CoreBundle\Security\Authorization\Voter\SessionVoter
arguments:
- '@doctrine.orm.entity_manager'
- '@chamilo_core.entity.manager.course_manager'
- '@Chamilo\CoreBundle\Repository\CourseRepository'
- '@security.authorization_checker'
- '@service_container'
public: false

@ -185,7 +185,7 @@ services:
- document/document.php
- folder_document.gif
- '@chamilo_course.settings.document'
- [document]
- [CDocument]
- 0
tags:
- {name: chamilo_core.tool}

@ -5,6 +5,7 @@ namespace Chamilo\CoreBundle\Security\Authorization\Voter;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Manager\CourseManager;
use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\UserBundle\Entity\User;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
@ -32,13 +33,13 @@ class CourseVoter extends Voter
/**
* @param EntityManagerInterface $entityManager
* @param CourseManager $courseManager
* @param CourseRepository $courseManager
* @param AuthorizationCheckerInterface $authorizationChecker
* @param ContainerInterface $container
*/
public function __construct(
EntityManagerInterface $entityManager,
CourseManager $courseManager,
CourseRepository $courseManager,
AuthorizationCheckerInterface $authorizationChecker,
ContainerInterface $container
) {

@ -4,6 +4,7 @@
namespace Chamilo\CoreBundle\Security\Authorization\Voter;
use Chamilo\CoreBundle\Entity\Manager\CourseManager;
use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\Manager\GroupManager;
use Chamilo\UserBundle\Entity\User;
@ -41,7 +42,7 @@ class GroupVoter extends Voter
*/
public function __construct(
EntityManager $entityManager,
CourseManager $courseManager,
CourseRepository $courseManager,
GroupManager $groupManager,
AuthorizationCheckerInterface $authorizationChecker,
ContainerInterface $container

@ -144,7 +144,7 @@ class ResourceNodeVoter extends Voter
$links = $resourceNode->getResourceLinks();
$linkFound = false;
$courseManager = $this->container->get('chamilo_core.entity.manager.course_manager');
$courseManager = $this->container->get('Chamilo\CoreBundle\Repository\CourseRepository');
/** @var ResourceLink $link */
foreach ($links as $link) {

@ -5,6 +5,7 @@ namespace Chamilo\CoreBundle\Security\Authorization\Voter;
use Chamilo\CoreBundle\Entity\Manager\CourseManager;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\UserBundle\Entity\User;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
@ -38,7 +39,7 @@ class SessionVoter extends Voter
*/
public function __construct(
EntityManagerInterface $entityManager,
CourseManager $courseManager,
CourseRepository $courseManager,
AuthorizationCheckerInterface $authorizationChecker,
ContainerInterface $container
) {

@ -412,6 +412,6 @@ class CDocument extends AbstractResource implements ResourceInterface
*/
public function getToolName(): string
{
return 'document';
return 'CDocument';
}
}

@ -24,8 +24,6 @@ use Symfony\Component\Security\Core\User\UserInterface;
/**
* Class CourseListener.
* Sets the course and session objects in the controller that implements the CourseControllerInterface.
*
* @package Chamilo\CourseBundle\EventListener
*/
class CourseListener
{

@ -73,7 +73,7 @@ services:
class: Chamilo\CoreBundle\Security\Authorization\Voter\GroupVoter
arguments:
- '@doctrine.orm.entity_manager'
- '@chamilo_core.entity.manager.course_manager'
- '@Chamilo\CoreBundle\Repository\CourseRepository'
- '@chamilo_course.entity.manager.group_manager'
- '@security.authorization_checker'
- '@service_container'

Loading…
Cancel
Save