support mailbox quota
This commit is contained in:
parent
06247fd84a
commit
9c458ea93e
|
@ -89,16 +89,17 @@ class kolabUser extends baseModule {
|
||||||
// profile options
|
// profile options
|
||||||
$profileContainer = new htmlTable();
|
$profileContainer = new htmlTable();
|
||||||
$profileContainer->addElement(new htmlTableExtendedInputField(_('Mail server'), 'kolab_mailHost', null, 'mailHost'), true);
|
$profileContainer->addElement(new htmlTableExtendedInputField(_('Mail server'), 'kolab_mailHost', null, 'mailHost'), true);
|
||||||
|
$profileContainer->addElement(new htmlTableExtendedInputField(_('Mailbox quota'), 'kolab_mailQuota', null, 'mailQuota'), true);
|
||||||
$return['profile_options'] = $profileContainer;
|
$return['profile_options'] = $profileContainer;
|
||||||
// profile checks
|
// profile checks
|
||||||
$return['profile_checks']['kolab_mailHost'] = array(
|
$return['profile_checks']['kolab_mailHost'] = array(
|
||||||
'type' => 'ext_preg',
|
'type' => 'ext_preg',
|
||||||
'regex' => 'DNSname',
|
'regex' => 'DNSname',
|
||||||
'error_message' => $this->messages['mailHost'][0]);
|
'error_message' => $this->messages['mailHost'][0]);
|
||||||
// profile mappings
|
$return['profile_checks']['kolab_mailQuota'] = array(
|
||||||
$return['profile_mappings'] = array(
|
'type' => 'ext_preg',
|
||||||
'kolab_mailHost' => 'mailHost',
|
'regex' => 'digit',
|
||||||
);
|
'error_message' => $this->messages['mailQuota'][0]);
|
||||||
// config options
|
// config options
|
||||||
$configContainer = new htmlTable();
|
$configContainer = new htmlTable();
|
||||||
$configContainer->addElement(new htmlTableExtendedInputCheckbox('kolabUser_mailrecipient', true, _('Manage object class "mailrecipient"'), 'mailrecipient'), true);
|
$configContainer->addElement(new htmlTableExtendedInputCheckbox('kolabUser_mailrecipient', true, _('Manage object class "mailrecipient"'), 'mailrecipient'), true);
|
||||||
|
@ -162,6 +163,10 @@ class kolabUser extends baseModule {
|
||||||
"Headline" => _('Manage object class "mailrecipient"'),
|
"Headline" => _('Manage object class "mailrecipient"'),
|
||||||
"Text" => _('Adds the object class "mailrecipient" to all user accounts.')
|
"Text" => _('Adds the object class "mailrecipient" to all user accounts.')
|
||||||
),
|
),
|
||||||
|
'mailQuota' => array(
|
||||||
|
"Headline" => _('Mailbox quota'), 'attr' => 'mailQuota',
|
||||||
|
"Text" => _('The maximum mailbox size in MB.')
|
||||||
|
),
|
||||||
'deleteFlag' => array(
|
'deleteFlag' => array(
|
||||||
"Headline" => _("Mark for deletion"), 'attr' => 'kolabDeleteflag',
|
"Headline" => _("Mark for deletion"), 'attr' => 'kolabDeleteflag',
|
||||||
"Text" => _("This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes).")
|
"Text" => _("This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes).")
|
||||||
|
@ -182,6 +187,12 @@ class kolabUser extends baseModule {
|
||||||
'example' => 'localhost',
|
'example' => 'localhost',
|
||||||
'required' => true
|
'required' => true
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'name' => 'kolabUser_mailQuota',
|
||||||
|
'description' => _('Mailbox quota'),
|
||||||
|
'help' => 'mailQuota',
|
||||||
|
'example' => '2000',
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'name' => 'kolabUser_aliases',
|
'name' => 'kolabUser_aliases',
|
||||||
'description' => _('Email aliases'),
|
'description' => _('Email aliases'),
|
||||||
|
@ -211,6 +222,7 @@ class kolabUser extends baseModule {
|
||||||
$return['PDF_fields'] = array(
|
$return['PDF_fields'] = array(
|
||||||
'invPol' => _('Invitation policy'),
|
'invPol' => _('Invitation policy'),
|
||||||
'mailHost' => _('Mailbox home server'),
|
'mailHost' => _('Mailbox home server'),
|
||||||
|
'mailQuota' => _('Mailbox quota'),
|
||||||
'aliases' => _('Email aliases'),
|
'aliases' => _('Email aliases'),
|
||||||
'delegate' => _('Delegates'),
|
'delegate' => _('Delegates'),
|
||||||
'kolabAllowSMTPRecipient' => _('Allowed recipients'),
|
'kolabAllowSMTPRecipient' => _('Allowed recipients'),
|
||||||
|
@ -235,6 +247,8 @@ class kolabUser extends baseModule {
|
||||||
$this->messages['kolabAllowSMTPRecipient'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPRecipient', _('Please enter a valid recipient expression.'));
|
$this->messages['kolabAllowSMTPRecipient'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPRecipient', _('Please enter a valid recipient expression.'));
|
||||||
$this->messages['kolabAllowSMTPSender'][0] = array('ERROR', _('Allowed senders'), _('Please enter a valid sender expression.'));
|
$this->messages['kolabAllowSMTPSender'][0] = array('ERROR', _('Allowed senders'), _('Please enter a valid sender expression.'));
|
||||||
$this->messages['kolabAllowSMTPSender'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPSender', _('Please enter a valid sender expression.'));
|
$this->messages['kolabAllowSMTPSender'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPSender', _('Please enter a valid sender expression.'));
|
||||||
|
$this->messages['mailQuota'][0] = array('ERROR', _('Mailbox quota'), _('Please enter a number.'));
|
||||||
|
$this->messages['mailQuota'][1] = array('ERROR', _('Account %s:') . ' kolabUser_mailQuota', _('Please enter a number.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -280,6 +294,16 @@ class kolabUser extends baseModule {
|
||||||
$return->addElement(new htmlOutputText($this->attributes['mailHost'][0]));
|
$return->addElement(new htmlOutputText($this->attributes['mailHost'][0]));
|
||||||
$return->addElement(new htmlHelpLink('mailHost'), true);
|
$return->addElement(new htmlHelpLink('mailHost'), true);
|
||||||
}
|
}
|
||||||
|
// mailbox quota
|
||||||
|
if ($this->manageMailrecipient()) {
|
||||||
|
$mailQuota = '';
|
||||||
|
if (!empty($this->attributes['mailQuota'][0])) {
|
||||||
|
$mailQuota = $this->attributes['mailQuota'][0] / 1024;
|
||||||
|
}
|
||||||
|
$mailQuotaField = new htmlTableExtendedInputField(_('Mailbox quota'), 'mailQuota', $mailQuota, 'mailQuota');
|
||||||
|
$mailQuotaField->setValidationRule(htmlElement::VALIDATE_NUMERIC);
|
||||||
|
$return->addElement($mailQuotaField, true);
|
||||||
|
}
|
||||||
// invitation policies
|
// invitation policies
|
||||||
$return->addElement(new htmlSubTitle(_('Invitation policy')), true);
|
$return->addElement(new htmlSubTitle(_('Invitation policy')), true);
|
||||||
$invitationContainer = new htmlTable();
|
$invitationContainer = new htmlTable();
|
||||||
|
@ -457,6 +481,19 @@ class kolabUser extends baseModule {
|
||||||
$this->processMultiValueInputTextField('kolabAllowSMTPRecipient', $errors, 'kolabEmailPrefix');
|
$this->processMultiValueInputTextField('kolabAllowSMTPRecipient', $errors, 'kolabEmailPrefix');
|
||||||
// allowed senders
|
// allowed senders
|
||||||
$this->processMultiValueInputTextField('kolabAllowSMTPSender', $errors, 'kolabEmailPrefix');
|
$this->processMultiValueInputTextField('kolabAllowSMTPSender', $errors, 'kolabEmailPrefix');
|
||||||
|
// mailbox quota
|
||||||
|
if ($this->manageMailrecipient()) {
|
||||||
|
if (!empty($_POST['mailQuota']) && !get_preg($_POST['mailQuota'], 'digit')) {
|
||||||
|
$errors[] = $this->messages['mailQuota'][0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$mailQuota = array();
|
||||||
|
if (!empty($_POST['mailQuota'])) {
|
||||||
|
$mailQuota = array($_POST['mailQuota'] * 1024);
|
||||||
|
}
|
||||||
|
$this->attributes['mailQuota'] = $mailQuota;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
@ -529,6 +566,24 @@ class kolabUser extends baseModule {
|
||||||
return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads the values of an account profile into internal variables.
|
||||||
|
*
|
||||||
|
* @param array $profile hash array with profile values (identifier => value)
|
||||||
|
*/
|
||||||
|
function load_profile($profile) {
|
||||||
|
// profile mappings in meta data
|
||||||
|
parent::load_profile($profile);
|
||||||
|
// mail server
|
||||||
|
if (!isset($this->orig['mailHost'][0]) && !empty($profile['kolab_mailHost'][0])) {
|
||||||
|
$this->attributes['mailHost'][0] = $profile['kolab_mailHost'][0];
|
||||||
|
}
|
||||||
|
// mailbox quota
|
||||||
|
if (!empty($profile['kolab_mailQuota'][0])) {
|
||||||
|
$this->attributes['mailQuota'][0] = $profile['kolab_mailQuota'][0] * 1024;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In this function the LDAP account is built up.
|
* In this function the LDAP account is built up.
|
||||||
*
|
*
|
||||||
|
@ -565,6 +620,17 @@ class kolabUser extends baseModule {
|
||||||
$messages[] = $errMsg;
|
$messages[] = $errMsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// mailbox quota
|
||||||
|
if (!empty($rawAccounts[$i][$ids['kolabUser_mailQuota']])) {
|
||||||
|
if (get_preg($rawAccounts[$i][$ids['kolabUser_mailQuota']], 'digit')) {
|
||||||
|
$partialAccounts[$i]['mailQuota'] = $rawAccounts[$i][$ids['kolabUser_mailQuota']] * 1024;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$errMsg = $this->messages['mailQuota'][1];
|
||||||
|
array_push($errMsg, array($i));
|
||||||
|
$messages[] = $errMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
// add invitation policies
|
// add invitation policies
|
||||||
if ($rawAccounts[$i][$ids['kolabUser_invPol']] != "") {
|
if ($rawAccounts[$i][$ids['kolabUser_invPol']] != "") {
|
||||||
$pols = explode(',', $rawAccounts[$i][$ids['kolabUser_invPol']]);
|
$pols = explode(',', $rawAccounts[$i][$ids['kolabUser_invPol']]);
|
||||||
|
@ -700,6 +766,11 @@ class kolabUser extends baseModule {
|
||||||
$this->addSimplePDFField($return, 'delegate', _('Delegates'), 'kolabDelegate');
|
$this->addSimplePDFField($return, 'delegate', _('Delegates'), 'kolabDelegate');
|
||||||
$this->addSimplePDFField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients'));
|
$this->addSimplePDFField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients'));
|
||||||
$this->addSimplePDFField($return, 'kolabAllowSMTPSender', _('Allowed senders'));
|
$this->addSimplePDFField($return, 'kolabAllowSMTPSender', _('Allowed senders'));
|
||||||
|
$mailQuota = '';
|
||||||
|
if (!empty($this->attributes['mailQuota'][0])) {
|
||||||
|
$mailQuota = ($this->attributes['mailQuota'][0] / 1024) . 'MB';
|
||||||
|
}
|
||||||
|
$return[get_class($this) . '_mailQuota'] = array('<block><key>' . _('Mailbox quota') . '</key><value>' . $mailQuota . '</value></block>');
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue