]> code.citadel.org Git - citadel.git/blobdiff - citadel/user_ops.c
* citserver.c, msgbase.c, user_ops.c: hide the owner-prefix of mail
[citadel.git] / citadel / user_ops.c
index bae201296e8332b0fbb2306a48cf848dc235e1bb..212ac5d63fcd3f04357730056187e6b441800792 100644 (file)
@@ -232,12 +232,15 @@ void PurgeStaleRelationships(void) {
                else {
                        purge = 0;
                        }
+
+               /*
                lprintf(9, "U/R REL: <%s> <%ld> <%ld> <%d> %s\n",
                        visits[a].v_roomname,
                        visits[a].v_generation,
                        visits[a].v_lastseen,
                        visits[a].v_flags,
                        (purge ? "**purging**" : "") );
+               */
 
                if (purge) {
                        memcpy(&visits[a], &visits[a+1],
@@ -464,17 +467,25 @@ void cmd_pass(char *buf)
 /*
  * Delete a user record *and* all of its related resources.
  */
-int purge_user(char *pname) {
+int purge_user(char pname[]) {
        char filename[64];
        char mailboxname[ROOMNAMELEN];
        struct usersupp usbuf;
        struct quickroom qrbuf;
+       char lowercase_name[32];
+       int a;
+
+       for (a=0; a<=strlen(pname); ++a) {
+               lowercase_name[a] = tolower(pname[a]);
+               }
 
        if (getuser(&usbuf, pname) != 0) {
                lprintf(5, "Cannot purge user <%s> - not found\n", pname);
                return(ERROR+NO_SUCH_USER);
                }
 
+       lprintf(5, "Deleting user <%s>\n", pname);
+
        /* FIX   Don't delete a user who is currently logged in. */
 
        /* Perform any purge functions registered by server extensions */
@@ -490,7 +501,7 @@ int purge_user(char *pname) {
                }
 
        /* delete the userlog entry */
-       cdb_delete(CDB_USERSUPP, pname, strlen(pname));
+       cdb_delete(CDB_USERSUPP, lowercase_name, strlen(lowercase_name));
 
        /* remove the user's bio file */        
        sprintf(filename, "./bio/%ld", usbuf.usernum);
@@ -1263,7 +1274,7 @@ void cmd_agup(char *cmdbuf) {
                return;
                }
 
-       cprintf("%d %s|%s|%u|%d|%d|%d|%ld\n", 
+       cprintf("%d %s|%s|%u|%d|%d|%d|%ld|%d\n", 
                OK,
                usbuf.fullname,
                usbuf.password,
@@ -1271,8 +1282,8 @@ void cmd_agup(char *cmdbuf) {
                usbuf.timescalled,
                usbuf.posted,
                (int)usbuf.axlevel,
-               usbuf.usernum);
-
+               usbuf.usernum,
+               usbuf.USuserpurge);
        }
 
 
@@ -1310,6 +1321,9 @@ void cmd_asup(char *cmdbuf) {
                        usbuf.axlevel = extract_int(cmdbuf, 5);
                        }
                }
+       if (np > 7) {
+               usbuf.USuserpurge = extract_int(cmdbuf, 7);
+               }
 
        lputuser(&usbuf, requested_user);
        if (usbuf.axlevel == 0) {