Prechádzať zdrojové kódy

Merge branch 'hotfix-freeradius-nas' into 'master'

Correct of insert and update acct_enabled value in freeradius.nas

See merge request interlink-sa/flowdat3/modules/freeradius!2
Jean Sumara Leopoldo 5 rokov pred
rodič
commit
0f86144ba4
2 zmenil súbory, kde vykonal 39 pridanie a 17 odobranie
  1. 1 0
      .gitignore
  2. 38 17
      wsdl/code/radius.php

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+.idea

+ 38 - 17
wsdl/code/radius.php

@@ -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;
    }
 
    /**