Ignore:
Timestamp:
07/30/08 16:04:17 (4 years ago)
Author:
hverton
Message:

added preliminary support for multiple authentication methods. Currently, local database and OpenID are supported

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/administration/settings_security.php

    r1342 r1558  
    4040    } 
    4141    if ($variables['errormessage'] == "") { 
    42         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['enable_registration']) ? $_POST['enable_registration'] : "1")."' WHERE cfg_name = 'enable_registration'"); 
    43         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['email_verification']) ? $_POST['email_verification'] : "1")."' WHERE cfg_name = 'email_verification'"); 
    44         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['admin_activation']) ? $_POST['admin_activation'] : "0")."' WHERE cfg_name = 'admin_activation'"); 
    45         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['display_validation']) ? $_POST['display_validation'] : "1")."' WHERE cfg_name = 'display_validation'"); 
    46         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".stripinput($_POST['validation_method'])."' WHERE cfg_name = 'validation_method'"); 
    47         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$session_timeout' WHERE cfg_name = 'session_gc_maxlifetime'"); 
    48         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$login_expire' WHERE cfg_name = 'login_expire'"); 
    49         $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$login_extended_expire' WHERE cfg_name = 'login_extended_expire'"); 
     42        // authentication method check 
     43        $auth_method = $_POST['auth_method']{0}; 
     44        $auth_local = $_POST['auth_method']{1} == "+" ? "1" : "0"; 
     45        switch ($auth_method) { 
     46            case "1":   // LDAP 
     47                if ($auth_local) { 
     48                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'ldap,local' WHERE cfg_name = 'auth_type'"); 
     49                } else { 
     50                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'ldap' WHERE cfg_name = 'auth_type'"); 
     51                } 
     52                break; 
     53            case "2":   // AD 
     54                if ($auth_local) { 
     55                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'ad,local' WHERE cfg_name = 'auth_type'"); 
     56                } else { 
     57                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'ad' WHERE cfg_name = 'auth_type'"); 
     58                } 
     59                break; 
     60            case "3":   // OpenID 
     61                if ($auth_local) { 
     62                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'openid,local' WHERE cfg_name = 'auth_type'"); 
     63                } else { 
     64                    $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = 'openid' WHERE cfg_name = 'auth_type'"); 
     65                } 
     66                break; 
     67            default: 
     68                $variables['errormessage'] = "Invalid authentication method. This may never happen!"; 
     69        } 
     70        if ($variables['errormessage'] == "") { 
     71            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['enable_registration']) ? $_POST['enable_registration'] : "1")."' WHERE cfg_name = 'enable_registration'"); 
     72            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['email_verification']) ? $_POST['email_verification'] : "1")."' WHERE cfg_name = 'email_verification'"); 
     73            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['admin_activation']) ? $_POST['admin_activation'] : "0")."' WHERE cfg_name = 'admin_activation'"); 
     74            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".(isNum($_POST['display_validation']) ? $_POST['display_validation'] : "1")."' WHERE cfg_name = 'display_validation'"); 
     75            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '".stripinput($_POST['validation_method'])."' WHERE cfg_name = 'validation_method'"); 
     76            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$session_timeout' WHERE cfg_name = 'session_gc_maxlifetime'"); 
     77            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$login_expire' WHERE cfg_name = 'login_expire'"); 
     78            $result = dbquery("UPDATE ".$db_prefix."configuration SET cfg_value = '$login_extended_expire' WHERE cfg_name = 'login_extended_expire'"); 
     79        } 
    5080    } 
    5181} 
     
    75105} 
    76106 
     107// determine the auth_method defined 
     108$auth_methods = explode(",",$settings2['auth_type'].","); 
     109switch($auth_methods[0]) { 
     110    case "ldap": 
     111        $auth_method = 1; 
     112        break; 
     113    case "ad": 
     114        $auth_method = 2; 
     115        break; 
     116    case "openid": 
     117        $auth_method = 3; 
     118    case "local": 
     119        break; 
     120    default: 
     121        $auth_method = 0; 
     122} 
     123$variables['auth_method'] = $auth_method; 
     124 
     125// check if a local fallback is defined 
     126if ($auth_method && $auth_methods[1] == "local") { 
     127    $variables['auth_method'] .= "+"; 
     128} 
     129 
    77130// define the admin body panel 
    78131$template_panels[] = array('type' => 'body', 'name' => 'admin.settings_security', 'template' => 'admin.settings_security.tpl', 'locale' => "admin.settings"); 
Note: See TracChangeset for help on using the changeset viewer.