/*
- * $Id$
- *
* This module implements server commands related to the display and
* manipulation of the "Who's online" list.
*
+ * Copyright (c) 1987-2012 by the citadel.org team
+ *
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
*/
#include "sysdep.h"
#include "support.h"
#include "config.h"
#include "control.h"
-#include "room_ops.h"
#include "user_ops.h"
-#include "policy.h"
#include "database.h"
#include "msgbase.h"
#include "ctdl_module.h"
+/* Don't show the names of private rooms unless the viewing
+ * user also knows the rooms.
+ */
+void GenerateRoomDisplay(char *real_room,
+ CitContext *viewed,
+ CitContext *viewer) {
+
+ int ra;
+
+ strcpy(real_room, viewed->room.QRname);
+ if (viewed->room.QRflags & QR_MAILBOX) {
+ strcpy(real_room, &real_room[11]);
+ }
+ if (viewed->room.QRflags & QR_PRIVATE) {
+ CtdlRoomAccess(&viewed->room, &viewer->user, &ra, NULL);
+ if ( (ra & UA_KNOWN) == 0) {
+ strcpy(real_room, " ");
+ }
+ }
+
+ if (viewed->cs_flags & CS_CHAT) {
+ while (strlen(real_room) < 14) {
+ strcat(real_room, " ");
+ }
+ strcpy(&real_room[14], "<chat>");
+ }
+
+}
+
+
/*
* display who's online
/* So that we don't keep the context list locked for a long time
* we create a copy of it first
*/
-
-
nptr = CtdlGetContextArray(&nContexts) ;
if (!nptr)
{
return;
}
- aide = CC->user.axlevel >= 6;
+ aide = ( (CC->user.axlevel >= AxAideU) || (CC->internal_pgm) ) ;
cprintf("%d%c \n", LISTING_FOLLOWS, CtdlCheckExpress() );
for (i=0; i<nContexts; i++)
room_spoofed = 0;
host_spoofed = 0;
+ if (!aide && nptr[i].state == CON_SYS)
+ continue;
+
+ if (!aide && nptr[i].kill_me != 0)
+ continue;
+
if (nptr[i].cs_flags & CS_POSTING)
strcat(flags, "*");
else
CtdlRegisterProtoHook(cmd_stel, "STEL", "Enter/exit stealth mode");
}
- /* return our Subversion id for the Log */
- return "$Id$";
+ /* return our module name for the log */
+ return "rwho";
}