From 9e33a5740bfabdd2fad6b396812cde56d412927a Mon Sep 17 00:00:00 2001
From: Ibnu Maksum <ibnumaksum@gmail.com>
Date: Tue, 3 Oct 2023 15:03:47 +0700
Subject: [PATCH] fix add nas

---
 system/autoload/Radius.php    | 20 ++++++++++----------
 system/controllers/radius.php | 22 ++++++----------------
 2 files changed, 16 insertions(+), 26 deletions(-)

diff --git a/system/autoload/Radius.php b/system/autoload/Radius.php
index b7ac259f..60c81c5f 100644
--- a/system/autoload/Radius.php
+++ b/system/autoload/Radius.php
@@ -2,24 +2,24 @@
 
 class Radius {
 
-    public function getTableNas(){
+    public static function getTableNas(){
         return ORM::for_table('nas', 'radius');
     }
 
-    public function getTableCustomer(){
+    public static function getTableCustomer(){
         return ORM::for_table('radcheck', 'radius');
     }
 
-    public function getTablePackage(){
+    public static function getTablePackage(){
         return ORM::for_table('radgroupreply', 'radius');
     }
 
-    public function getTableUserPackage(){
+    public static function getTableUserPackage(){
         return ORM::for_table('radusergroup', 'radius');
     }
 
-    public function addNas($name, $ip, $ports, $secret, $description = "",$type = 'other', $server= null, $community= null){
-        $n = $this->getTableNas()->create();
+    public static function addNas($name, $ip, $ports, $secret, $description = "",$type = 'other', $server= null, $community= null){
+        $n = Radius::getTableNas()->create();
         $n->nasname = $ip;
         $n->shortname = $name;
         $n->type = $type;
@@ -31,8 +31,9 @@ class Radius {
         $n->save();
         return $n->id();
     }
-    public function updateNas($id, $name, $ip, $ports, $secret, $description = "",$type = 'other', $server= null, $community= null){
-        $n = $this->getTableNas()->find_one($id);
+
+    public static function updateNas($id, $name, $ip, $ports, $secret, $description = "",$type = 'other', $server= null, $community= null){
+        $n = Radius::getTableNas()->find_one($id);
         if(empty($n)){
             return false;
         }
@@ -44,8 +45,7 @@ class Radius {
         $n->description = $description;
         $n->server = $server;
         $n->community = $community;
-        $n->save();
-        return true;
+        return $n->save();
     }
 
 }
diff --git a/system/controllers/radius.php b/system/controllers/radius.php
index 158745aa..2b10b798 100644
--- a/system/controllers/radius.php
+++ b/system/controllers/radius.php
@@ -55,17 +55,7 @@ switch ($action) {
             $msg .= 'NAS IP Exists<br>';
         }
         if ($msg == '') {
-            $b = ORM::for_table('nas', 'radius')->create();
-            $b->nasname = $nasname;
-            $b->shortname = $shortname;
-            $b->secret = $secret;
-            $b->ports = $ports;
-            $b->type = $type;
-            $b->server = $server;
-            $b->community = $community;
-            $b->description = $description;
-            $b->save();
-            $id = $b->id();
+            $id = Radius::addNas($shortname, $nasname, $ports, $secret, $description, $type, $server, $community);
             if ($id > 0) {
                 r2(U . 'radius/nas-edit/' . $id, 's', "NAS Added");
             } else {
@@ -119,10 +109,6 @@ switch ($action) {
         if (empty($type)) {
             $type = null;
         }
-        $d = ORM::for_table('nas', 'radius')->find_one($id);
-        if (!$d) {
-            $msg .= 'NAS NOT Exists<br>';
-        }
         if ($msg == '') {
             $d->nasname = $nasname;
             $d->shortname = $shortname;
@@ -133,7 +119,11 @@ switch ($action) {
             $d->community = $community;
             $d->description = $description;
             $d->save();
-            r2(U . 'radius/nas-edit/' . $id, 's', "NAS Saved");
+            if (Radius::updateNas($id, $shortname, $nasname, $ports, $secret, $description, $type, $server, $community)) {
+                r2(U . 'radius/nas-edit/' . $id, 's', "NAS Saved");
+            } else {
+                r2(U . 'radius/nas-add', 'e', 'NAS NOT Exists');
+            }
         } else {
             r2(U . 'radius/nas-add', 'e', $msg);
         }