diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc
index 28a257d8..3abb75ad 100644
--- a/lam/lib/modules/inetOrgPerson.inc
+++ b/lam/lib/modules/inetOrgPerson.inc
@@ -2132,20 +2132,9 @@ class inetOrgPerson extends baseModule implements passwordService {
}
/**
- * Returns an array containing all input columns for the file upload.
- *
- * Syntax:
- *
array(
- *
string: name, // fixed non-translated name which is used as column name (should be of format: _)
- *
string: description, // short descriptive name
- *
string: help, // help ID
- *
string: example, // example value
- *
boolean: required // true, if user must set a value for this column
- *
)
- *
- * @param array $selectedModules list of selected account modules
- * @return array column list
- */
+ * {@inheritDoc}
+ * @see baseModule::getManagedAttributes()
+ */
function get_uploadColumns($selectedModules) {
$return = parent::get_uploadColumns($selectedModules);
// cn and uid for upload (only if posixAccount is not selected)
diff --git a/lam/lib/modules/kolabGroup.inc b/lam/lib/modules/kolabGroup.inc
index 633a0213..00b2299c 100644
--- a/lam/lib/modules/kolabGroup.inc
+++ b/lam/lib/modules/kolabGroup.inc
@@ -1,9 +1,10 @@
manageMail()) {
- $return['attributes'][] = 'mail';
- }
// help Entries
$return['help'] = array(
'mail' => array(
@@ -149,24 +147,11 @@ class kolabGroup extends baseModule {
'example' => '.com; -.net',
),
);
- if ($this->manageMail()) {
- $return['upload_columns'][] = array(
- 'name' => 'kolabGroup_mail',
- 'description' => _('Email address'),
- 'help' => 'mailList',
- 'example' => 'list@company.com',
- 'required' => true,
- 'unique' => true,
- );
- }
// available PDF fields
$return['PDF_fields'] = array(
'kolabAllowSMTPRecipient' => _('Allowed recipients'),
'kolabAllowSMTPSender' => _('Allowed senders'),
);
- if ($this->manageMail()) {
- $return['PDF_fields']['mail'] = _('Email address');
- }
return $return;
}
@@ -198,7 +183,7 @@ class kolabGroup extends baseModule {
return $container;
}
// mail
- if ($this->manageMail()) {
+ if ($this->manageMail($this->getAccountContainer()->get_type()->getModules())) {
$this->addSimpleInputTextField($container, 'mail', _('Email address'), true);
}
// allowed recipients
@@ -249,7 +234,7 @@ class kolabGroup extends baseModule {
return $errors;
}
// mail
- if ($this->manageMail()) {
+ if ($this->manageMail($this->getAccountContainer()->get_type()->getModules())) {
if (!empty($_POST['mail'])) {
$this->attributes['mail'][0] = $_POST['mail'];
// check format
@@ -342,6 +327,25 @@ class kolabGroup extends baseModule {
}
}
+ /**
+ * {@inheritDoc}
+ * @see baseModule::getManagedAttributes()
+ */
+ function get_uploadColumns($selectedModules) {
+ $return = parent::get_uploadColumns($selectedModules);
+ if ($this->manageMail($selectedModules)) {
+ $return[] = array(
+ 'name' => 'kolabGroup_mail',
+ 'description' => _('Email address'),
+ 'help' => 'mailList',
+ 'example' => 'list@company.com',
+ 'required' => true,
+ 'unique' => true,
+ );
+ }
+ return $return;
+ }
+
/**
* In this function the LDAP account is built up.
*
@@ -363,7 +367,7 @@ class kolabGroup extends baseModule {
$partialAccounts[$i]['objectClass'][] = 'kolabGroupOfUniqueNames';
}
// mail
- if ($this->manageMail() && !empty($rawAccounts[$i][$ids['kolabGroup_mail']])) {
+ if ($this->manageMail($selectedModules) && !empty($rawAccounts[$i][$ids['kolabGroup_mail']])) {
if (get_preg($rawAccounts[$i][$ids['kolabGroup_mail']], 'email')) {
$this->loadMailCache();
if (!in_array_ignore_case(trim($rawAccounts[$i][$ids['kolabGroup_mail']]), $this->mailCache)) {
@@ -389,6 +393,20 @@ class kolabGroup extends baseModule {
return $messages;
}
+ /**
+ * {@inheritDoc}
+ * @see baseModule::get_pdfFields()
+ */
+ public function get_pdfFields($typeId) {
+ $fields = parent::get_pdfFields($typeId);
+ $typeManager = new TypeManager();
+ $modules = $typeManager->getConfiguredType($typeId)->getModules();
+ if ($this->manageMail($modules)) {
+ $fields['mail'] = _('Email address');
+ }
+ return $fields;
+ }
+
/**
* {@inheritDoc}
* @see baseModule::get_pdfEntries()
@@ -404,19 +422,16 @@ class kolabGroup extends baseModule {
/**
* Returns if the mail attribute should be managed.
*
+ * @param string[] $modules account modules
* @return boolean manage mail attribute
*/
- private function manageMail() {
- if (isset($_SESSION['config'])) {
- $conf = $_SESSION['config'];
- if (in_array('qmailGroup', $conf->get_AccountModules($this->get_scope()))) {
- return false;
- }
- else {
- return true;
- }
+ private function manageMail($modules) {
+ if (in_array('qmailGroup', $modules)) {
+ return false;
+ }
+ else {
+ return true;
}
- return false;
}
/**
@@ -451,6 +466,19 @@ class kolabGroup extends baseModule {
}
}
+ /**
+ * {@inheritDoc}
+ * @see baseModule::getManagedAttributes()
+ */
+ public function getManagedAttributes($typeId) {
+ $attrs = parent::getManagedAttributes($typeId);
+ $typeManager = new TypeManager();
+ if ($this->manageMail($typeManager->getConfiguredType($typeId)->getModules())) {
+ $attrs[] = 'mail';
+ }
+ return $attrs;
+ }
+
}