Exemplo n.º 1
0
 /**
  * Return groups id by user id
  *
  * @param integer $user_id
  * @return array
  */
 private function getGroupsIdByUserId($user_id)
 {
     $return = [];
     $members = UserGroupMember::finder()->filter(['USER_ID' => $user_id])->all();
     foreach ($members as $member) {
         $return[] = $member->group_id;
     }
     return $return;
 }
Exemplo n.º 2
0
 /**
  * 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);
 }