lib/vdomain/set.cc
changeset 2 b3afb9f1e801
parent 0 6f7a81934006
--- a/lib/vdomain/set.cc	Sun Jan 20 00:12:17 2008 +0100
+++ b/lib/vdomain/set.cc	Sun Jan 20 00:22:09 2008 +0100
@@ -18,8 +18,7 @@
 #include "vdomain.h"
 #include "misc/maildir.h"
 
-response vdomain::set(const vpwentry* vpw, bool onlyadd,
-		      mystring maildir)
+response vdomain::set(const vpwentry* vpw, bool onlyadd)
 {
   if(!vpw)
     RETURN(err, "Internal error: no vpwentry");
@@ -27,14 +26,13 @@
     RETURN(bad, "Virtual user or alias name contains invalid characters");
   if(!validate_password(vpw->pass))
     RETURN(bad, "Password field contains invalid characters");
-  if(!!maildir && !make_maildir(maildir.c_str()))
-    RETURN(err, "Can't create the mail directory '" + maildir + "'");
+  if(mkdirp(vpw->directory, 0700) == -1)
+    RETURN(err, "Can't create the user directory '" + vpw->directory + "'");
+  if(vpw->has_mailbox && !make_maildir(vpw->directory))
+    RETURN(err, "Can't create the mail directory '" + vpw->directory + "'");
   if(!table()->put(vpw, onlyadd)) {
-    if(!!maildir)
-      delete_directory(maildir.c_str());
+    delete_directory(vpw->directory);
     RETURN(err, "Can't add the user to the password file");
   }
-  RETURN(ok, !maildir
-	 ? "Alias added successfully"
-	 : "User added successfully");
+  RETURN(ok, "User added successfully");
 }