new type API
This commit is contained in:
parent
50d472e96d
commit
51bb97ba38
|
@ -2132,19 +2132,8 @@ class inetOrgPerson extends baseModule implements passwordService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array containing all input columns for the file upload.
|
* {@inheritDoc}
|
||||||
*
|
* @see baseModule::getManagedAttributes()
|
||||||
* Syntax:
|
|
||||||
* <br> array(
|
|
||||||
* <br> string: name, // fixed non-translated name which is used as column name (should be of format: <module name>_<column name>)
|
|
||||||
* <br> string: description, // short descriptive name
|
|
||||||
* <br> string: help, // help ID
|
|
||||||
* <br> string: example, // example value
|
|
||||||
* <br> boolean: required // true, if user must set a value for this column
|
|
||||||
* <br> )
|
|
||||||
*
|
|
||||||
* @param array $selectedModules list of selected account modules
|
|
||||||
* @return array column list
|
|
||||||
*/
|
*/
|
||||||
function get_uploadColumns($selectedModules) {
|
function get_uploadColumns($selectedModules) {
|
||||||
$return = parent::get_uploadColumns($selectedModules);
|
$return = parent::get_uploadColumns($selectedModules);
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
use LAM\TYPES\TypeManager;
|
||||||
/*
|
/*
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2013 - 2015 Roland Gruber
|
Copyright (C) 2013 - 2017 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -78,9 +79,6 @@ class kolabGroup extends baseModule {
|
||||||
$return['objectClasses'] = array('kolabGroupOfUniqueNames');
|
$return['objectClasses'] = array('kolabGroupOfUniqueNames');
|
||||||
// managed attributes
|
// managed attributes
|
||||||
$return['attributes'] = array('kolabAllowSMTPRecipient', 'kolabAllowSMTPSender', 'kolabDeleteflag');
|
$return['attributes'] = array('kolabAllowSMTPRecipient', 'kolabAllowSMTPSender', 'kolabDeleteflag');
|
||||||
if ($this->manageMail()) {
|
|
||||||
$return['attributes'][] = 'mail';
|
|
||||||
}
|
|
||||||
// help Entries
|
// help Entries
|
||||||
$return['help'] = array(
|
$return['help'] = array(
|
||||||
'mail' => array(
|
'mail' => array(
|
||||||
|
@ -149,24 +147,11 @@ class kolabGroup extends baseModule {
|
||||||
'example' => '.com; -.net',
|
'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
|
// available PDF fields
|
||||||
$return['PDF_fields'] = array(
|
$return['PDF_fields'] = array(
|
||||||
'kolabAllowSMTPRecipient' => _('Allowed recipients'),
|
'kolabAllowSMTPRecipient' => _('Allowed recipients'),
|
||||||
'kolabAllowSMTPSender' => _('Allowed senders'),
|
'kolabAllowSMTPSender' => _('Allowed senders'),
|
||||||
);
|
);
|
||||||
if ($this->manageMail()) {
|
|
||||||
$return['PDF_fields']['mail'] = _('Email address');
|
|
||||||
}
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +183,7 @@ class kolabGroup extends baseModule {
|
||||||
return $container;
|
return $container;
|
||||||
}
|
}
|
||||||
// mail
|
// mail
|
||||||
if ($this->manageMail()) {
|
if ($this->manageMail($this->getAccountContainer()->get_type()->getModules())) {
|
||||||
$this->addSimpleInputTextField($container, 'mail', _('Email address'), true);
|
$this->addSimpleInputTextField($container, 'mail', _('Email address'), true);
|
||||||
}
|
}
|
||||||
// allowed recipients
|
// allowed recipients
|
||||||
|
@ -249,7 +234,7 @@ class kolabGroup extends baseModule {
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
// mail
|
// mail
|
||||||
if ($this->manageMail()) {
|
if ($this->manageMail($this->getAccountContainer()->get_type()->getModules())) {
|
||||||
if (!empty($_POST['mail'])) {
|
if (!empty($_POST['mail'])) {
|
||||||
$this->attributes['mail'][0] = $_POST['mail'];
|
$this->attributes['mail'][0] = $_POST['mail'];
|
||||||
// check format
|
// 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.
|
* In this function the LDAP account is built up.
|
||||||
*
|
*
|
||||||
|
@ -363,7 +367,7 @@ class kolabGroup extends baseModule {
|
||||||
$partialAccounts[$i]['objectClass'][] = 'kolabGroupOfUniqueNames';
|
$partialAccounts[$i]['objectClass'][] = 'kolabGroupOfUniqueNames';
|
||||||
}
|
}
|
||||||
// mail
|
// 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')) {
|
if (get_preg($rawAccounts[$i][$ids['kolabGroup_mail']], 'email')) {
|
||||||
$this->loadMailCache();
|
$this->loadMailCache();
|
||||||
if (!in_array_ignore_case(trim($rawAccounts[$i][$ids['kolabGroup_mail']]), $this->mailCache)) {
|
if (!in_array_ignore_case(trim($rawAccounts[$i][$ids['kolabGroup_mail']]), $this->mailCache)) {
|
||||||
|
@ -389,6 +393,20 @@ class kolabGroup extends baseModule {
|
||||||
return $messages;
|
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}
|
* {@inheritDoc}
|
||||||
* @see baseModule::get_pdfEntries()
|
* @see baseModule::get_pdfEntries()
|
||||||
|
@ -404,20 +422,17 @@ class kolabGroup extends baseModule {
|
||||||
/**
|
/**
|
||||||
* Returns if the mail attribute should be managed.
|
* Returns if the mail attribute should be managed.
|
||||||
*
|
*
|
||||||
|
* @param string[] $modules account modules
|
||||||
* @return boolean manage mail attribute
|
* @return boolean manage mail attribute
|
||||||
*/
|
*/
|
||||||
private function manageMail() {
|
private function manageMail($modules) {
|
||||||
if (isset($_SESSION['config'])) {
|
if (in_array('qmailGroup', $modules)) {
|
||||||
$conf = $_SESSION['config'];
|
|
||||||
if (in_array('qmailGroup', $conf->get_AccountModules($this->get_scope()))) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the list of email addresses into the cache.
|
* Loads the list of email addresses into the cache.
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue