* GNU General Public License for more details.
*/
-#include "sysdep.h"
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <pwd.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <syslog.h>
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-#include <string.h>
-#include <limits.h>
-#include <libcitadel.h>
-#include "auth.h"
-#include "citadel.h"
-#include "server.h"
-#include "database.h"
-#include "sysdep_decls.h"
#include "support.h"
-#include "room_ops.h"
-#include "file_ops.h"
#include "control.h"
-#include "msgbase.h"
-#include "config.h"
-#include "citserver.h"
-#include "citadel_dirs.h"
-#include "genstamp.h"
-#include "threads.h"
-#include "citadel_ldap.h"
-#include "context.h"
#include "ctdl_module.h"
+
+#include "citserver.h"
+
#include "user_ops.h"
#include "internet_addressing.h"
cprintf("%d Usage error.\n", ERROR + ILLEGAL_VALUE);
return;
}
- CtdlGetUserLock(&CC->user, CC->curr_user);
+ CtdlLockGetCurrentUser();
CC->user.flags = CC->user.flags & (~US_USER_SET);
CC->user.flags = CC->user.flags | (extract_int(new_parms, 2) & US_USER_SET);
- CtdlPutUserLock(&CC->user);
+ CtdlPutCurrentUserLock();
cprintf("%d Ok\n", CIT_OK);
}
newlr = atol(new_ptr);
}
- CtdlGetUserLock(&CC->user, CC->curr_user);
+ CtdlLockGetCurrentUser();
CtdlGetRelationship(&vbuf, &CC->user, &CC->room);
memcpy(&original_vbuf, &vbuf, sizeof(visit));
CtdlSetRelationship(&vbuf, &CC->user, &CC->room);
}
- CtdlPutUserLock(&CC->user);
+ CtdlPutCurrentUserLock();
cprintf("%d %ld\n", CIT_OK, newlr);
}
}
+/*
+ * Citadel protocol command to do the same
+ */
+void cmd_isme(char *argbuf) {
+ char addr[256];
+
+ if (CtdlAccessCheck(ac_logged_in)) return;
+ extract_token(addr, argbuf, 0, '|', sizeof addr);
+
+ if (CtdlIsMe(addr, sizeof addr)) {
+ cprintf("%d %s\n", CIT_OK, addr);
+ }
+ else {
+ cprintf("%d Not you.\n", ERROR + ILLEGAL_VALUE);
+ }
+
+}
+
+
/*
* Set the preferred view for the current user/room combination
*/
CtdlRegisterProtoHook(cmd_view, "VIEW", "Set preferred view for user/room combination");
CtdlRegisterProtoHook(cmd_renu, "RENU", "Rename a user");
CtdlRegisterProtoHook(cmd_newu, "NEWU", "Log in as a new user");
+ CtdlRegisterProtoHook(cmd_isme, "ISME", "Determine whether an email address belongs to a user");
}
/* return our Subversion id for the Log */
return "user";