-/* $Id$ */
+/*
+ * Header file for server functions which perform operations on user objects.
+ *
+ * Copyright (c) 1987-2020 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.
+ */
+
+#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));
-/* lgetuser is deprecated, use CtdlGetUserLock instead */
-int lgetuser (struct ctdluser *, char *) __attribute__ ((deprecated));
-/* putuser is deprecated, use CtdlPutUser instead */
-void putuser (struct ctdluser *) __attribute__ ((deprecated));
-/* lputuser is deprecated, use CtdlPutUserLock instead */
-void lputuser (struct ctdluser *) __attribute__ ((deprecated));
int is_aide (void);
int is_room_aide (void);
-/* getuserbynumber is deprecated, use CtdlGetUserByNumber instead */
-int getuserbynumber (struct ctdluser *usbuf, long int number) __attribute__ ((deprecated));
+int CtdlCheckInternetMailPermission(struct ctdluser *who);
void rebuild_usersbynumber(void);
-void cmd_user (char *cmdbuf);
void session_startup (void);
void logged_in_response(void);
-/* logout() is deprecated use CtdlUserLogout() instead */
-void logout (void) __attribute__ ((deprecated));
int purge_user (char *pname);
-int create_user (char *newusername, int become_user);
+int getuserbyuid(struct ctdluser *usbuf, uid_t number);
+
+int create_user(char *newusername, int become_user, uid_t uid);
+enum {
+ CREATE_USER_DO_NOT_BECOME_USER,
+ CREATE_USER_BECOME_USER
+};
+#define NATIVE_AUTH_UID (-1)
+
void do_login(void);
int CtdlInvtKick(char *iuser, int op);
-void ForEachUser(void (*CallBack)(struct ctdluser *EachUser, void *out_data),
- void *in_data);
-void ListThisUser(struct ctdluser *usbuf, void *data);
+void ForEachUser(void (*CallBack) (char *, void *out_data), void *in_data);
int NewMailCount(void);
int InitialMailCheck(void);
-void put_visit(struct visit *newvisit);
+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) __attribute__ ((deprecated));
#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);
+void reindex_user_928(char *username, void *out_data);
+
+void makeuserkey(char *key, const char *username);
+int CtdlUserCmp(char *s1, char *s2);
+int internal_create_user(char *username, struct ctdluser *usbuf, uid_t uid);
+
+#endif