2006-01-01 16:30:05 +00:00
|
|
|
<?php
|
2017-04-26 16:22:05 +00:00
|
|
|
use LAM\TYPES\ConfiguredType;
|
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
/*
|
|
|
|
|
2009-10-27 18:47:12 +00:00
|
|
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
2020-03-03 19:34:06 +00:00
|
|
|
Copyright (C) 2005 - 2020 Roland Gruber
|
2006-01-01 16:30:05 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This is the parent class of all account types.
|
|
|
|
*
|
|
|
|
* @package types
|
|
|
|
* @author Roland Gruber
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This is the parent class of all account types.
|
|
|
|
*
|
|
|
|
* @package types
|
|
|
|
*/
|
|
|
|
class baseType {
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2012-07-15 12:05:47 +00:00
|
|
|
/** label to create another account */
|
2009-02-18 19:15:56 +00:00
|
|
|
public $LABEL_CREATE_ANOTHER_ACCOUNT;
|
2012-07-15 12:05:47 +00:00
|
|
|
/** label to return to account list */
|
2009-02-18 19:15:56 +00:00
|
|
|
public $LABEL_BACK_TO_ACCOUNT_LIST;
|
|
|
|
|
2017-04-26 16:22:05 +00:00
|
|
|
/** type configuration */
|
|
|
|
private $type;
|
|
|
|
|
2009-02-18 19:15:56 +00:00
|
|
|
/**
|
|
|
|
* Creates a new type object.
|
2017-04-26 16:22:05 +00:00
|
|
|
*
|
|
|
|
* @param ConfiguredType $type configuration
|
2009-02-18 19:15:56 +00:00
|
|
|
*/
|
2017-04-26 16:22:05 +00:00
|
|
|
public function __construct($type) {
|
|
|
|
$this->type = $type;
|
2009-02-18 19:15:56 +00:00
|
|
|
$this->LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another account');
|
|
|
|
$this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to account list');
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
/**
|
|
|
|
* Returns the alias name of this account type.
|
|
|
|
* This function must be overwritten by the child classes.
|
|
|
|
*
|
|
|
|
* @return string alias name
|
|
|
|
*/
|
2009-02-18 19:15:56 +00:00
|
|
|
public function getAlias() {
|
2006-01-01 16:30:05 +00:00
|
|
|
return "baseType";
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
/**
|
|
|
|
* Returns the description of this account type.
|
|
|
|
* This function must be overwritten by the child classes.
|
|
|
|
*
|
|
|
|
* @return string description
|
|
|
|
*/
|
2009-02-18 19:15:56 +00:00
|
|
|
public function getDescription() {
|
2006-01-01 16:30:05 +00:00
|
|
|
return "base type";
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
/**
|
|
|
|
* Returns the class name for the list object.
|
|
|
|
*
|
|
|
|
* @return string class name
|
|
|
|
*/
|
2009-02-18 19:15:56 +00:00
|
|
|
public function getListClassName() {
|
2006-01-01 16:30:05 +00:00
|
|
|
return "lamList";
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
/**
|
|
|
|
* Returns the default attribute list for this account type.
|
|
|
|
* This function must be overwritten by the child classes.
|
|
|
|
*
|
|
|
|
* @return string attribute list
|
|
|
|
*/
|
2009-02-18 19:15:56 +00:00
|
|
|
public function getDefaultListAttributes() {
|
2006-01-01 16:30:05 +00:00
|
|
|
return "dn:DN,objectClass:Object classes";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns a list of attributes which have a translated description.
|
|
|
|
* This is used for the head row in the list view.
|
|
|
|
*
|
|
|
|
* @return array list of descriptions
|
|
|
|
*/
|
2009-02-18 19:15:56 +00:00
|
|
|
public function getListAttributeDescriptions() {
|
2018-06-29 18:44:36 +00:00
|
|
|
return array(
|
|
|
|
'entryexpiretimestamp' => _('Deletion time'),
|
|
|
|
"description" => _("Description"),
|
|
|
|
);
|
2006-01-01 16:30:05 +00:00
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2010-02-27 19:14:15 +00:00
|
|
|
/**
|
|
|
|
* Returns if entries of this type may be created via file upload.
|
|
|
|
*
|
|
|
|
* @return boolean true, if file upload is supported
|
|
|
|
*/
|
|
|
|
public function supportsFileUpload() {
|
|
|
|
return true;
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2010-12-11 15:58:25 +00:00
|
|
|
/**
|
|
|
|
* Returns the the title text for the title bar on the new/edit page.
|
|
|
|
*
|
2012-04-07 16:40:34 +00:00
|
|
|
* @param accountContainer $container account container
|
2010-12-11 15:58:25 +00:00
|
|
|
* @return String title text
|
|
|
|
*/
|
2012-04-07 16:40:34 +00:00
|
|
|
public function getTitleBarTitle($container) {
|
|
|
|
if ($container->dn_orig == null) {
|
2010-12-11 15:58:25 +00:00
|
|
|
return null;
|
|
|
|
}
|
2012-04-07 16:40:34 +00:00
|
|
|
return htmlspecialchars(getAbstractDN($container->dn_orig));
|
2010-12-11 15:58:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the the title text for the title bar on the new/edit page.
|
|
|
|
*
|
2012-04-07 16:40:34 +00:00
|
|
|
* @param accountContainer $container account container
|
2010-12-11 15:58:25 +00:00
|
|
|
* @return String title text
|
|
|
|
*/
|
2012-04-07 16:40:34 +00:00
|
|
|
public function getTitleBarSubtitle($container) {
|
2010-12-11 15:58:25 +00:00
|
|
|
return null;
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2016-12-31 09:43:31 +00:00
|
|
|
/**
|
|
|
|
* Returns the LDAP filter to find the possible suffixes for this account type.
|
|
|
|
*
|
|
|
|
* @return string LDAP filter
|
|
|
|
*/
|
|
|
|
public function getSuffixFilter() {
|
|
|
|
return "(|(objectClass=organizationalunit)(objectClass=country)(objectClass=organization)(objectClass=krbRealmContainer)(objectClass=container))";
|
|
|
|
}
|
|
|
|
|
2012-04-09 13:20:24 +00:00
|
|
|
/**
|
|
|
|
* This function is called after the edit page is processed and before the page content is generated.
|
|
|
|
* This can be used to run custom handlers after each page processing.
|
2016-12-28 18:52:57 +00:00
|
|
|
*
|
2012-04-09 13:20:24 +00:00
|
|
|
* @param accountContainer $container account container
|
|
|
|
*/
|
2014-07-12 13:39:07 +00:00
|
|
|
public function runEditPagePostAction(&$container) {
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2012-04-09 13:20:24 +00:00
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2014-07-12 13:29:15 +00:00
|
|
|
/**
|
|
|
|
* Returns a list of configuration options.
|
2016-12-28 18:52:57 +00:00
|
|
|
*
|
2014-07-12 13:29:15 +00:00
|
|
|
* The field names are used as keywords to load and save settings.
|
|
|
|
* We recommend to use the type name as prefix for them (e.g. user_someSetting) to avoid naming conflicts.
|
|
|
|
*
|
|
|
|
* @return mixed htmlElement or array of htmlElement
|
2016-12-28 18:52:57 +00:00
|
|
|
*
|
2014-07-12 13:29:15 +00:00
|
|
|
* @see htmlElement
|
|
|
|
*/
|
|
|
|
public function get_configOptions() {
|
|
|
|
return null;
|
|
|
|
}
|
2006-01-01 16:30:05 +00:00
|
|
|
|
2014-07-12 13:29:15 +00:00
|
|
|
/**
|
|
|
|
* Checks input values of config settings.
|
|
|
|
* <br>
|
|
|
|
* If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text').
|
2020-03-03 19:34:06 +00:00
|
|
|
* <br>If no errors occurred the function returns an empty array.
|
2014-07-12 13:29:15 +00:00
|
|
|
*
|
|
|
|
* @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements.
|
|
|
|
* @return array list of error messages
|
|
|
|
*/
|
|
|
|
public function check_configOptions(&$options) {
|
|
|
|
return array();
|
|
|
|
}
|
2016-12-28 18:52:57 +00:00
|
|
|
|
2017-03-18 10:28:21 +00:00
|
|
|
/**
|
|
|
|
* Returns if this account type supports multiple configurations.
|
|
|
|
*
|
|
|
|
* @return boolean multiple configs supported
|
|
|
|
*/
|
2016-12-28 18:52:57 +00:00
|
|
|
public function supportsMultipleConfigs() {
|
2017-03-18 10:28:21 +00:00
|
|
|
return true;
|
2016-12-28 18:52:57 +00:00
|
|
|
}
|
|
|
|
|
2017-04-26 16:22:05 +00:00
|
|
|
/**
|
|
|
|
* Returns the type configuration.
|
|
|
|
*
|
|
|
|
* @return ConfiguredType type configuration
|
|
|
|
*/
|
|
|
|
protected function getType() {
|
|
|
|
return $this->type;
|
|
|
|
}
|
|
|
|
|
2017-07-05 15:44:18 +00:00
|
|
|
/**
|
|
|
|
* Returns the file name of the type icon.
|
|
|
|
* It needs to be 16x16px and located in graphics folder.
|
|
|
|
* By default this is "{type name}.png"
|
|
|
|
*
|
|
|
|
* @return string file name
|
|
|
|
*/
|
|
|
|
public function getIcon() {
|
|
|
|
return get_class($this) . '.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the scope name.
|
|
|
|
*
|
|
|
|
* @return string scope
|
|
|
|
*/
|
|
|
|
public function getScope() {
|
|
|
|
return get_class($this);
|
|
|
|
}
|
|
|
|
|
2006-01-01 16:30:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
?>
|