LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another account'); $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to account list'); } /** * Returns the alias name of this account type. * This function must be overwritten by the child classes. * * @return string alias name */ public function getAlias() { return "baseType"; } /** * Returns the description of this account type. * This function must be overwritten by the child classes. * * @return string description */ public function getDescription() { return "base type"; } /** * Returns the class name for the list object. * * @return string class name */ public function getListClassName() { return "lamList"; } /** * Returns the default attribute list for this account type. * This function must be overwritten by the child classes. * * @return string attribute list */ public function getDefaultListAttributes() { 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 */ public function getListAttributeDescriptions() { return array(); } /** * 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; } /** * Returns the the title text for the title bar on the new/edit page. * * @param accountContainer $container account container * @return String title text */ public function getTitleBarTitle($container) { if ($container->dn_orig == null) { return null; } return htmlspecialchars(getAbstractDN($container->dn_orig)); } /** * Returns the the title text for the title bar on the new/edit page. * * @param accountContainer $container account container * @return String title text */ public function getTitleBarSubtitle($container) { return null; } /** * 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))"; } /** * Returns a list of LDAP suffixes for this type. * * @return array sorted list of possible suffixes for this type. */ public function getSuffixList() { $suffix = $_SESSION["config"]->get_Suffix(get_class($this)); $connection = $_SESSION["ldap"]->server(); $ret = array(); $filter = $this->getSuffixFilter(); $sr = @ldap_search($connection, escapeDN($suffix),$filter , array('dn', 'objectClass'), 0, 0, 0, LDAP_DEREF_NEVER); if ($sr) { $units = ldap_get_entries($connection, $sr); cleanLDAPResult($units); // extract Dns $count = sizeof($units); for ($i = 0; $i < $count; $i++) { if (in_array('container', $units[$i]['objectclass'])) { // Active Directory fix, hide system containers if (preg_match('/.*cn=system,dc=.+/i', $units[$i]['dn']) || preg_match('/.*CN=program data,dc=.+/i', $units[$i]['dn'])) { continue; } } $ret[] = $units[$i]['dn']; } } // add root suffix if needed $found = false; for ($i = 0; $i < sizeof($ret); $i++) { // search suffix case-intensitive if (strtolower($suffix) == strtolower($ret[$i])) { $found = true; break; } } if (!$found) { $ret[] = $suffix; } usort($ret, 'compareDN'); return $ret; } /** * 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. * * @param accountContainer $container account container */ public function runEditPagePostAction(&$container) { } /** * Returns a list of configuration options. * * 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 * * @see htmlElement */ public function get_configOptions() { return null; } /** * Checks input values of config settings. *
* If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). *
If no errors occured the function returns an empty array. * * @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(); } public function supportsMultipleConfigs() { return false; } } ?>