stable now but there are GIANT PIECES MISSING
[citadel.git] / citadel / modules / newuser / serv_newuser.c
index ac47feb102d71a7971e6f9184dd6d54b7844eb2b..146dae710edc4fe00621c51314a451fdffbc672c 100644 (file)
@@ -1,9 +1,16 @@
 /*
- * $Id$
- *
- * Automaticalyl copies the contents of a "New User Greetings" room to the
+ * Automatically copies the contents of a "New User Greetings" room to the
  * inbox of any new user upon account creation.
  *
+ * Copyright (c) 1987-2012 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.
  */
 
 /*
@@ -11,7 +18,6 @@
  */
 #define NEWUSERGREETINGS       "New User Greetings"
 
-
 #include "sysdep.h"
 #include <stdlib.h>
 #include <unistd.h>
 #include <pwd.h>
 #include <errno.h>
 #include <sys/types.h>
-
-#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 <time.h>
 #include <sys/wait.h>
 #include <string.h>
 #include <limits.h>
+#include "ctdl_module.h"
 #include "citadel.h"
 #include "server.h"
 #include "citserver.h"
 #include "support.h"
 #include "config.h"
-#include "room_ops.h"
 #include "user_ops.h"
-#include "policy.h"
 #include "database.h"
 #include "msgbase.h"
 
-
-#include "ctdl_module.h"
-
-
-
-extern struct CitContext *ContextList;
-
-
 /*
  * Copy the contents of the New User Greetings> room to the user's Mail> room.
  */
@@ -69,13 +55,13 @@ void CopyNewUserGreetings(void) {
        if (CC->user.timescalled != 1) return;
 
        /* This user's mailbox. */
-       MailboxName(mailboxname, sizeof mailboxname, &CC->user, MAILROOM);
+       CtdlMailboxName(mailboxname, sizeof mailboxname, &CC->user, MAILROOM);
 
        /* Go to the source room ... bail out silently if it's not there,
         * or if it's not private.
         */
-       if (getroom(&CC->room, NEWUSERGREETINGS) != 0) return;
-       if (! CC->room.QRflags & QR_PRIVATE ) return;
+       if (CtdlGetRoom(&CC->room, NEWUSERGREETINGS) != 0) return;
+       if ((CC->room.QRflags & QR_PRIVATE) == 0) return;
 
        cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long));
 
@@ -87,7 +73,7 @@ void CopyNewUserGreetings(void) {
        }
 
        if (num_msgs > 0) {
-               CtdlCopyMsgsToRoom(msglist, num_msgs, mailboxname);
+               CtdlSaveMsgPointersInRoom(mailboxname, msglist, num_msgs, 1, NULL, 0);
        }
 
        /* Now free the memory we used, and go away. */
@@ -97,8 +83,11 @@ void CopyNewUserGreetings(void) {
 
 CTDL_MODULE_INIT(newuser)
 {
-   CtdlRegisterSessionHook(CopyNewUserGreetings, EVT_LOGIN);
-
-   /* return our Subversion id for the Log */
-   return "$Id$";
+       if (!threading)
+       {
+               CtdlRegisterSessionHook(CopyNewUserGreetings, EVT_LOGIN, PRIO_LOGIN + 1);
+       }
+       
+       /* return our module name for the log */
+       return "newuser";
 }