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