API => ISPConfig Version abfragen

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von TheCry, 27. März 2013.

  1. TheCry

    TheCry New Member

    Hallo zusammen,
    gibt es über die API die Möglichkeit die ISPConfig Version abzufragen?
    Ich habe in der Dokumentation nichts gefunden.

    Gruß
    Sascha
     
  2. ZooL

    ZooL Member

    Hi,

    das kann ich dir nach besten wissen schreiben,
    eine versions abfrage gibt es nicht.
    Kannst du dir nicht einige Funktionen schreiben oder ist deine auf der api basierende Entwicklung nicht privat ?
     
  3. TheCry

    TheCry New Member

    Sicherlich könnte ich mir eine Funktion schreiben.
    Ich programmiere gerade ein Plugin für JoomISP. Damit kann man aus der Bestellung direkt den Webspace über die API einrichten.
    Nur muss ich halt einige Dinge sicherstellen. Mit dem letzten Update hat das Plugin nicht mehr funktioniert und somit muss ich vorher prüfen welche Version auf dem Server läuft, damit ich sicher gehen kann das dieses Plugin auch funktioniert.
     
  4. Till

    Till Administrator

    Du kannst ja einen Feature Request für eine solche Funktion im Bugtracker machen, wenn Du sie benötigst. Gerne auch mit dem Code, dann geht es schneller bis sie eingebaut wird.
     
  5. TheCry

    TheCry New Member

    Wenn das möglich ist dann werde ich mich gerne hinsetzen und entsprechend was dazu schreiben.
    Danke Dir
     
  6. TheCry

    TheCry New Member

    Die API ist wirklich einfach zu erweitern... Mein lieber man.. Hut ab...
    Also...
    Ich habe nun 3 Funktionen in die Datei "remoting.inc.php" eingetragen:
    Code:
    public function server_get_app_version($session_id)
        {
            global $app;
            if(!$this->checkPerm($session_id, 'server_get_app_version')) {
                $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
                return false;
            }
            if (!empty($session_id)) { 
                $ispc_app_version = array('ispc_app_version' => ISPC_APP_VERSION);
                return $ispc_app_version;
            } else {
                return false;
            }
        }
    
    public function server_get_serverid_by_server_name($session_id, $server_name)
        {
            global $app;
            if(!$this->checkPerm($session_id, 'server_get_serverid_by_server_name')) {
                $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
                return false;
            }
            if (!empty($session_id) && !empty($server_name)) {
                $sql = "SELECT server_id FROM server WHERE server_name  = '$server_name' LIMIT 1 ";
                $all = $app->db->queryAllRecords($sql);
                return $all;
            } else {
                return false;
            }
        }
        
        public function server_get_functions($session_id, $server_id)
        {
            global $app;
            if(!$this->checkPerm($session_id, 'server_get_functions')) {
                $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
                return false;
            }
            if (!empty($session_id) && !empty($server_id)) { 
                $sql = "SELECT mail_server, web_server, dns_server, file_server, db_server, vserver_server, proxy_server, firewall_server FROM server WHERE server_id  = '$server_id' LIMIT 1 ";
                $all = $app->db->queryAllRecords($sql);
                return $all;
            } else {
                return false;
            }
        }
    Anschließend habe ich noch die Datei "web/admin/lib/remote.conf.php" mit den beiden neuen Funktionen (server_get_serverid_by_server_name, server_get_functions) erweitert und den Remoteuser die Rechte für die Serverfunktionen neu zugewiesen
    Code:
    <?php
    
    $function_list['server_get,get_function_list,client_templates_get_all,server_get_app_version,server_get_functions,server_get_serverid_by_server_name,server_get_serverid_by_ip,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions';
    
    ?>
    Jetzt kommt genau das raus was ich mir gewünscht habe:
    Code:
    Array (     [ispc_app_version] => 3.0.5.1 ) 
    
    Array (     [0] => Array         (             [server_id] => 1         )  ) 
    
    Array (     [0] => Array         (             [mail_server] => 1             [web_server] => 1             [dns_server] => 1             [file_server] => 1             [db_server] => 1             [vserver_server] => 0             [proxy_server] => 0             [firewall_server] => 1         )  )
    @Till
    Für den Bugtracker braucht Ihr einen Patch oder langt es wenn ich das so in den Bugtracker schreibe?

    Gruß
    Sascha

    Edit: Ich habe nun die Version auch noch hinzugefügt
     
    Zuletzt bearbeitet: 27. März 2013
  7. ZooL

    ZooL Member

    wenn du das wie hier im bugtracker reinhackts reicht es.... patch ist nicht pflicht... bisher da der code eh geprüft und getestet wird bevor er einfliesst..

    "denke ich mir jetzt.."

    greetz und thx
     
  8. TheCry

    TheCry New Member

    Ok... Ich habe einen Feature Request im Bugtracker aufgemacht.
    Dann hoffe ich mal das das was wird.. :)

    Danke Euch.

    Gruß
    Sascha
     
  9. Till

    Till Administrator

    Ok, Danke!
     

Diese Seite empfehlen