release; } /** * {@inheritdoc} */ public function require_all_upgrades() { return false; } /** * {@inheritdoc} */ public function concern() { return $this->concern; } /** * {@inheritdoc} */ public function apply(base $appbox, Application $app) { // Remove deleted users sessions $sql = 'SELECT s.id FROM `Sessions` s, usr u WHERE u.usr_login LIKE "(#deleted%" AND u.usr_id = s.usr_id'; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute(); $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt->closeCursor(); foreach ($rows as $row) { if (null !== $session = $app['EM']->find('Entities\Session', $row['id'])) { $app['EM']->remove($session); } } // Remove API sessions $query = $app['EM']->createQuery('SELECT s FROM Entities\Session s WHERE s.user_agent LIKE :guzzle'); $query->setParameter(':guzzle', 'Guzzle%'); foreach ($query->getResult() as $session) { $app['EM']->remove($session); } $app['EM']->flush(); return true; } }