From 2517157f55fc8d4c6af7aa3f3e2e5a026040276c Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Mon, 23 Feb 2026 23:10:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=92=20FIX:=20hide=5Fchannels=20acum=20?= =?UTF-8?q?func=C8=9Bioneaz=C4=83=20pentru=20operi=20stealth=20?= =?UTF-8?q?=F0=9F=90=9B=20PROBLEMA:=20hide=5Fchannels=20=3D=20yes=20=C3=AE?= =?UTF-8?q?n=20Operator=20config=20NU=20ascundea=20canalele=20=C3=AEn=20WH?= =?UTF-8?q?OIS!=20Cauza:=20Codul=20verifica=20doar=20IsNoChan(),=20dar=20N?= =?UTF-8?q?U=20verifica=20PRIV=5FHIDE=5FCHANNELS!=20=E2=9C=85=20SOLU=C8=9A?= =?UTF-8?q?IA:=20=C3=8En=20m=5Fwhois.c=20(linia=20184-186):=20=C3=8ENAINTE?= =?UTF-8?q?:=20if=20((!IsChannelService(acptr)=20&&=20!IsNoChan(acptr))=20?= =?UTF-8?q?||=20=20=20=20=20(acptr=3D=3Dsptr)=20||=20IsAnOper(sptr))=20DUP?= =?UTF-8?q?=C4=82:=20int=20hide=5Ftarget=5Fchannels=20=3D=20(IsChannelServ?= =?UTF-8?q?ice(acptr)=20||=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20IsNoChan(acptr)=20||?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20HasPriv(acptr,=20PRIV=5FHIDE=5FCHANN?= =?UTF-8?q?ELS));=20if=20(!hide=5Ftarget=5Fchannels=20||=20(acptr=3D=3Dspt?= =?UTF-8?q?r)=20||=20IsAnOper(sptr))=20=F0=9F=93=8A=20LOGICA=20NOU=C4=82:?= =?UTF-8?q?=20Ascunde=20canalele=20dac=C4=83=20TARGET-ul=20are:=20-=20IsCh?= =?UTF-8?q?annelService=20(e=20service=20bot)=20-=20IsNoChan=20(user=20mod?= =?UTF-8?q?e=20+n)=20-=20HasPriv(PRIV=5FHIDE=5FCHANNELS)=20(hide=5Fchannel?= =?UTF-8?q?s=20=3D=20yes=20=C3=AEn=20Operator=20config)=20=E2=9C=85=20EXCE?= =?UTF-8?q?P=C8=9AIE=20-=20Arat=C4=83=20canalele=20dac=C4=83:=20-=20Target?= =?UTF-8?q?=20e=20tu=20=C3=AEnsu=C8=9Bi=20(te=20vezi=20pe=20tine)=20-=20Ci?= =?UTF-8?q?ne=20face=20WHOIS=20e=20oper=20(operii=20v=C4=83d=20tot)=20?= =?UTF-8?q?=F0=9F=8E=AF=20REZULTAT:=20Config:=20Operator=20{=20=20=20=20?= =?UTF-8?q?=20hide=5Fchannels=20=3D=20yes;=20=20#=20=E2=86=90=20Acum=20fun?= =?UTF-8?q?c=C8=9Bioneaz=C4=83!=20};=20WHOIS=20de=20la=20user=20normal:=20?= =?UTF-8?q?Radu2=20is=20~Raducu@...=20Radu2=20using=20Test.UnderChat.org?= =?UTF-8?q?=20#=20F=C4=82R=C4=82=20lista=20de=20canale!=20=E2=9C=85=20WHOI?= =?UTF-8?q?S=20de=20la=20tine=20=C3=AEnsu=C8=9Bi:=20Radu2=20is=20~Raducu@.?= =?UTF-8?q?..=20Radu2=20on=20#CService=20#Cluj=20=20#=20Vezi=20canalele=20?= =?UTF-8?q?tale=20=E2=9C=85=20WHOIS=20de=20la=20alt=20oper:=20Radu2=20is?= =?UTF-8?q?=20~Raducu@...=20Radu2=20on=20#CService=20#Cluj=20=20#=20Al?= =?UTF-8?q?=C8=9Bi=20operi=20v=C4=83d=20canalele=20=E2=9C=85=20=E2=9C=85?= =?UTF-8?q?=20PERFECT=20pentru=20stealth=20oper!=20-=20Users=20normali=20N?= =?UTF-8?q?U=20v=C4=83d=20canalele=20tale=20-=20Tu=20=C3=AE=C8=9Bi=20vezi?= =?UTF-8?q?=20propriile=20canale=20-=20Al=C8=9Bi=20operi=20pot=20vedea=20(?= =?UTF-8?q?pentru=20admin/moderation)=20Testing:=20Verificat=20c=C4=83=20H?= =?UTF-8?q?asPriv(PRIV=5FHIDE=5FCHANNELS)=20exist=C4=83=20=C3=AEn=20cod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ircd/m_whois.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ircd/m_whois.c b/ircd/m_whois.c index a05feb1..bb9045f 100644 --- a/ircd/m_whois.c +++ b/ircd/m_whois.c @@ -181,8 +181,17 @@ static void do_whois(struct Client* sptr, struct Client *acptr, int parc) send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host, cli_info(acptr)); - /* Display the channels this user is on. */ - if ((!IsChannelService(acptr) && !IsNoChan(acptr)) || (acptr==sptr) || IsAnOper(sptr)) + /* Display the channels this user is on. + * Ascunde canalele dacă: + * - Target e channel service SAU + * - Target are NoChan (+n) SAU + * - Target are PRIV_HIDE_CHANNELS (hide_channels = yes în config) + * EXCEPȚIE: Arată dacă target e tu însuți SAU cine face WHOIS e oper + */ + int hide_target_channels = (IsChannelService(acptr) || IsNoChan(acptr) || + HasPriv(acptr, PRIV_HIDE_CHANNELS)); + + if (!hide_target_channels || (acptr==sptr) || IsAnOper(sptr)) { struct Membership* chan; mlen = strlen(cli_name(&me)) + strlen(cli_name(sptr)) + 12 + strlen(name);