62 $this->server_settings = $a_server;
77 $this->user_data = $a_data;
93 include_once
'./Services/User/classes/class.ilUserImportParser.php';
94 include_once
'./Services/LDAP/classes/class.ilLDAPRoleAssignmentRules.php';
97 $importParser->setXMLContent($this->writer->xmlDumpMem(
false));
99 $importParser->setFolderId(7);
100 $importParser->startParsing();
101 $debug = $importParser->getProtocol();
102 #var_dump("<pre>",$this->writer->xmlDumpMem(),"</pre>");
115 include_once(
'./Services/Xml/classes/class.ilXmlWriter.php');
117 $this->writer->xmlStartTag(
'Users');
123 foreach($this->user_data as $external_account =>
$user)
125 $user[
'ilExternalAccount'] = $external_account;
128 if(
$user[
'ilInternalAccount'])
134 $this->writer->xmlStartTag(
'User',array(
'Id' =>
$usr_id,
'Action' =>
'Update'));
135 $this->writer->xmlElement(
'Login',array(),
$user[
'ilInternalAccount']);
136 $this->writer->xmlElement(
'ExternalAccount',array(),$external_account);
137 $this->writer->xmlElement(
'AuthMode',array(type =>
'ldap'),null);
139 $rules = $this->mapping->getRulesForUpdate();
141 include_once
'./Services/LDAP/classes/class.ilLDAPRoleAssignmentRules.php';
144 $this->writer->xmlElement(
'Role',
145 array(
'Id' => $role_data[
'id'],
146 'Type' => $role_data[
'type'],
147 'Action' => $role_data[
'action']),
'');
154 $this->writer->xmlStartTag(
'User',array(
'Action' =>
'Insert'));
157 include_once
'./Services/LDAP/classes/class.ilLDAPRoleAssignmentRules.php';
160 $this->writer->xmlElement(
'Role',
161 array(
'Id' => $role_data[
'id'],
162 'Type' => $role_data[
'type'],
163 'Action' => $role_data[
'action']),
'');
166 $rules = $this->mapping->getRules();
170 $this->writer->xmlElement(
'Active',array(),
"true");
171 $this->writer->xmlElement(
'TimeLimitOwner',array(),7);
172 $this->writer->xmlElement(
'TimeLimitUnlimited',array(),1);
173 $this->writer->xmlElement(
'TimeLimitFrom',array(),time());
174 $this->writer->xmlElement(
'TimeLimitUntil',array(),time());
178 if(!
$user[
'ilInternalAccount'])
180 $this->writer->xmlElement(
'AuthMode',array(
'type' =>
'ldap'),
'ldap');
181 $this->writer->xmlElement(
'ExternalAccount',array(),$external_account);
183 foreach($rules as $field =>
$data)
194 switch(strtolower($value))
198 $this->writer->xmlElement(
'Gender',array(),
'm');
204 $this->writer->xmlElement(
'Gender',array(),
'f');
211 $this->writer->xmlElement(
'Firstname',array(),$value);
215 $this->writer->xmlElement(
'Lastname',array(),$value);
219 $this->writer->xmlElement(
'Hobby',array(),$value);
223 $this->writer->xmlElement(
'Title',array(),$value);
227 $this->writer->xmlElement(
'Institution',array(),$value);
231 $this->writer->xmlElement(
'Department',array(),$value);
235 $this->writer->xmlElement(
'Street',array(),$value);
239 $this->writer->xmlElement(
'City',array(),$value);
243 $this->writer->xmlElement(
'PostalCode',array(),$value);
247 $this->writer->xmlElement(
'Country',array(),$value);
251 $this->writer->xmlElement(
'PhoneOffice',array(),$value);
255 $this->writer->xmlElement(
'PhoneHome',array(),$value);
259 $this->writer->xmlElement(
'PhoneMobile',array(),$value);
263 $this->writer->xmlElement(
'Fax',array(),$value);
267 $this->writer->xmlElement(
'Email',array(),$value);
270 case 'matriculation':
271 $this->writer->xmlElement(
'Matriculation',array(),$value);
282 if(substr($field,0,4) !=
'udf_')
286 $id_data = explode(
'_',$field);
287 if(!isset($id_data[1]))
292 $definition = $this->udf->getDefinition($id_data[1]);
293 $this->writer->xmlElement(
'UserDefinedField',array(
'Id' => $definition[
'il_id'],
294 'Name' => $definition[
'field_name']),
301 $this->writer->xmlEndTag(
'User');
306 $this->log->write(
'LDAP: Started creation of '.$cnt_create.
' users.');
310 $this->log->write(
'LDAP: Started update of '.$cnt_update.
' users.');
312 $this->writer->xmlEndTag(
'Users');
325 if(is_array($a_value))
343 $mapping = trim(strtolower($rule[
'value']));
353 foreach($fields as $field)
361 return $value ? $value :
'';
368 include_once(
'Services/LDAP/classes/class.ilLDAPAttributeMapping.php');
374 include_once(
'Services/User/classes/class.ilUserDefinedFields.php');