make use of mailbox_owner
This commit is contained in:
@@ -30,6 +30,16 @@ class Dovecot(base.Installer):
|
||||
"conf.d/10-master.conf", "conf.d/20-lmtp.conf", "conf.d/10-ssl-keys.try"]
|
||||
with_user = True
|
||||
|
||||
def setup_user(self):
|
||||
"""Setup mailbox user."""
|
||||
self.mailboxes_owner = self.app_config["mailboxes_owner"]
|
||||
if self.config.has_option(self.appname, "home_dir"):
|
||||
self.home_dir = self.config.get(self.appname, "home_dir")
|
||||
else:
|
||||
self.home_dir = None
|
||||
system.create_user(self.mailbox_owner, self.home_dir)
|
||||
super(Dovecot, self).setup_user()
|
||||
|
||||
def get_config_files(self):
|
||||
"""Additional config files."""
|
||||
return self.config_files + [
|
||||
@@ -58,7 +68,7 @@ class Dovecot(base.Installer):
|
||||
def get_template_context(self):
|
||||
"""Additional variables."""
|
||||
context = super(Dovecot, self).get_template_context()
|
||||
pw = pwd.getpwnam(self.user)
|
||||
pw_mailbox = pwd.getpwnam(self.mailboxes_owner)
|
||||
dovecot_package = {"deb": "dovecot-core", "rpm": "dovecot"}
|
||||
ssl_protocol_parameter = "ssl_protocols"
|
||||
if package.backend.get_installed_version(dovecot_package[package.backend.FORMAT]) > "2.3":
|
||||
@@ -79,8 +89,8 @@ class Dovecot(base.Installer):
|
||||
protocols = ""
|
||||
context.update({
|
||||
"db_driver": self.db_driver,
|
||||
"mailboxes_owner_uid": pw[2],
|
||||
"mailboxes_owner_gid": pw[3],
|
||||
"mailboxes_owner_uid": pw_mailbox[2],
|
||||
"mailboxes_owner_gid": pw_mailbox[3],
|
||||
"modoboa_user": self.config.get("modoboa", "user"),
|
||||
"modoboa_dbname": self.config.get("modoboa", "dbname"),
|
||||
"modoboa_dbuser": self.config.get("modoboa", "dbuser"),
|
||||
@@ -161,10 +171,10 @@ class Dovecot(base.Installer):
|
||||
shutil.copytree(mail_dir, home_dir)
|
||||
# Resetting permission for vmail
|
||||
for dirpath, dirnames, filenames in os.walk(home_dir):
|
||||
shutil.chown(dirpath, self.user, self.user)
|
||||
shutil.chown(dirpath, self.mailboxes_owner, self.mailboxes_owner)
|
||||
for filename in filenames:
|
||||
shutil.chown(os.path.join(dirpath, filename),
|
||||
self.user, self.user)
|
||||
self.mailboxes_owner, self.mailboxes_owner)
|
||||
else:
|
||||
utils.printcolor(
|
||||
"It seems that emails were not backed up, skipping restoration.",
|
||||
|
||||
Reference in New Issue
Block a user