1a61e34dcd633f2223cf77a2cc345c1085590b60
[citadel.git] / citadel / user_ops.h
1 /* $Id$ */
2 int hash (char *str);
3 /* getuser is deprecated, use CtdlGetUser instead */
4 int getuser (struct ctdluser *, char *) __attribute__ ((deprecated));
5 /* lgetuser is deprecated, use CtdlGetUserLock instead */
6 int lgetuser (struct ctdluser *, char *) __attribute__ ((deprecated));
7 /* putuser is deprecated, use CtdlPutUser instead */
8 void putuser (struct ctdluser *) __attribute__ ((deprecated));
9 /* lputuser is deprecated, use CtdlPutUserLock instead */
10 void lputuser (struct ctdluser *) __attribute__ ((deprecated));
11 int is_aide (void);
12 int is_room_aide (void);
13 /* getuserbynumber is deprecated, use CtdlGetUserByNumber instead */
14 int getuserbynumber (struct ctdluser *usbuf, long int number) __attribute__ ((deprecated));
15 void rebuild_usersbynumber(void);
16 void cmd_user (char *cmdbuf);
17 void session_startup (void);
18 void logged_in_response(void);
19 void logout (void);
20 int purge_user (char *pname);
21 int create_user (char *newusername, int become_user);
22 void do_login(void);
23 int CtdlInvtKick(char *iuser, int op);
24 void ForEachUser(void (*CallBack)(struct ctdluser *EachUser, void *out_data),
25         void *in_data);
26 void ListThisUser(struct ctdluser *usbuf, void *data);
27 int NewMailCount(void);
28 int InitialMailCheck(void);
29 void put_visit(struct visit *newvisit);
30 void CtdlGetRelationship(struct visit *vbuf,
31                         struct ctdluser *rel_user,
32                         struct ctdlroom *rel_room);
33 void CtdlSetRelationship(struct visit *newvisit,
34                         struct ctdluser *rel_user,
35                         struct ctdlroom *rel_room);
36 void MailboxName(char *buf, size_t n, const struct ctdluser *who,
37                  const char *prefix);
38 int GenerateRelationshipIndex(  char *IndexBuf,
39                                 long RoomID,
40                                 long RoomGen,
41                                 long UserID);
42 int CtdlAssociateSystemUser(char *screenname, char *loginname);
43 int CtdlLoginExistingUser(char *authname, char *username);
44
45 /*
46  * Values which may be returned by CtdlLoginExistingUser()
47  */
48 enum {
49         pass_ok,
50         pass_already_logged_in,
51         pass_no_user,
52         pass_internal_error,
53         pass_wrong_password
54 };
55
56
57
58
59 int CtdlTryPassword(char *password);
60 void CtdlSetPassword(char *new_pw);
61
62 /*
63  * Values which may be returned by CtdlTryPassword()
64  */
65 enum {
66         login_ok,
67         login_already_logged_in,
68         login_too_many_users,
69         login_not_found
70 };
71
72
73 int CtdlForgetThisRoom(void);
74
75 void cmd_newu (char *cmdbuf);
76 void BumpNewMailCounter(long);
77 void start_chkpwd_daemon(void);
78
79
80 #define RENAMEUSER_OK                   0       /* Operation succeeded */
81 #define RENAMEUSER_LOGGED_IN            1       /* Cannot rename a user who is currently logged in */
82 #define RENAMEUSER_NOT_FOUND            2       /* The old user name does not exist */
83 #define RENAMEUSER_ALREADY_EXISTS       3       /* An account with the desired new name already exists */
84
85 int rename_user(char *oldname, char *newname);
86 INLINE void makeuserkey(char *key, char *username);
87 int internal_create_user (char *username, struct ctdluser *usbuf, uid_t uid);