|
@@ -511,23 +511,44 @@ class AccessServiceManager
|
|
|
function addRadiusClient(RadiusClient $radcliente)
|
|
|
{
|
|
|
$dbh = $this->getSqlCon();
|
|
|
- $stm = $dbh->prepare("DELETE FROM nas WHERE nasname = ?;");
|
|
|
- $rtr = $stm->execute(array($radcliente->nasname));
|
|
|
-
|
|
|
- $sql2 = "INSERT INTO `nas` (`nasname`, `shortname`, `type`, `ports`, `secret`, `community`, `description`, `server`, `acct_enabled`)
|
|
|
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
|
|
|
- $stm2 = $dbh->prepare($sql2);
|
|
|
- $rtr2 = $stm2->execute(array(
|
|
|
- $radcliente->nasname, $radcliente->shortname,
|
|
|
- $radcliente->type, $radcliente->ports,
|
|
|
- $radcliente->secret, $radcliente->community,
|
|
|
- $radcliente->description, $radcliente->server,
|
|
|
- $radcliente->acct_enabled
|
|
|
- ));
|
|
|
-
|
|
|
- syslog(shell_exec('sudo kill -9 $(pgrep freeradius)'));
|
|
|
-
|
|
|
- return $rtr2;
|
|
|
+ $acctEnabled = $radcliente->acct_enabled ? 1 : 0;
|
|
|
+
|
|
|
+ $stm = $dbh->prepare("SELECT * FROM nas WHERE nasname=:nasname");
|
|
|
+ $stm->bindParam('nasname', $radcliente->nasname);
|
|
|
+ $stm->execute();
|
|
|
+ $existsNas = $stm->fetch(PDO::FETCH_ASSOC);
|
|
|
+
|
|
|
+ if(!$existsNas){
|
|
|
+ $stm1 = $dbh->prepare("INSERT INTO nas (nasname, shortname, type, ports, secret, community, description, server, acct_enabled)
|
|
|
+ VALUES (:nasname, :shortname, :type, :ports, :secret, :community, :description, :server, :acct_enabled);");
|
|
|
+ }else{
|
|
|
+ $stm1 = $dbh->prepare("UPDATE nas SET
|
|
|
+ nasname=:nasname,
|
|
|
+ shortname=:shortname,
|
|
|
+ type=:type,
|
|
|
+ ports=:ports,
|
|
|
+ secret=:secret,
|
|
|
+ community=:community,
|
|
|
+ description=:description,
|
|
|
+ server=:server,
|
|
|
+ acct_enabled=:acct_enabled WHERE nasname=:nasname
|
|
|
+ ");
|
|
|
+ }
|
|
|
+
|
|
|
+ $stm1->bindParam('nasname', $radcliente->nasname);
|
|
|
+ $stm1->bindParam('shortname', $radcliente->shortname);
|
|
|
+ $stm1->bindParam('type', $radcliente->type);
|
|
|
+ $stm1->bindParam('ports', $radcliente->ports);
|
|
|
+ $stm1->bindParam('secret', $radcliente->secret);
|
|
|
+ $stm1->bindParam('community', $radcliente->community);
|
|
|
+ $stm1->bindParam('description', $radcliente->description);
|
|
|
+ $stm1->bindParam('server', $radcliente->server);
|
|
|
+ $stm1->bindParam('acct_enabled', $acctEnabled);
|
|
|
+ $rtr1 = $stm1->execute();
|
|
|
+
|
|
|
+ syslog(shell_exec('sudo kill -9 $(pgrep freeradius)'));
|
|
|
+
|
|
|
+ return $rtr1;
|
|
|
}
|
|
|
|
|
|
/**
|