added support for profile in account_container.

With the new functions it should be possible to create
This commit is contained in:
katagia 2004-01-29 20:11:05 +00:00
parent aa3338f15b
commit 45c3b80d46
2 changed files with 47 additions and 12 deletions

View File

@ -772,20 +772,22 @@ class accountContainer {
*/
function check_attributes() {
$return = array();
// get named list of attributes
$attributes = array_keys($this->attributes);
for ($i=0; $i<count($attributes); $i++) {
$singleattribute = array_keys ($this->attributes[$attributes[$i]]);
for ($j=0; $j<count($singleattribute); $j++) {
// found attribute which must be set
if ($this->attributes[$attributes[$i]][$singleattribute[$j]]=='MUST') {
// Check if attribute is set
if ($this->module[$singleattribute[$j]]->attributes[$attributes[$i]]=='')
if (!in_array($singleattribute[$j], $return)) $return[] = $singleattribute[$j];
if (is_array($this->attributes)) {
// get named list of attributes
$attributes = array_keys($this->attributes);
for ($i=0; $i<count($attributes); $i++) {
$singleattribute = array_keys ($this->attributes[$attributes[$i]]);
for ($j=0; $j<count($singleattribute); $j++) {
// found attribute which must be set
if ($this->attributes[$attributes[$i]][$singleattribute[$j]]=='MUST') {
// Check if attribute is set
if ($this->module[$singleattribute[$j]]->attributes[$attributes[$i]]=='')
if (!in_array($singleattribute[$j], $return)) $return[] = $singleattribute[$j];
}
}
}
return $return;
}
return $return;
}
/* This function adds an objectClass class (module) to accountContainer
@ -854,6 +856,39 @@ class accountContainer {
return 0;
}
function display_profile($post) {
$return = array();
$post = array();
$module = array_keys ($this->module);
foreach ($module as $singlemodule) {
// get list of display functions.
$list = $this->module[$singlemodule]->pages();
foreach ($list as $item) {
$function = 'display_html_' . $item;
$page = $this->module[$singlemodule]->$function($post,true);
//eval($function);
$return = array_merge($return, $page);
}
}
return $return;
}
function process_profile($post) {
$return = array();
$module = array_keys ($this->module);
foreach ($module as $singlemodule) {
// get list of display functions.
$list = $this->module[$singlemodule]->pages();
foreach ($list as $item) {
$function = 'display_html_' . $item;
$page = $this->module[$singlemodule]->$function($post,true);
//eval($function);
$return = array_merge($return, $page);
}
}
return $return;
}
/* This function will prepare the object
* for a new account
*/

View File

@ -151,7 +151,7 @@ class posixAccount {
* error checkings
*/
function pages() {
return array('attributes', 'groups');
return array('attributes', 'group');
}
/*