54                 $this->server_id = $a_server_id;
 
   67                 if(array_key_exists($a_server_id,self::$instances) and is_object(self::$instances[$a_server_id]))
 
   69                         return self::$instances[$a_server_id];
 
   82         public static function _delete($a_server_id)
 
   86                 $query = 
"DELETE FROM ldap_attribute_mapping ".
 
   87                         "WHERE server_id =".$ilDB->quote($a_server_id,
'integer');
 
  102                 $query = 
"SELECT value FROM ldap_attribute_mapping ".
 
  103                         "WHERE server_id =".$ilDB->quote($a_server_id,
'integer').
" ".
 
  104                         "AND keyword = ".$ilDB->quote(
'global_role',
'text');
 
  109                         return (
int) 
$row->value;               
 
  124                 $query = 
'SELECT perform_update FROM ldap_attribute_mapping '.
 
  125                         'WHERE server_id = '.$ilDB->quote($a_server_id,
'integer').
' '.
 
  126                         'AND perform_update = 1';
 
  128                 return $res->numRows() ? 
true : 
false;
 
  140         public function setRule($a_field_name,$a_ldap_attribute,$a_perform_update)
 
  142                 $this->mapping_rules[$a_field_name][
'value'] = $a_ldap_attribute;
 
  143                 $this->mapping_rules[$a_field_name][
'performUpdate'] = $a_perform_update;
 
  155                 return $this->rules_for_update ? $this->rules_for_update : array();
 
  167                 foreach($this->rules_for_update as $field => $rule)
 
  169                         if(!strlen($rule[
'value']))
 
  173                         if(strpos($rule[
'value'],
',') === 
false)
 
  175                                 $fields[] = strtolower($rule[
'value']);
 
  178                         $tmp_fields = explode(
',',$rule[
'value']);
 
  180                         foreach($tmp_fields as $tmp_field)
 
  182                                 $fields[] = trim(strtolower($tmp_field));
 
  185                 return $fields ? $fields : array();
 
  197                 foreach($this->mapping_rules as $field => $rule)
 
  199                         if(!strlen($rule[
'value']))
 
  203                         if(strpos($rule[
'value'],
',') === 
false)
 
  205                                 $fields[] = strtolower($rule[
'value']);
 
  208                         $tmp_fields = explode(
',',$rule[
'value']);
 
  210                         foreach($tmp_fields as $tmp_field)
 
  212                                 $fields[] = trim(strtolower($tmp_field));
 
  215                 return $fields ? $fields : array();
 
  238                 $this->mapping_rules = array();
 
  253                 foreach($this->mapping_rules as $keyword => $options)
 
  255                         $query = 
"INSERT INTO ldap_attribute_mapping (server_id,keyword,value,perform_update) ".
 
  257                                 $this->db->quote($this->server_id,
'integer').
", ".
 
  258                                 $this->db->quote($keyword,
'text').
", ".
 
  259                                 $this->db->quote($options[
'value'],
'text').
", ".
 
  260                                 $this->db->quote($options[
'performUpdate'],
'integer').
 
  272         public function delete()
 
  287                 if(array_key_exists($a_field_name,$this->mapping_rules))
 
  289                         return (
bool) $this->mapping_rules[$a_field_name][
'performUpdate'];
 
  303                 if(array_key_exists($a_field_name,$this->mapping_rules))
 
  305                         return $this->mapping_rules[$a_field_name][
'value'];
 
  321                 $query = 
"SELECT * FROM ldap_attribute_mapping ".
 
  322                         "WHERE server_id =".$this->db->quote($this->server_id,
'integer').
" ";
 
  327                         $this->mapping_rules[
$row->keyword][
'value'] = 
$row->value;
 
  328                         $this->mapping_rules[
$row->keyword][
'performUpdate'] = (bool) 
$row->perform_update;
 
  330                         if(
$row->perform_update)
 
  332                                 $this->rules_for_update[
$row->keyword][
'value'] = 
$row->value;