示例#1
0
 public function quitGroup(Group $group, GroupUser $model)
 {
     if ($resp = $this->checkGroupWithUser($group, $model)) {
         return $resp;
     }
     if (($result = $this->getGroupUserArray($model)) instanceof ApiResponse) {
         return $result;
     }
     if ($result) {
         ConvertUtil::arrayToObject($result, $model, ['id', 'gid', 'uid', 'permission', 'create_time', 'status', 'remark']);
         if (Group::TYPE_CHATROOM == $group->type) {
             return GroupManager::getInstance()->quitOrDeleteChatroom($group, $model);
         } else {
             if ($group->uid == $model->uid) {
                 return new ApiResponse(Code::FAIL_PERMISSION_DENY, 'create user can not quit');
             }
             if ($resp = $this->removeGroupUserById($model)) {
                 return $resp;
             }
             JegarnUtil::quitGroup($group->id, $model->uid);
             JegarnUtil::sendGroupQuitNotification($group->uid, $model->uid, $group->id, $group->name);
         }
     }
     return null;
 }