/** * Delete user * * @param integer $id * @return boolean */ public function delete($id) { $repo = $this->store()->getRepository('user'); $entity = $this->finder()->filter(['ID' => $id])->get(); if ($entity === false) { $repo->rollback(); throw new \RuntimeException("User is not found."); } $event = $this->store()->getEvent(); if ($this->string()->length($event) > 0) { $event_post = 'OnPost' . $this->string()->ucwords($event) . 'Delete'; Event::on($event_post, function ($id) { if (!UserGroupMember::deleteAllByUserId($id)) { throw new \RuntimeException("Error delete groups member."); } }); $event_after = 'OnAfter' . $this->string()->ucwords($event) . 'Delete'; Event::on($event_after, function () { Cache::clearByTags('user'); }); } return $this->store()->delete($repo, $entity); }