/**
  * {@inheritdoc}
  */
 public function load(ObjectManager $om)
 {
     $messagePlugin = $this->getPluginFromIdentityMapOrScheduledForInsert($om, 'Claroline', 'MessageBundle');
     if (!is_null($messagePlugin)) {
         $toolRepo = $om->getRepository('ClarolineCoreBundle:Tool\\Tool');
         $messageTool = $toolRepo->findOneBy(array('name' => 'message'));
         if (is_null($messageTool)) {
             $messageTool = new Tool();
             $messageTool->setName('message');
             $messageTool->setClass('envelope');
             $messageTool->setDisplayableInWorkspace(false);
             $messageTool->setDisplayableInDesktop(true);
             $messageTool->setPlugin($messagePlugin);
             $om->persist($messageTool);
             $adminMessageOt = new OrderedTool();
             $adminMessageOt->setName('message');
             $adminMessageOt->setTool($messageTool);
             $adminMessageOt->setLocked(false);
             $adminMessageOt->setOrder(1);
             $adminMessageOt->setType(0);
             $adminMessageOt->setVisibleInDesktop(true);
             $om->persist($adminMessageOt);
             $userRepo = $om->getRepository('ClarolineCoreBundle:User');
             $users = $userRepo->findAllEnabledUsers();
             foreach ($users as $user) {
                 $messageOt = new OrderedTool();
                 $messageOt->setName('message');
                 $messageOt->setTool($messageTool);
                 $messageOt->setUser($user);
                 $messageOt->setLocked(false);
                 $messageOt->setOrder(1);
                 $messageOt->setType(0);
                 $messageOt->setVisibleInDesktop(true);
                 $om->persist($messageOt);
             }
         } else {
             $messageTool->setPlugin($messagePlugin);
             $om->persist($messageTool);
         }
         $om->flush();
     }
 }
示例#2
0
 /**
  * @param array  $toolConfiguration
  * @param Plugin $plugin
  * @param Tool   $tool
  */
 private function persistTool($toolConfiguration, Plugin $plugin, Tool $tool)
 {
     $tool->setName($toolConfiguration['name']);
     $tool->setDisplayableInDesktop($toolConfiguration['is_displayable_in_desktop']);
     $tool->setDisplayableInWorkspace($toolConfiguration['is_displayable_in_workspace']);
     $tool->setIsDesktopRequired(false);
     $tool->setIsWorkspaceRequired(false);
     $tool->setPlugin($plugin);
     $tool->setExportable($toolConfiguration['is_exportable']);
     $tool->setIsConfigurableInWorkspace($toolConfiguration['is_configurable_in_workspace']);
     $tool->setIsConfigurableInDesktop($toolConfiguration['is_configurable_in_desktop']);
     $tool->setIsLockedForAdmin($toolConfiguration['is_locked_for_admin']);
     $tool->setIsAnonymousExcluded($toolConfiguration['is_anonymous_excluded']);
     if (isset($toolConfiguration['class'])) {
         $tool->setClass("{$toolConfiguration['class']}");
     } else {
         $tool->setClass("wrench");
     }
     $this->toolManager->create($tool);
     $this->persistCustomToolRights($toolConfiguration['tool_rights'], $tool);
 }