/*
* Server functions which perform operations on user objects.
*
- * Copyright (c) 1987-2017 by the citadel.org team
+ * Copyright (c) 1987-2019 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.
striplt(username);
syslog(LOG_DEBUG, "user_ops: cmd_user(%s)", username);
- a = CtdlLoginExistingUser(NULL, username);
+ a = CtdlLoginExistingUser(username);
switch (a) {
case login_already_logged_in:
cprintf("%d Already logged in.\n", ERROR + ALREADY_LOGGED_IN);
cprintf("%d Not allowed. Use the 'passwd' command.\n", ERROR + NOT_HERE);
return;
}
- if (CC->is_master) {
- cprintf("%d The master prefix password cannot be changed with this command.\n",
- ERROR + NOT_HERE);
- return;
- }
if (!strcasecmp(new_pw, "GENERATE_RANDOM_PASSWORD")) {
char random_password[17];
cprintf("%d User '%s' validated.\n", CIT_OK, userbuf.fullname);
}
+
+/*
+ * List one user (this works with cmd_list)
+ */
+void ListThisUser(char *username, void *data)
+{
+ char *searchstring;
+ struct ctdluser usbuf;
+
+ if (CtdlGetUser(&usbuf, username) != 0) {
+ return;
+ }
+
+ searchstring = (char *)data;
+ if (bmstrcasestr(usbuf.fullname, searchstring) == NULL) {
+ return;
+ }
+
+ if (usbuf.axlevel > AxDeleted) {
+ if ((CC->user.axlevel >= AxAideU)
+ || ((usbuf.flags & US_UNLISTED) == 0)
+ || ((CC->internal_pgm))) {
+ cprintf("%s|%d|%ld|%ld|%ld|%ld||\n",
+ usbuf.fullname,
+ usbuf.axlevel,
+ usbuf.usernum,
+ (long)usbuf.lastcall,
+ usbuf.timescalled,
+ usbuf.posted);
+ }
+ }
+}
+
+
/*
* List users (searchstring may be empty to list all users)
*/