Xpressengine\User\UserHandler::leave PHP Method

leave() public method

회원탈퇴 처리를 한다. 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 삭제한다.
public leave ( string | string[] $userIds ) : void
$userIds string | string[] 탈퇴할 회원의 회원아이디 목록
return void
    public function leave($userIds)
    {
        /** @var UserInterface[] $users */
        $users = $this->users()->whereIn('id', (array) $userIds)->with(['groups', 'emails'])->get();
        $ratings = array_pluck($users, 'rating');
        if (in_array(Rating::SUPER, $ratings)) {
            throw new CannotDeleteUserHavingSuperRatingException();
        }
        // delete user's emails
        $this->emails()->deleteByUserIds($userIds);
        $this->pendingEmails()->deleteByUserIds($userIds);
        // delete user's accounts
        $this->accounts()->deleteByUserIds($userIds);
        // resolve group
        foreach ($users as $user) {
            // except user from user's groups
            $user->groups()->detach();
            $user->delete();
        }
        // todo: remove profile image
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * delete user
  *
  * @return \Illuminate\Http\RedirectResponse
  * @throws Exception
  */
 public function deleteMember()
 {
     $userIds = Input::get('userId', []);
     XeDB::beginTransaction();
     try {
         $this->handler->leave($userIds);
     } catch (Exception $e) {
         XeDB::rollBack();
         throw $e;
     }
     XeDB::commit();
     return redirect()->back()->with('alert', ['type' => 'success', 'message' => '삭제되었습니다.']);
 }
All Usage Examples Of Xpressengine\User\UserHandler::leave