/[drupal]/contributions/modules/ldap_integration/ldapauth.module
ViewVC logotype

Diff of /contributions/modules/ldap_integration/ldapauth.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1.4.14.2.5, Thu Apr 17 04:32:12 2008 UTC revision 1.1.4.14.2.6, Tue Oct 27 14:31:06 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: ldapauth.module,v 1.28 2007/08/22 23:55:21 kreaper Exp $  // $Id: ldapauth.module,v 1.1.4.14.2.5 2008/04/17 04:32:12 scafmac Exp $
3    
4  include_once('ldap_integration/ldapauth.conf.php');  include_once('ldap_integration/ldapauth.conf.php');
5  include_once('ldap_integration/libdebug.php');  include_once('ldap_integration/libdebug.php');
# Line 177  function ldapauth_admin_list() { Line 177  function ldapauth_admin_list() {
177      }      }
178      $rows[] = array(      $rows[] = array(
179        $row->name,        $row->name,
180        l(t('edit'), 'admin/settings/ldapauth/edit/'.$row->name),        l(t('edit'), 'admin/settings/ldapauth/edit/'.$row->sid),
181        l(t('!link_text', array('!link_text' => $link_text)), 'admin/settings/ldapauth/'.$link_comp.'/'.$row->name),        l(t('!link_text', array('!link_text' => $link_text)), 'admin/settings/ldapauth/'.$link_comp.'/'.$row->sid),
182        l(t('delete'), 'admin/settings/ldapauth/delete/'.$row->name)        l(t('delete'), 'admin/settings/ldapauth/delete/'.$row->sid)
183        );        );
184    }    }
185    $header = array(    $header = array(
# Line 192  function ldapauth_admin_list() { Line 192  function ldapauth_admin_list() {
192    return theme('table', $header, $rows);    return theme('table', $header, $rows);
193  }  }
194    
195  function ldapauth_admin_deactivate($ldap_name) {  function ldapauth_admin_deactivate() {
196    $ldap_name = arg(4);    if (!($sid = arg(4))) {
197    // de-activate the config      drupal_goto('admin/settings/ldapauth');
198    db_query("UPDATE {ldapauth} SET status = '%s'WHERE name = '%s'", "", $ldap_name);    }
199    drupal_set_message(t('LDAP Configuration %config has been de-activated.', array('%config' => $ldap_name)));    if ($row = db_fetch_object(db_query("SELECT name FROM {ldapauth} WHERE sid = %d", $sid))) {
200    watchdog('ldap', t('ldapauth: ldap config %config de-activated.', array('%config' => $ldap_name)));      $form['sid'] = array('#type' => 'hidden', '#value' => $sid);
201    drupal_goto('admin/settings/ldapauth');      return confirm_form(
202        $form,
203        t('Are you sure you want to de-activate the ldap configration named <em><strong>%server</strong></em>?', array('%server'=>$row->name)),
204        'admin/settings/ldapauth',
205        '',
206        t('De-activate'),
207        t('Cancel')
208        );
209      }
210      else {
211        drupal_set_message(t('No such LDAP configuration.'));
212        drupal_goto('admin/settings/ldapauth');
213      }
214  }  }
215    
216    function ldapauth_admin_deactivate_submit($form_id, $form_values) {
217      if ($sid = $form_values['sid']) {
218        // de-activate the config
219        db_query("UPDATE {ldapauth} SET status = %d WHERE sid = %d", 0, $sid);
220        drupal_set_message(t('LDAP Configuration has been de-activated.'));
221        watchdog('ldap', t('ldapauth: ldap config %config de-activated.', array('%config' => $sid)));
222      }
223      drupal_goto('admin/settings/ldapauth');
224    }
225    
226  function ldapauth_admin_activate() {  function ldapauth_admin_activate() {
227    $ldap_name = arg(4);    if (!($sid = arg(4))) {
228    // activate the config      drupal_goto('admin/settings/ldapauth');
229    db_query("UPDATE {ldapauth} SET status = '%d'WHERE name = '%s'", "1", $ldap_name);    }
230    drupal_set_message(t('LDAP Configuration %config has been activated.', array('%config' => $ldap_name)));    if ($row = db_fetch_object(db_query("SELECT name FROM {ldapauth} WHERE sid = %d", $sid))) {
231    watchdog('ldap', t('ldapauth: ldap config %config activated.', array('%config' => $ldap_name)));      $form['sid'] = array('#type' => 'hidden', '#value' => $sid);
232        return confirm_form(
233        $form,
234        t('Are you sure you want to activate the ldap configration named <em><strong>%server</strong></em>?', array('%server'=>$row->name)),
235        'admin/settings/ldapauth',
236        '',
237        t('Activate'),
238        t('Cancel')
239        );
240      }
241      else {
242        drupal_set_message(t('No such LDAP configuration.'));
243        drupal_goto('admin/settings/ldapauth');
244      }
245    }
246    
247    function ldapauth_admin_activate_submit($form_id, $form_values) {
248      if ($sid = $form_values['sid']) {
249        // activate the config
250        db_query("UPDATE {ldapauth} SET status = %d WHERE sid = %d", 1, $sid);
251        drupal_set_message(t('LDAP Configuration %config has been activated.'));
252        watchdog('ldap', t('ldapauth: ldap config %config activated.', array('%config' => $sid)));
253      }
254    drupal_goto('admin/settings/ldapauth');    drupal_goto('admin/settings/ldapauth');
255  }  }
256    
# Line 361  function ldapauth_admin_options_submit($ Line 404  function ldapauth_admin_options_submit($
404    
405  function ldapauth_admin_form() {  function ldapauth_admin_form() {
406    
407    $ldap_name = arg(4);    $sid = arg(4);
408    if ((arg(3) == "edit") && ($ldap_name != NULL)) {    if ((arg(3) == "edit") && is_numeric($sid)) {
409      $edit = db_fetch_array(db_query("SELECT * FROM {ldapauth} WHERE name = '%s'", $ldap_name));      $edit = db_fetch_array(db_query("SELECT * FROM {ldapauth} WHERE sid = %d", $sid));
410      $form['old-name'] = array(      $form['sid'] = array(
411        '#type' => 'hidden',        '#type' => 'hidden',
412        '#value' => $ldap_name,        '#value' => $sid,
413        );        );
414    }    }
415    
# Line 521  function ldapauth_admin_form_submit($for Line 564  function ldapauth_admin_form_submit($for
564    }    }
565    else {    else {
566      if ( !$form_values['bindpw_clear'] && $form_values['bindpw']) {      if ( !$form_values['bindpw_clear'] && $form_values['bindpw']) {
567        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', bindpw_clear = '%d' WHERE name = '%s'", $form_values['name'], $form_values['server'], $form_values['port'], $form_values['tls'], $form_values['encrypted'], $form_values['basedn'], trim($form_values['user_attr']), trim($form_values['mail_attr']), $form_values['binddn'], $form_values['bindpw'], $form_values['bindpw_clear'], $form_values['old-name']);        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', bindpw_clear = '%d' WHERE sid = %d", $form_values['name'], $form_values['server'], $form_values['port'], $form_values['tls'], $form_values['encrypted'], $form_values['basedn'], trim($form_values['user_attr']), trim($form_values['mail_attr']), $form_values['binddn'], $form_values['bindpw'], $form_values['bindpw_clear'], $form_values['sid']);
568      }      }
569      else {      else {
570        // set the clear password switch        // set the clear password switch
571        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_clear = '%d' WHERE name = '%s'", $form_values['name'], $form_values['server'], $form_values['port'], $form_values['tls'], $form_values['encrypted'], $form_values['basedn'], trim($form_values['user_attr']), trim($form_values['mail_attr']), $form_values['binddn'], $form_values['bindpw_clear'], $form_values['old-name']);        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_clear = '%d' WHERE sid = %d", $form_values['name'], $form_values['server'], $form_values['port'], $form_values['tls'], $form_values['encrypted'], $form_values['basedn'], trim($form_values['user_attr']), trim($form_values['mail_attr']), $form_values['binddn'], $form_values['bindpw_clear'], $form_values['sid']);
572      }      }
573      drupal_set_message(t('LDAP Configuration %config has been updated.', array('%config' => $form_values['name'])));      drupal_set_message(t('LDAP Configuration %config has been updated.', array('%config' => $form_values['name'])));
574      watchdog('ldap', t('ldapauth: ldap config %config updated.', array('%config' => $form_values['name'])));      watchdog('ldap', t('ldapauth: ldap config %config updated.', array('%config' => $form_values['name'])));
# Line 535  function ldapauth_admin_form_submit($for Line 578  function ldapauth_admin_form_submit($for
578  }  }
579    
580  function ldapauth_admin_delete() {  function ldapauth_admin_delete() {
581      if (!($sid = arg(4))) {
   $ldap_name = arg(4);  
   
   if (!$ldap_name) {  
582      drupal_goto('admin/settings/ldapauth');      drupal_goto('admin/settings/ldapauth');
583    }    }
584    if ($result = db_fetch_object(db_query("SELECT name FROM {ldapauth} WHERE name = '%s'", $ldap_name))) {    if ($result = db_fetch_object(db_query("SELECT name FROM {ldapauth} WHERE sid = %d", $sid))) {
585        $form['sid'] = array('#type' => 'hidden', '#value' => $sid);
586      return confirm_form(      return confirm_form(
587      array(),      $form,
588      t('Are you sure you want to delete the ldap configration named <em><strong>%server</strong></em>?', array('%server'=>$ldap_name)),      t('Are you sure you want to delete the ldap configration named <em><strong>%server</strong></em>?', array('%server'=>$result->name)),
589      'admin/settings/ldapauth',      'admin/settings/ldapauth',
590      t('<p>This action cannot be undone.</p>'),      t('<p>This action cannot be undone.</p>'),
591      t('Delete'),      t('Delete'),
# Line 552  function ldapauth_admin_delete() { Line 593  function ldapauth_admin_delete() {
593      );      );
594    }    }
595    else {    else {
596      drupal_set_message(t('No such LDAP config: %config', array('%config' => $ldap_name)));      drupal_set_message(t('No such LDAP configuration.'));
597      drupal_goto('admin/settings/ldapauth');      drupal_goto('admin/settings/ldapauth');
598    }    }
599  }  }
600    
601  function ldapauth_admin_delete_submit($form_id, $form_values) {  function ldapauth_admin_delete_submit($form_id, $form_values) {
602    if ($form_values['confirm']) {    if ($sid = $form_values['sid']) {
603      db_query("DELETE FROM {ldapauth} WHERE name = '%s'", arg(4));      db_query("DELETE FROM {ldapauth} WHERE sid = %d", $sid);
604    drupal_set_message(t('LDAP Configuration %config has been deleted.', array('%config' => $form_values['name'])));    drupal_set_message(t('LDAP Configuration has been deleted.'));
605    watchdog('ldap', t('ldapauth: ldap config %config deleted.', array('%config' => $form_values['name'])));    watchdog('ldap', t('ldapauth: ldap config %config deleted.', array('%config' => $form_values['sid'])));
606    }    }
607    return 'admin/settings/ldapauth';    return 'admin/settings/ldapauth';
608  }  }
# Line 859  function ldapauth_login_validate($form_i Line 900  function ldapauth_login_validate($form_i
900    
901  function _ldapauth_user_authenticate($name, $pass) {  function _ldapauth_user_authenticate($name, $pass) {
902    global $user, $ldapauth_ldap;    global $user, $ldapauth_ldap;
903    
904      if ($account = user_load(array('name' => $name, 'pass' => $pass, 'status' => 1))) {
905        if (drupal_is_denied('mail', $account->mail)) {
906           form_set_error('name', t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $account->name)));
907           return;
908        }
909      }
910    
911    // (Design decision) uid=1 (admin user) must always authenticate to local database    // (Design decision) uid=1 (admin user) must always authenticate to local database
912    // this user is critical for all drupal admin and upgrade operations so it is best    // this user is critical for all drupal admin and upgrade operations so it is best
913    // left with drupal's native authentication    // left with drupal's native authentication

Legend:
Removed from v.1.1.4.14.2.5  
changed lines
  Added in v.1.1.4.14.2.6

  ViewVC Help
Powered by ViewVC 1.1.2