Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 include_once 'Auth/Auth.php';
00035 include_once './classes/class.ilBaseAuthentication.php';
00036
00037 class ilRADIUSAuthentication extends ilBaseAuthentication
00038 {
00039 function ilRADIUSAuthentication()
00040 {
00041 parent::ilBaseAuthentication();
00042 $this->__setMessageCode('Client');
00043 }
00044
00045 function _validateServers($a_servers)
00046 {
00047 global $ilias;
00048
00049 $servers = explode(",",$a_servers);
00050
00051 foreach ($servers as $server)
00052 {
00053 $server = trim($server);
00054
00055 if (!ilUtil::isIPv4($server) and !ilUtil::isDN($server))
00056 {
00057 return false;
00058 }
00059 }
00060
00061 return true;
00062 }
00063
00064 function _getServers(&$a_db_handler = '')
00065 {
00066 global $ilDB;
00067
00068 $db =& $ilDB;
00069
00070 if ($a_db_handler != '')
00071 {
00072 $db =& $a_db_handler;
00073 }
00074
00075 $q = "SELECT value FROM settings WHERE keyword LIKE 'radius_server%' ORDER BY keyword ASC";
00076 $r = $db->query($q);
00077
00078 $servers = array();
00079
00080 while ($row = $r->fetchRow())
00081 {
00082 $servers[] = $row[0];
00083 }
00084
00085 return $servers;
00086 }
00087
00088 function _saveServers($a_servers)
00089 {
00090 global $ilias;
00091
00092 $old_servers = ilRADIUSAuthentication::_getServers();
00093 $count = count($old_servers);
00094
00095 $servers = explode(",",$a_servers);
00096
00097 $new_count = count($servers);
00098
00099 $i = 1;
00100
00101 foreach ($servers as $server)
00102 {
00103 if ($i == 1)
00104 {
00105 $ilias->setSetting('radius_server',$server);
00106 }
00107 else
00108 {
00109 $ilias->setSetting('radius_server'.$i,$server);
00110 }
00111
00112 $i++;
00113 }
00114
00115
00116 for ($n = $new_count + 1; $n <= $count; $n++)
00117 {
00118 $ilias->deleteSetting('radius_server'.$n);
00119 }
00120 }
00121 }
00122 ?>