2006-01-01 16:30:05 +00:00
|
|
|
<?php
|
|
|
|
/*
|
|
|
|
$Id$
|
|
|
|
|
2009-10-27 18:47:12 +00:00
|
|
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
2011-04-25 17:46:57 +00:00
|
|
|
Copyright (C) 2005 - 2011 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 {
|
|
|
|
|
2009-02-18 19:15:56 +00:00
|
|
|
public $LABEL_CREATE_ANOTHER_ACCOUNT;
|
|
|
|
public $LABEL_BACK_TO_ACCOUNT_LIST;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates a new type object.
|
|
|
|
*/
|
|
|
|
public function __construct() {
|
|
|
|
$this->LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another account');
|
|
|
|
$this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to account list');
|
|
|
|
}
|
|
|
|
|
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";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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() {
|
2006-01-01 16:30:05 +00:00
|
|
|
return array();
|
|
|
|
}
|
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;
|
|
|
|
}
|
2010-12-11 15:58:25 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the the title text for the title bar on the new/edit page.
|
|
|
|
*
|
|
|
|
* @param array $attributes list of LDAP attributes for the displayed account (null, if new account)
|
|
|
|
* @return String title text
|
|
|
|
*/
|
|
|
|
public function getTitleBarTitle($attributes) {
|
|
|
|
if ($attributes == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if (isset($attributes['entryDN'][0])) {
|
|
|
|
return $attributes['entryDN'][0];
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the the title text for the title bar on the new/edit page.
|
|
|
|
*
|
|
|
|
* @param array $attributes list of LDAP attributes for the displayed account (null, if new account)
|
|
|
|
* @return String title text
|
|
|
|
*/
|
|
|
|
public function getTitleBarSubtitle($attributes) {
|
|
|
|
return null;
|
|
|
|
}
|
2011-04-25 17:46:57 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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));
|
|
|
|
$ret = array();
|
|
|
|
$sr = @ldap_search($_SESSION["ldap"]->server(), escapeDN($suffix), "objectClass=organizationalunit", array("DN"), 0, 0, 0, LDAP_DEREF_NEVER);
|
|
|
|
if ($sr) {
|
|
|
|
$units = ldap_get_entries($_SESSION["ldap"]->server(), $sr);
|
2011-05-21 10:58:22 +00:00
|
|
|
cleanLDAPResult($units);
|
2011-04-25 17:46:57 +00:00
|
|
|
// extract Dns
|
|
|
|
for ($i = 0; $i < sizeof($units); $i++) {
|
|
|
|
if ($units[$i]['dn']) $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;
|
|
|
|
}
|
2006-01-01 16:30:05 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|