diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 5fa2424..7ee4c1c 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -307,6 +307,27 @@ void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg) respmsg); return; } + if (sender == member) { + SendErrorMsg(hdr.socket_handle, forward_msg->context(), "不能踢自己"); + respmsg.set_errcode(3); + respmsg.set_errmsg("不能踢自己"); + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + return; + } + if (GetMemberJob(sender->account_id) != kGuildOwner) { + if (GetMemberJob(member->account_id) == kGuildAdmin) { + SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够"); + respmsg.set_errcode(3); + respmsg.set_errmsg("权限不够"); + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + return; + } + } + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg);