-/* $Id$ */
+#ifndef __USER_OPS_H__
+#define __USER_OPS_H__
+
+#include <ctype.h>
+#include <syslog.h>
+
int hash (char *str);
/* getuser is deprecated, use CtdlGetUser instead */
int getuser (struct ctdluser *, char *) __attribute__ ((deprecated));
void lputuser (struct ctdluser *) __attribute__ ((deprecated));
int is_aide (void);
int is_room_aide (void);
+int CtdlCheckInternetMailPermission(struct ctdluser *who);
/* getuserbynumber is deprecated, use CtdlGetUserByNumber instead */
int getuserbynumber (struct ctdluser *usbuf, long int number) __attribute__ ((deprecated));
void rebuild_usersbynumber(void);
-void cmd_user (char *cmdbuf);
void session_startup (void);
void logged_in_response(void);
-void logout (void);
int purge_user (char *pname);
-int create_user (char *newusername, int become_user);
+int create_user (const char *newusername, long len, int become_user);
void do_login(void);
int CtdlInvtKick(char *iuser, int op);
void ForEachUser(void (*CallBack)(struct ctdluser *EachUser, void *out_data),
void ListThisUser(struct ctdluser *usbuf, void *data);
int NewMailCount(void);
int InitialMailCheck(void);
-void put_visit(struct visit *newvisit);
-void CtdlGetRelationship(struct visit *vbuf,
- struct ctdluser *rel_user,
- struct ctdlroom *rel_room);
-void CtdlSetRelationship(struct visit *newvisit,
- struct ctdluser *rel_user,
- struct ctdlroom *rel_room);
+void put_visit(visit *newvisit);
+/* MailboxName is deprecated us CtdlMailboxName instead */
void MailboxName(char *buf, size_t n, const struct ctdluser *who,
- const char *prefix);
+ const char *prefix) __attribute__ ((deprecated));
int GenerateRelationshipIndex( char *IndexBuf,
long RoomID,
long RoomGen,
long UserID);
int CtdlAssociateSystemUser(char *screenname, char *loginname);
-int CtdlLoginExistingUser(char *authname, char *username);
-
-/*
- * Values which may be returned by CtdlLoginExistingUser()
- */
-enum {
- pass_ok,
- pass_already_logged_in,
- pass_no_user,
- pass_internal_error,
- pass_wrong_password
-};
-int CtdlTryPassword(char *password);
void CtdlSetPassword(char *new_pw);
-/*
- * Values which may be returned by CtdlTryPassword()
- */
-enum {
- login_ok,
- login_already_logged_in,
- login_too_many_users,
- login_not_found
-};
-
-
int CtdlForgetThisRoom(void);
void cmd_newu (char *cmdbuf);
-void BumpNewMailCounter(long);
void start_chkpwd_daemon(void);
#define RENAMEUSER_ALREADY_EXISTS 3 /* An account with the desired new name already exists */
int rename_user(char *oldname, char *newname);
-INLINE void makeuserkey(char *key, char *username);
-int internal_create_user (char *username, struct ctdluser *usbuf, uid_t uid);
+
+///#ifndef CTDL_INLINE_USR
+////#define CTDL_INLINE_USR static INLINE
+///#endif
+
+///CTDL_INLINE_USR
+static INLINE long cutuserkey(char *username) {
+ long len;
+ len = strlen(username);
+ if (len >= USERNAME_SIZE)
+ {
+ syslog(LOG_INFO, "Username too long: %s", username);
+ cit_backtrace ();
+ len = USERNAME_SIZE - 1;
+ username[len]='\0';
+ }
+ return len;
+}
+
+/*
+ * makeuserkey() - convert a username into the format used as a database key
+ * (it's just the username converted into lower case)
+ */
+///CTDL_INLINE_USR
+static INLINE void makeuserkey(char *key, const char *username, long len) {
+ int i;
+
+ if (len >= USERNAME_SIZE)
+ {
+ syslog(LOG_INFO, "Username too long: %s", username);
+ cit_backtrace ();
+ len = USERNAME_SIZE - 1;
+ }
+ for (i=0; i<=len; ++i) {
+ key[i] = tolower(username[i]);
+ }
+}
+
+
+int internal_create_user (const char *username, long len, struct ctdluser *usbuf, uid_t uid);
+
+#endif