Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
lolo888
ISPConfig 3
Commits
f42df0c9
Commit
f42df0c9
authored
Jun 18, 2009
by
tbrehm
Browse files
Fix for a freeze of the maildrop command.
parent
c257ab14
Changes
1
Hide whitespace changes
Inline
Side-by-side
server/plugins-available/mail_plugin.inc.php
View file @
f42df0c9
...
...
@@ -106,8 +106,10 @@ class mail_plugin {
}
//* Set the maildir quota
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
]);
$app
->
log
(
'Set Maildir quota: '
.
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
],
LOGLEVEL_DEBUG
);
if
(
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'new'
))
{
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
]);
$app
->
log
(
'Set Maildir quota: '
.
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
],
LOGLEVEL_DEBUG
);
}
}
function
user_update
(
$event_name
,
$data
)
{
...
...
@@ -118,11 +120,35 @@ class mail_plugin {
$mail_config
=
$app
->
getconf
->
get_server_config
(
$conf
[
"server_id"
],
'mail'
);
// Create the maildir, if it does not exist
/*
if(!is_dir($data['new']['maildir'])) {
exec('mkdir -p '.escapeshellcmd($data['new']['maildir']));
exec('chown '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir']));
$app->log('Created Maildir: '.$data['new']['maildir'],LOGLEVEL_DEBUG);
}
*/
$maildomain_path
=
$data
[
'new'
][
'maildir'
];
$tmp_basepath
=
$data
[
'new'
][
'maildir'
];
$tmp_basepath_parts
=
explode
(
'/'
,
$tmp_basepath
);
unset
(
$tmp_basepath_parts
[
count
(
$tmp_basepath_parts
)
-
1
]);
$base_path
=
implode
(
'/'
,
$tmp_basepath_parts
);
//* Create the mail domain directory, if it does not exist
if
(
!
empty
(
$base_path
)
&&
!
is_dir
(
$base_path
))
{
exec
(
"su -c 'mkdir -p "
.
escapeshellcmd
(
$base_path
)
.
"' "
.
$mail_config
[
'mailuser_name'
]);
$app
->
log
(
'Created Directory: '
.
$base_path
,
LOGLEVEL_DEBUG
);
}
//* Create the maildir, if it doesn not exist, set permissions, set quota.
if
(
!
empty
(
$maildomain_path
)
&&
!
is_dir
(
$maildomain_path
.
'new'
))
{
exec
(
"su -c 'maildirmake "
.
escapeshellcmd
(
$maildomain_path
)
.
"' "
.
$mail_config
[
'mailuser_name'
]);
exec
(
'chown -R '
.
$mail_config
[
'mailuser_name'
]
.
':'
.
$mail_config
[
'mailuser_group'
]
.
' '
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]));
$app
->
log
(
"Set ownership on "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
]),
LOGLEVEL_DEBUG
);
//* This is to fix the maildrop quota not being rebuilt after the quota is changed.
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$maildomain_path
)
.
"' "
.
$mail_config
[
'mailuser_name'
]);
// Avoid maildirmake quota bug, see debian bug #214911
$app
->
log
(
'Created Maildir: '
.
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$maildomain_path
)
.
"' "
.
$mail_config
[
'mailuser_name'
],
LOGLEVEL_DEBUG
);
}
// Move mailbox, if domain has changed and delete old mailbox
if
(
$data
[
'new'
][
'maildir'
]
!=
$data
[
'old'
][
'maildir'
]
&&
is_dir
(
$data
[
'old'
][
'maildir'
]))
{
...
...
@@ -137,8 +163,10 @@ class mail_plugin {
$app
->
log
(
'Moved Maildir from: '
.
$data
[
'old'
][
'maildir'
]
.
' to '
.
$data
[
'new'
][
'maildir'
],
LOGLEVEL_DEBUG
);
}
//This is to fix the maildrop quota not being rebuilt after the quota is changed.
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
]);
$app
->
log
(
'Created Maildir: '
.
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
],
LOGLEVEL_DEBUG
);
if
(
is_dir
(
$data
[
'new'
][
'maildir'
]
.
'new'
))
{
exec
(
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
]);
$app
->
log
(
'Created Maildir: '
.
"su -c 'maildirmake -q "
.
$data
[
'new'
][
'quota'
]
.
"S "
.
escapeshellcmd
(
$data
[
'new'
][
'maildir'
])
.
"' "
.
$mail_config
[
'mailuser_name'
],
LOGLEVEL_DEBUG
);
}
}
function
user_delete
(
$event_name
,
$data
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment