/** * {@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(); } }
/** * @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); }