'', 'server' => '', 'port' => '389', 'tls' => 0, 'encrypted' => 0, 'basedn' => '', 'user_attr' => LDAPAUTH_DEFAULT_USER_ATTR, 'mail_attr' => LDAPAUTH_DEFAULT_MAIL_ATTR, 'binddn' => '', 'bindpw' => FALSE, 'login_php' => '', 'filter_php' => '', ); } return $ret; } /** * Insert a new server record * @param values: server array */ function ldapauth_insert_server($values) { db_query(" INSERT INTO {ldapauth} ( name , status , server , port , tls , encrypted , basedn , user_attr , mail_attr , binddn , bindpw , login_php , filter_php) VALUES ( '%s' , %d , '%s' , %d , %d , %d , '%s' , '%s' , '%s' , '%s' , '%s' , '%s' , '%s')" , $values['name'] , 1 , $values['server'] , $values['port'] , $values['tls'] , $values['encrypted'] , $values['basedn'] , trim($values['user_attr']) , trim($values['mail_attr']) , $values['binddn'] , $values['bindpw'] , trim($values['login_php']) , trim($values['filter_php'] ) ); drupal_set_message(t('LDAP configuration %name has been added.', array('%name' => $values['name']))); watchdog('ldapauth', 'LDAP configuration %name has been added.', array('%name' => $values['name'])); } /** * Change a server's weight * @param sid: server ID * @param weight: new weight */ function ldapauth_update_server_weight($sid, $weight) { db_query("UPDATE {ldapauth} SET weight = %d WHERE sid = %d", $weight, $sid); } /** * Update a server * @param values: server array */ function ldapauth_update_server($values) { if (isset($values['bindpw_clear'])) { db_query(" UPDATE {ldapauth} SET name = '%s' , server = '%s' , port = %d , tls = %d , encrypted = %d , basedn = '%s' , user_attr = '%s' , mail_attr = '%s' , login_php = '%s' , filter_php = '%s' WHERE sid = %d" , $values['name'] , $values['server'] , $values['port'] , $values['tls'] , $values['encrypted'] , $values['basedn'] , trim($values['user_attr']) , trim($values['mail_attr']) , trim($values['login_php']) , trim($values['filter_php']) , $values['sid'] ); if ($values['bindpw_clear']) { db_query("UPDATE {ldapauth} SET bindpw = '' WHERE sid = %d", $values['sid']); } } else { db_query(" UPDATE {ldapauth} SET name = '%s' , server = '%s' , port = %d , tls = %d , encrypted = %d , basedn = '%s' , user_attr = '%s' , mail_attr = '%s' , binddn = '%s' , bindpw = '%s' , login_php = '%s' , filter_php = '%s' WHERE sid = %d" , $values['name'] , $values['server'] , $values['port'] , $values['tls'] , $values['encrypted'] , $values['basedn'] , trim($values['user_attr']) , trim($values['mail_attr']) , $values['binddn'] , $values['bindpw'] , trim($values['login_php']) , trim($values['filter_php']) , $values['sid'] ); } drupal_set_message(t('LDAP Configuration %name has been updated.', array('%name' => $values['name']))); watchdog('ldapauth', 'LDAP Configuration %name has been updated.', array('%name' => $values['name'])); } /** * Change a server's status * @param sid: server ID * @param status: 0 for inactive, 1 for active */ function ldapauth_update_server_status($sid, $status = '0') { $name = ldapauth_get_server_name($sid); db_query("UPDATE {ldapauth} SET status = '%s' WHERE sid = %d", $status, $sid); if ($status) $msg = 'activated'; else $msg = 'de-activated'; drupal_set_message(t('LDAP Configuration %name has been %status.', array('%name' => $name, '%status' => $msg))); watchdog('ldapauth', 'LDAP server %name was %status.', array('%name' => $name, '%status' => $msg)); } /** * Delete a server * @param sid: server ID */ function ldapauth_delete_server($sid) { $name = ldapauth_get_server_name($sid); db_query("DELETE FROM {ldapauth} WHERE sid = %d", $sid); drupal_set_message(t('LDAP Configuration %name has been deleted.', array('%name' => $name))); watchdog('ldapauth', 'LDAP Configuration %name has been deleted.', array('%name' => $name)); } /** * Reset the ldapdata settings for a server * @param sid: server ID */ function ldapdata_reset($sid) { db_query(" UPDATE {ldapauth} SET ldapdata_mappings = '' , ldapdata_roattrs = '' , ldapdata_rwattrs = '' , ldapdata_binddn = '' , ldapdata_bindpw = '' , ldapdata_attrs = '' , ldapdata_filter_php = '' WHERE sid = %d", $sid ); } /** * Update the ldapdata settins for a server * @param sid: server ID * @param values: array of settings * @param bindpw_clear: Whether to clear the password or not * @param binddn: Bind DN * @param bindpw: Bind Password */ function ldapdata_update($sid, $values, $bindpw_clear=Null, $binddn=Null, $bindpw=Null) { if (!is_null($bindpw_clear)) { db_query(" UPDATE {ldapauth} SET ldapdata_mappings = '%s' , ldapdata_roattrs = '%s' , ldapdata_rwattrs = '%s' , ldapdata_attrs = '%s' , ldapdata_filter_php = '%s' WHERE sid = %d" , $values['ldapdata_mappings'] , $values['ldapdata_roattrs'] , $values['ldapdata_rwattrs'] , $values['ldapdata_attrs'] , $values['ldapdata_filter_php'] , $sid ); if ($bindpw_clear) { db_query("UPDATE {ldapauth} SET ldapdata_bindpw = '' WHERE sid = %d", $sid); } } else { db_query(" UPDATE {ldapauth} SET ldapdata_mappings = '%s' , ldapdata_roattrs = '%s' , ldapdata_rwattrs = '%s' , ldapdata_binddn = '%s' , ldapdata_bindpw = '%s' , ldapdata_attrs = '%s' , ldapdata_filter_php = '%s' WHERE sid = %d" , $values['ldapdata_mappings'] , $values['ldapdata_roattrs'] , $values['ldapdata_rwattrs'] , $binddn , $bindpw , $values['ldapdata_attrs'] , $values['ldapdata_filter_php'] , $sid); } } /** * Update the ldapgroup settins for a server * @param values: array of settings * @param form_state: the, uh, other array of settings */ function ldapgroups_update_server($values, $form_state) { db_query(" UPDATE {ldapauth} SET ldapgroups_in_dn = %d , ldapgroups_dn_attribute = '%s' , ldapgroups_in_attr = %d , ldapgroups_attr = '%s' , ldapgroups_as_entries = %d , ldapgroups_entries = '%s' , ldapgroups_entries_attribute = '%s' , ldapgroups_mappings = '%s' , ldapgroups_mappings_filter = %d , ldapgroups_filter_php = '%s' , ldapgroups_groups = '%s' WHERE sid = %d" , $values['ldapgroups_in_dn'] , trim($values['ldapgroups_dn_attribute']) , $values['ldapgroups_in_attr'] , $form_state['ldapgroups_attr'] , $values['ldapgroups_as_entries'] , $form_state['ldapgroups_entries'] , trim($values['ldapgroups_entries_attribute']) , $form_state['ldapgroups_mappings'] , $values['ldapgroups_mappings_filter'] , trim($values['ldapgroups_filter_php']) , $form_state['ldapgroups_groups'] , $values['sid'] ); } /** * Reset the ldapgroups settings for a server * @param sid: server ID */ function ldapgroups_reset($sid) { db_query(" UPDATE {ldapauth} SET ldapgroups_in_dn = 0 , ldapgroups_dn_attribute = '' , ldapgroups_in_attr = 0 , ldapgroups_attr = '' , ldapgroups_as_entries = 0 , ldapgroups_entries = '' , ldapgroups_entries_attribute = '' , ldapgroups_mappings = '' , ldapgroups_mappings_filter = '0' , ldapgroups_filter_php = '' , ldapgroups_groups = '' WHERE sid = %d", $sid ); }